Varijabla (računarstvo): razlika između inačica

Izbrisani sadržaj Dodani sadržaj
m sitne gramatike pogreške popravljene
m uklonjena promjena suradnika ProgramerX (razgovor), vraćeno na posljednju inačicu suradnika Kubura
Redak 1:
{{Bolji naslov}}
'''PromjenjivkaPromjenjivica'''<ref>[https://element.hr/artikli/file/1924 Naučite programirati uz C++, 2. izdanje, str. 22]</ref> (imenica; engl. ''variable'', u hrv. u upotrebi još i '''varijabla''', '''promjenjivica''')<ref>[http://free-zg.htnet.hr/jsribar/demistif.pdf Demistificirani C++, 2. izdanje, str. 33]</ref><ref>[http://dzs.ffzg.unizg.hr/text/Uvod%20u%20informacijske%20znanosti/pog7.htm Digitalna zbirka Filozofskog fakulteta u Zagrebu] Miroslav Tuđman, Damir Boras, Zdravko Dovedan: Uvod u informacijske znanosti. Baze podataka.</ref><ref name="Essert, Žilić">[http://www.fsb.unizg.hr/usb_frontend/files/1332414796-0-matlab_udzbenik.pdf Fakultet strojarstva i brodogradnje - M. Essert, Tihomir Žilić: MATLAB - Matrični laboratorij] </ref> (imenica; ''engl. variable'', u hrv. u upotrebi još i '''varijabla''') u kontekstu [[programiranje|programiranja]] jest ime kojem je pridružena vrijednost, i ta vrijednost se naziva vrijednost promjenjivkepromjenjivice.
Vrijednost promjenjivkepromjenjivice moguće je "promijeniti", odnosno moguće joj je pridružiti neku drugu vrijednost, pa otud naziv promjenjivkapromjenjivica.
 
PromjenjivkaPromjenjivica je svojevrsno skladište u kojem jese pohranjenanalazi neka vrijednostpodatak, kojaa unutar kojeg se može tijekom rada mijenjati, tijekomod čega je došlo izvršavanjaovakvo programaime. <ref name="Essert, Žilić"/> Ime promjenjivkepromjenjivice čine kombinacije slovnobrojčanih znakova s time da prvi znak ne smije biti znamenka niti znak [[razgodak|razgotka]].<ref name="Essert, Žilić"/> Kakva će biti promjenjivica, ovisi kakva se pridružba napravila. Promjenjivici je moguće pridružiti bilo koji tip podatka.<ref name="Essert, Žilić"/>
Kada se više promjenjivica poveže operatorima, dobije se '''izraz'''.<ref name="Essert, Žilić"/>
 
PojamBitno promjenjivkeje obuhvaćapromjenjivicu ne shvatiti kao da je ona samo ime, jer u pojam promjenjivice ulazi i idejuideja njoj pridružene vrijednosti, kao i ideja vremena ukroz kojemkoje seje vrijednost promjenjivkepromjenjivice možemoguće mijenjati. Dakle, ako bismo htjeli doznati vrijednost neke promjenjivkepromjenjivice imena '''a''', ne bi bilo dovoljno pitati: "koja je vrijednost promjenjivkepromjenjivice '''a'''" - potrebno je pitati koja je vrijednost promjenjivkepromjenjivice '''a''' u nekom trenutku '''t'''. Ovo je u oprjeci s promjenjivicama (varijablama) kakve poznajemo u matematici, iz čijeg je poimanja isključena ideja promjene kroz vrijeme: varijable u matematici mogu poprimati različite vrijednosti, ali samo u različitim kontekstima. Unutar istog konteksta (jednadžba, formula) one su - nepromjenjive.
 
Nadalje, promjenjivkapromjenjivicaa nije isto što i njoj pridružena vrijednost: moguće je da postoje dvije različite promjenjivkepromjenjivice, koje imaju istu vrijednost. Mijenjajući vrijednost jedne promjenjivkepromjenjivice, ne mijenjamo vrijednost druge. Dakle, identitet promjenjivkepromjenjivice određennije jenjena vrijednost, nego njenimnjeno imenomime.
 
Za imena se u programskim jezicima obično koristi nešto preciznija ideja [[identifikator]]a, a identifikator je informacija koja je jednoznačna u svom osnovnom kontekstu. ImeImena promjenjivkepromjenjivih jejesu njen identifikatoridentifikatori.
 
Uz pojam promjenljivkepromjenljivice, imamo i njoj oprječneoprječan pojmove nepromjenjivke (engl. ''immutable'') ipojam [[konstanta|konstante]] (engl. ''constant''); nepromjenjivkanepromjenjiva je ime kojem je vrijednost pridružena u trenutku njenog uvođenja, te joj nije moguće naknadno pridružiti drugu vrijednost. Konstanta je ime kojem je vrijednost zadana u izvornom kodu programa, te joj nije moguće mijenjati vrijednost za vrijeme izvršavanja programa.
 
==Podloga==
 
PromjenjivkaPromjenjivica (engl. ''variable'') je naziv koji je izmišljen da bi se imenovala stanovita ideja, i taj naziv se počeo upotrebljavati s pojavom prvih [[programski jezik|programskih jezika]]. Pri tome nije bila dana konkretna i jednoznačna [[definicija]] promjenjivkepromjenjive, nego se taj naziv počeo upotrebljavati spontano. Iz tog razloga ne postoji jedinstvena definicija promjenjivkipromjenjivice, već svaki čovjek može shvaćati promjenjivkepromjenjivicu na svoj način, što je često uvjetovano programskim jezikom koji se koristi.
 
Tako, iako danas ne postoji jedinstvena definicija promjenjivkepromjenjivice oko koje bi se svi mogli složiti, možemo pokušati dati opis ideje što bi promjenjivkapromjenjivica trebala biti, odnosno možemo pokušati opisati najopćenitiji mentalni model promjenjivkepromjenjivice, kao što je to napravljeno na početku ovog članka.
 
Svaki programski jezik može imati svoje ostvarenje ideje promjenjivkepromjenjivice, često uvjetovano raznim tehničkim ograničenjima. UPri mnogimtome seto programskimostvarenje jezicimamože vrijednostiu promjenjivkinekim shvaćaju kao objekti, ili čak kao reference na objekte.detaljima Takobiti u pojedinimsuprotnosti programskims jezicimaopćenitom kaoidejom dodatno možemo: dobiti adresu promjenjivkepromjenjivice, promijenitiali vrijednosttada promjenjivkeje bezto navođenjaproblem njenogtih imena,konkretnih teostvarenja. promijenitiKada vrijednostpočetnici promjenjivkeuče primjenjujućidotični operacijujezik, nataj objektuproblem namože kojirezultirati promjenjivkateškoćama ukazuje.u Ushvaćanju ovomideje posljednjempromjenjivice, slučajukao vrijednosti promjenjivkepogreškama shvaćamo kaokoju vrijednostčine promjenjivogiskusniji objektakorisnici.
 
Tako u pojedinim programskim jezicima kao dodatno možemo: dobiti adresu promjenjivice, promijeniti vrijednost promjenjivice bez navođenja njenog imena, te promijeniti vrijednost promjenjivice primjenjujući operaciju na samoj vrijednosti promjenjivice. U ovom posljednjem slučaju vrijednost promjenjivice shvaćamo kao vrijednost promjenjivog objekta. U nekim se jezicima promjenjivice shvaćaju kao pokazivači na objekte.
==Ime promjenjivke==
 
Promjenjivice možemo shvaćati i izvan konteksta programskih jezika. Na primjer, možemo pojmiti promjenjivicu imena ''stanje_prekidača'', čija vrijednost može biti 'uključen' ili 'isključen'.
U programskim jezicima su promjenjivke imenovane identifikatorima, koji nam služe da jednoznačno odrede promjenjivku. Pri tome jedno ime, odnosno identifikator, može pripadati samo jednoj promjenjivki u određenom kontekstu.
 
==Ime promjenjivice==
Kao i svi identifikatori u programskim jezicima, ime promjenjivke sastoji se od simbola abecede pojedinog programskog jezika.
 
U programskim jezicima su promjenjivkepromjenjivice imenovane identifikatorima, koji nam služe da jednoznačno odrede promjenjivkupromjenjivicu. Pri tome jedno ime, odnosno identifikator, može pripadati samo jednoj promjenjivkipromjenjivici u određenom kontekstu.
Da bi programski jezik mogao razlikovati imena promjenjivki od drugih sintaktičkih elemenata, poput brojeva, operatora i ključnih riječi, uvijek postoje točna pravila o sintaksi imena promjenjivki. Tako, u gotovo svim raširenim programskim jezicima, imena promjenjivki ne mogu počinjati brojem i ne smiju sadržavati razmake, odnosno ime promjenjivke je samo jedna riječ. U mnogim programskim jezicima se ime promjenjivke može sastojati isključivo od slova, brojeva, i znaka podvlake (_) .
 
Kao i svi identifikatori u programskim jezicima, ime promjenjivkepromjenjivice sastoji se od simbola abecede pojedinog programskog jezika.
Postoje bitne razlike u osjetljivosti imena promjenjivki na velika i mala slova (engl. ''upper case'' i ''lower case''). U večini jezika je razlika značajna (engl. ''case-sensitive''), to jest: makar se dvije riječi razlikovale samo u upotrebi velikih i malih slova, one će predstavljati dva različita imena. U nekim jezicima razlika nije značajna (engl. ''case-insensitive''), a postoji i mogućnost da se zabrani uvođenje dvaju imena koji se razlikuju samo u upotrebi velikih i malih slova.
 
Da bi programski jezik mogao razlikovati imena promjenjivkipromjenjivica od drugih sintaktičkih elemenata, poput brojeva, operatora i ključnih riječi, uvijek postoje točna pravila o sintaksi imena promjenjivkipromjenjivice. Tako, u gotovo svim raširenim programskim jezicimanajčešće, imena promjenjivkipromjenjivica ne mogu počinjatipočeti brojem i ne smiju sadržavati razmake, odnosno ime promjenjivkepromjenjivice je samo jedna riječ. U mnogim programskim jezicima se ime promjenjivke može sastojati isključivo od slova, brojeva, i znaka podvlake (_) .
Neka od tipičnih imena promjenjivki su:
i, j, n, a, b, broj, zbroj, sum, max, retval, point, cijena.
 
U nekim programskim jezicima se ime promjenjivice može sastojati isključivo od slova, brojeva, i znaka podvlake _ .
Kao što je vidljivo, za razliku od matematičkih imena, imena promjenjivki često se sastoje od više znakova, što je poželjno jer se na taj način iz imena promjenjivke lakše može iščitati njena svrha.
 
Postoje bitne razlike u osjetljivosti imena promjenjivkipromjenjivica na velika i mala slova (engl. ''upper case'' i ''lower case''). U večinimnogim jezikajezicima je razlika značajna (engl. ''case-sensitive''), to jest: makarkada se dvije riječi razlikovalerazlikuju samo u upotrebi velikih i malih slova, onda one će predstavljatipredstavljaju dva različita imena. U nekimdrugim jezicima razlika nije značajna (engl. ''case-insensitive''), a postoji i mogućnost da se zabrani uvođenje dvaju imena koji se razlikuju samo u upotrebi velikih i malih slova.
 
Neka od tipičnih imena promjenjivkipromjenjivica su:
i, j, n, a, b, broj, zbroj, sum, max, retval, point, cijena.
 
Kao što je vidljivo, za razliku od matematičkih imena, imena promjenjivkipromjenjivica često se sastoje od više znakova, što je poželjno jer se na taj način iz imena promjenjivke lakše može iščitati njena svrha.
 
==Tipovi==
 
U jezicima sa statičkimstojnim sustavom tipova, svaka promjenjivkapromjenjivica ima tip zadan odmah u izvornom kodu programatip, koji tada ograničava vrijednosti koje je dozvoljeno pridružiti promjenjivkipromjenjivici. Tip se tada obavezno navodi prilikom uvođenja promjenjivkepromjenjivice.
 
U jezicima s dinamičkimgipkim sustavom tipova, obično kažemo da promjenjivke i izrazi nemaju svoj tip podatka, nego samo vrijednosti imaju svojtip. S obzirom da promjenjivica može biti izraz, tada promjenjivica nema tip, nego njena vrijednost ima tip. Tada je moguće promjenjivkipromjenjivici pridružiti bilo koju vrijednost, dakle vrijednost bilo kojeg tipa.
 
== Izvori ==