Promenljive su jedan od osnovnih programerskih koncepata. Bez njih, naši programi ne bi bili baš korisni.
Primer bez korišćenja promenljivih
Da vidimo kako bi izgledao jednostavan algoritam za računanje hipotenuze na osnovu kateta, bez korišćenja promenljivih.
Sve što možemo da uradimo je da bukvalno u jednom koraku saberemo kvadrate brojeva 3 i 4, izračunamo koren zbira (za to nam služi funkcija sqrt) i to odmah ispišemo kao rezultat. Ako bismo pravili ovakve programe, bolje da se manemo ćorava posla i da izračunamo šta nam treba pomoću digitrona.
Vidite, ideja pravljenja programa je da on ne funkcioniše samo za jedan jedini slučaj, već da bude primenljiv za različite vrednosti. Naš program je praktično kao "formula" koja se primenjuje na različitim vrednostima.
Ok, šta je onda promenljiva? Najjednostavnije rečeno, promenljiva predstavlja memorijsku lokaciju koja sadrži neku vrednost. Tokom izvršavanja programa ova vrednost se može menjati, pa odatle i naziv "promenljiva".
Promenljiva je praktično "kutija" u kojoj se nalazi "nešto". Ta "kutija" mora imati ime preko koga onda pristupamo vrednosti te promenljive. Umesto da u programu pišemo:
5 + 13
Pisaćemo:
A + B
Što se tumači kao " saberi vrednost promenljive A i vrednost promenljive B ". Da li su vrednosti ove dve promenljive u trenutku sabiranja zaista 5 i 13? Nije ni bitno. Ovo naše "pravilo" (ili stručno "izraz") funkcioniše za bilo koja dva broja.
Promnljive imaju dve veoma značajne uloge u programiranju:
Kao što im ime kaže, promenljive tokom izvršavanja programa mogu menjati vrednost. Zavisno od programskog jezika, takođe mogu (ili ne mogu) menjati i tip vrednosti.
Primer sa promenljivama
Pogledajte sada kako izgleda algoritam za računanje hipotenuze. Dodali smo još dva koraka, pa možda izgleda složenije, ali verujte da je ovakav program mnogo bolji.
Vidite, ovde računar prvo traži od korisnika da unese dva broja koji se "ubacuju" u promenljive a i b. Onda se na osnovu tih promenljivih računa vrednost hipotenuze koja se ubacuje u promenljivu c. Na kraju se ispisuje vrednost promenljive c.
Ovakav program će korisniku izračunati dužinu hipotenuze za bilo koje dve katete, a ne samo ako su njihove dužine 3 i 4.
Svaki programski jezik ima određena pravila za zadavanje imena promenljivih. Neka opšta pravila, sa kojima (gotovo) sigurno nećemo pogrešiti su:
Neki programski jezici (u stvari većina) dozvoljavaju korišćenje "donje crte" u nazivu (_) promenljive.
Isto tako, programski jezici kao što su Pascal i Basic ne razlikuju velika i mala slova u nazivima. Za njih su "prom", "Prom" i "PROM" jedno te isto. Sa druge strane, jezici koji "potiču" iz C-a (C++, C#, Java, JavaScript, PHP...) razlikuju velika i mala slova, pa kod njih moramo biti dodatno oprezni da ne pogrešimo u kucanju.
Što naši programi budu veći i složeniji, promenljivama ćemo češće davati imena koja nešto "znače". Ovo nam jako pomaže kada tražimo greške u programu, ili prosto pokušavamo da razumemo sopstveni program od pre dva meseca. To znači da je mnogo bolje ime za promenljivu visinaObjekta nego prosto v.
Oblast važenja je prilično važna tema kada se govori o promenljivama. Suštinski, promenljive mogu imati ali i nemati vrednost ("važe" ili ne "važe") u celom programu.
Najčešće se oblast važenja vezuje za potprograme. Konkretno, postoje globalne promenljive koje važe uvek i svuda, ali i lokalne koje važe samo u određenom delu programa - funkciji ili proceduri.
5 + sqrt(x+3) * y // poziv funkcije u izrazu