You are on page 1of 7

Grananja u programu(Razgranata struktura: IF)

Zahvaljujui naredbama grananja mogue je realizovati tzv. razgranate


algoritme u programskom jeziku Paskal. If naredba je jedna od dve
naredbe grananja u Paskalu (o drugoj e biti vie rei kasnije) i njen
sintaksni dijagram prikazan je na donjoj slici
.

Iz sintaksnog dijagrama vidimo da je if naredbu u Paskalu mogue


realizovati na dva naina:
Ako su N1i N2 neke naredbe, a L neki logiki izraz tada su sledei zapisi
if naredbi ispravni.
If L then N1;
If L then N1 else N2;

Svaki logiki izraz moe biti samo taan (true) ili netaan (false).
U prvom sluaju (If L then N1;) vai: ako je logiki izraz L taan izvrie se
naredba N1,
Ako logiki izraz L nije taan , nee se izvriti ta naredba.

Primer:
Ucitati jedan ceo broj x, razlicit od 0, ako je x>0 stampati broj.
Program zad11;
Var
x:integer;
Begin
Writeln(ucitaj jedan ceo broj);
Readln(x);
If x > 0 then
Wtiteln(broj ,x);
Readln
End.

. U drugoj realizaciji grananja (If L then N1 else N2;) vai sledee: ako je
logiki izraz taan izvrie se naredba N1 a ako je netaan izvrie se
naredba N2.

Primer:
Ucitati jedan ceo broj x, razlicit od 0, ako je x>0 stampati broj je pozitivan,
ako je manji od 0 stampati broj je negativan.
Program zad12;
Var
x:intiger;
Begin
Writeln(ucitaj jedan ceo broj);
Readln(x);
If x > 0 then
Wtiteln(broj je pozitivan )
Else
Writeln(broj je negativan);
Readln
End.

Pojam BLOK naredbe


Svaka naredba moe biti sastavljena od vie naredbi i u tom sluaju naziva
se blok naredba.
U prethodnim situacijama imali smo :
IF L then N1, gde je N1 samo jedna naredba.
Isto je I u: IF L then N1 else N2, gde je N1 jedna naredba I N2 jedna
naredba.
Ako imamo situaciju gde imamo vise naredbi posle izraza then(N1,N2) I vise
naredbi posle else(N3,N4,N5), tada postoji blok naredbi I one se moraju
postavljati izmedju BEGIN I END.
IF L then
begin
N1,N2;
End
else
Begin
N3,N4,N5,
End;

Obratimo panju da taka zarez stoji samo na kraju if naredbe


(dakle, samo posle else dela, a ne i posle then dela).

Primer: Ucitati jedan ceo broj x, razlicit od 0.


Ako je x>0 izracunati I stampati kvadrat broja I koren broja x, u suprotnom
izracunati I stampati predhodnik I sledbenik broja x.
Program zad13;
Var x, kvadrat, predh, sled:integer;
Koren:real;
Begin
Writeln(ucitaj broj x razlicit od nule); readln(x);
If x>0 then
Begin
Kvadrat:=sqr(x); koren:=sqrt(x);
Writeln(x, kvadrat ,kvadrat, koren, koren:6:2);
End
Else
Begin
Predh:=pred(x); sled:=succ(x);
writeln(x, predhodnik,predh,sledbenik, sled);
End;
Readln
End.