Promenljive
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:
- u promenljive se smeštaju ulazni parametri - npr. početne vrednosti sa kojima radi naš program
- u promenljivama se drže međurezultati, kao i finalni rezultati rada programa
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.
Nazivi promenljivih
Svaki programski jezik ima određena pravila za zadavanje imena promenljivih. Neka opšta pravila, sa kojima (gotovo) sigurno nećemo pogrešiti su:
- naziv promenljive se sastoji iz slova engleske abecede i cifara
- naziv mora počinjati slovom
Naravno, različiti jezici imaju i svoja specifična pravila. Na primer, u jeziku PHP, svaki naziv promenljive mora počinjati znakom za dolar ($). 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
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.
Postojanje lokalnih promenljivih je dobra stvar. Zahvaljujući njima, funkcija može biti nezavisna od ostataka programa, a možemo lako da pravimo i rekurzivne potprograme.
Primeri u različitim jezicima
U Pascalu moramo deklarisati sve promenljive, koje koristimo u programu, u posebnom "var" odeljku.
program Primer;
var
x, y : integer;
a : real;
tekst : string;
begin
readln(x,y);
a := x/y;
tekst := 'Ovo je samo neki tekst';
writeln(a);
end.
Jezik PHP nema takav zahtev, ali u njemu sve promenljive moraju počinjati znakom za dolar.
$x = 15;
$tekst = "Vrednost promenljive X: ";
echo $tekst . $x;