Ponavljanje bloka naredbi više puta omogućen je naredbama ciklusa (naredbama ponavljanja ili repetativnim naredbama ili petljama).
U Pascalu postoje tri naredbe ciklusa:
- FOR – bezuslovna naredba ciklusa.
- WHILE- naredba sa preduslovom
- REPEAT – naredba sa postuslovom.
FOR..TO..DO
Naredba For omogućava ponavljanje neke naredbe ili bloka naredbi određeni broj puta.
i – brojačka (kontrolna) promenljiva
pv – početna vrednost
kv – konačna vrednost
N – naredba
FOR i:=pv TO kv DO N;
„Sve dok promenljiva i prima vrednost od početne vrednosti do konačne vrednosti izvršava se naredba N.“
Kontrolna (brojačka) promenljiva odbrojava broj prolaza kroz petlju menjajući se od početne do konačne vrednosti s jediničnim korakom. Kontrolna promenljiva mora biti prethodno deklarisana i može biti CHAR, BOOLEAN, INTEGER ili neki intervalni tip. Tip vrednosti početne, konačne vrednsti i kontrolne promenljive moraju se slagati.
Vrednost kontrolne promenljive nije dopušteno menjati unutar FOR naredbe.
Koraci izvršenja naredbe for:
- Kontrolnoj promenljivoj i dodeljuje se početna vrednost
- Ako je i>kv završava se izvršenje naredbe FOR
- ako je i<=kv, izvršava se naredba N
- Kontrolna promenljiva i prima vrednost svog sledbenika (ako je u pitanju celobrojna vrednost – za jedan veću od prethodne) i:=succ(i)
- Nastavlja se izvršenje petlje od tačke 2
FOR naredba može imati oblik:
FOR i:=pv DOWNTO kv DO N;
U ovom slučaju koraci izvršenja naredbe izgledaju ovako:
- Kontrolnoj promenljivoj i dodeljuje se početna vrednost
- Ako je i<kv završava se izvršenje naredbe FOR
- ako je i>kv, izvršava se naredba N
- Kontrolna promenljiva i prima vrednost svog prethodnika (ako je u pitanju celobrojna vrednost za jedan manju od prethodne) i:=pred(i)
- Nastavlja se izvršenje petlje od tačke 2
Primer 1.Sastaviti aplikaciju koja će računati zbir prvih n prirodnih brojeva.
npr. za uneto n=3 računa se s=1+2+3
Procedure…
Var n,s,i:integer;
BEGIN
n:=strtoint(edit1.text)
S:=0; {S prima vrednost nula. To je početna vrednost koja se upisuje u memorijsku lokaciju na adresi s, da bi donji izraz S:=S+i imao smisla u prvom koraku kada je i=1}
FOR i:=1 TO n DO
S:=S+i; {Na staru vrednost promenljive s dodaje se trenutna vrednost kontrolne promenljive i }
edit2.text:=inttostr(s);
END.
ZADATAK1: Sastavi aplikaciju koja računa proizvod prvih n prirodnih brojeva.
ZADATAK 2: Sastavi aplikaciju koja će izračunati zbir recipročnih vrednosti brojeva u intervalu od a do b.
ZADATAK 3. Sastavi aplikaciju koja će ispisati sve parne brojeve u intervalu od 1 do 100.
ZADATAK 4. Sastavi aplikaciju koja će pprebrojati koliko ima brojeva deljivih sa 3 u intervalu od 1 do 300.
Sastavi aplikaciju koja će izračunati zbir recipročnih vrednosti brojeva u intervalu od a do b.
odgovor