Ulaz i izlaz podataka, naredba pridruživanja

2. Naredba pridruživanja

Svaki programski jezik ima naredbu pridruživanja. Ona varijabli s lijeve strane pridružuje vrijednost izraza s desne strane.

U pseudo jeziku naredba pridruživanja označava se sa :=.

Zbog čega baš :=?


U sljedećim lekcijama pojavit će se naredbe u kojima ćemo ispitivati jednakost izraza s lijeve i desne strane (npr. je li a+b jednako c+d). Za ispitivanje jednakosti koristit ćemo relacijski operator = i pisati a+b=c+d.
Da bi program mogao razlikovati pridruživanje od ispitivanja jednakosti, oni moraju biti drugačijeg oblika. Zbog toga u pseudo jeziku za naredbu pridruživanja koristimo znak :=, a za ispitivanje jednakosti znak =.
Ovakav zapis preuzet je iz programskog jezika Pascal. U programskom jeziku C za pridruživanje se koristi znak =, dok se jednakost ispituje znakom ==.

Primjer 1:

Naredbom a:=5, broj pet "pridružujemo" varijabli a. U stvari, u memorijsku lokaciju koju smo nazvali a upisujemo broj 5.

Primjer 2:

Naredba x:=a+2, najprije će iz memorijske lokacije imena a "dohvatiti" njezinu vrijednost (neka je to vrijednost iz prethodnog primjera, a:=5). Zatim će tu vrijednost (broj 5) zbrojiti sa brojem 2 i na kraju će dobiveni rezultat spremiti u memoriju, na mjesto imena x.

Primjer 3:

Naredba x:=x+4 najprije će iz memorije dohvatiti vrijednost varijable x (neka je to 7), zatim  tom broju dodati broj 4. Dobiveni rezultat (11) spremiti će kao vrijednost varijable x (preko stare vrijednosti 7).

Primjer 4:

Pogledajmo koju će vrijednost imati varijabla x nakon izvođenja sljedećega dijela programa?

x := 3;
y := 2;
x := x – 3 * y;
y := -y;
x := x + y;

U početku je vrijednost varijable x jednaka 3, a vrijednost varijable y je 2.
U sljedećem koraku (x := x – 3 * y;) izračuna se izraz x-3*y (3-3*2=3-6=-3) i dobivena vrijednost "spremi se" u varijablu x (x=-3).
Sljedeća naredba (y := -y;) vrijednost varijable y koja je bila 2 zamjenjuje sa -2.
I na kraju, (x := x + y;) izračuna se vrijednost x+y (-3-2=-5) i rezultat se sprema u varijablu x. Tako je odgovor na pitanje postavljeno na početku primjera: Varijabla x nakon izvođenja sljedećeg dijela programa imat će vrijednost -5.