Ciklične strukture

16
CIKLIČNE STRUKTURE ITERACIJA (PETLJA, PONAVLJANJE)

description

Ciklične strukture u programskom jeziku Pascal

Transcript of Ciklične strukture

Cikline strukture

Cikline struktureIteracija (petlja, ponavljanje)

For..to..doNaredba FOR slui za opis ciklusa kod kojih je broj ponavljanja naredbi unapred poznat. Ovi ciklusi se nazivaju brojaki ciklusi. U njima je vaan parametar tzv. BROJA ili upravljaka promenljiva, ijom se promenom sadraja prebrojava koliko puta su izvrene naredba u ciklusu.Naredbu FOR moemo da zapiemo u sledeem obliku:FOR promenljiva := pv TO kv DO naredba;pri emu je:pv poetna vrednost brojaakv krajnja vrednost brojaanaredba; - jedna ili vie naredbi koje treba izvriti.

Za brojanje unazad koristi se sledei oblik naredbe FOR:

FOR promenljiva := kv DOWNTO pv DO naredba;

Brojaka promenljiva mora biti nekog ordinalnog tipa podataka, kod kojeg moe da se odredi prethodna i sledea vrednost (ukoliko ona postoji). U zadacima se najee koristi promenljiva tipa INTEGER. Ovo je vano zbog naina na koji se izvrava naredba FOR.

Primer zadatka sa petljom FORNapisati program koji e pet puta ispisivati reenicu Ana voli Milovana !!!

program ANA;vari : integer;beginfor i := 1 to 5 dowriteln ( Ana voli Milovana !!!)end.Na poetku izvravanja naredbe promenljiva uzima poetnu vrednost (pv) i za nju se izvravaju naredbe ciklusa. Nakon toga se vrednost brojaa automatski poveava za 1 (na sledeu vrednost), proverava se da li je nova vrednost brojaa vea od krajnje vrednosti (kv), pa ako nije izvravaju se naredbe ciklusa. I tako redom sve dok brojaka promenljiva ne postane jednaka krajnjoj vrednosti, kada se poslednji put izvravaju naredbe ciklusa.

Primena naredbe FOR u kojem je potrebno smanjivati vrednost brojake promenljive za 1.Napisati program koji e izraunavati vrednost izraza:

program zadatak;var i : integer;y : real;beginy := 0;for i := 33 downto 1 do y := sqr (3.0 * i + y);writeln ( Vrednost izraza je , y : 8: 2)end.

Umesto jedne naredbe moemo imati i vie naredbi u telu ciklusa. Tada organizujemo blok naredbi izmeu rezervisanih rei BEGIN i END. Ovo je neophodno da bi kompajler mogao da prepozna koje naredbe pripadaju ciklusu. U tom sluaju se koristi sledei opti oblik naredbe:FOR promenljiva := pv TO kv DO BEGIN naredba1; naredba2; naredbaN; END;

While doDruga naredba ponavljanja koja se koristi u programiranju je naredba WHILE. Naredba WHILE se jo naziva i naredba ciklusa sa preduslovom. U njoj se najpre proverava da li je ispunjen uslov, pa ako jeste izvravaju se naredbe ciklusa.

Naredbu WHILE moemo da zapiemo u sledeem obliku: WHILE uslov DO naredba;Uslov je logiki izraz ili promenljiva koji moe imati vrednost TRUE ili FALSE tano ili netanoNaredba jedna ili vie naredbi koje treba izvriti.

Na slici je prikazano kako se naredba WHILE predstavlja ualgoritmu.

Umesto jedne naredbe moemo imati i vie naredbi u telu ciklusa i tada organizujemo blok naredbi izmeu rezervisanih rei BEGIN i END. Kao i kod naredbe FOR, obavezno je navoenje ove dve rezervisane rei da bi kompajler znao koje naredbe pripadaju ciklusu. S obzirom da je potrebno menjati vrednost uslova u toku izvravanja ciklusa najee telo ciklusa sadri vie od jedne naredbe. Na slici je prikazan odgovarajui deo algoritma.

Opti oblik naredbe u kojem imamo vie od jedne naredbe se moe predstaviti na sledei nain:

WHILE uslov DO BEGIN naredba1; naredba2; naredbaN; END;

Napomena 1: Ukoliko je pri prvom izraunavanju vrednost logikog izraza uslov neistinita, naredba ciklusa se nee izvriti nijednom i prelazi se na izvravanje sledee naredbe iza naredbe WHILE .Napomena 2: Da ciklus ne bi bio beskonaan, mora postojati mogunost promene vrednosti logikog izraza uslov u naredbi. Drugim reima vrednost uslova se mora tako menjati da u jednom trenutku postane netaan i da bi se zavrilo izvravanje ciklusa (petlje).

Repeat ..untilKod naredbe REPEAT uslov za izlazak iz ciklusa se nalazi na kraju, pa se zato ova naredba naziva i naredba ciklusa sa postuslovom.

Opti oblik naredbe REPEAT je:

REPEAT naredba UNTIL uslov;

NAPOMENA: VANO JE NAGLASITI DA SE NAREDBE PONAVLJAJU DOK GOD JE USLOV NETAAN (KOD NAREDBE WHILE NAREDBE SU SE PONAVLJALE DOK GOD JE USLOV TAAN).

Umesto jedne naredbe moemo imati vie naredbi u telu ciklusa, ali kod ove naredbe nije neophodno koristiti novi blok i rezervisane rei begin i end jer ulogu zagrada preuzimaju rezervisane rei REPEAT i UNTIL.

Primer zadataka sa WHILENapisati program za tampanje prvih 100 prirodnih brojeva.program brojeviWHILE;varbroj: integer;beginbroj := 1;while broj 150;readln;end.

Primer istog zadatka u tri razliite verzije!!!!Izraditi program koji ispisuje zbir svih brojeva od 1 do 1000.program suma;var i, s: longint; begin s:=0; for i:=1 to 1000 do s:=s+i; writeln('zbir svih brojeva od 1 do 1000 iznosi ',s); end. program suma;var i, s: longint; begin s:=0; i:=1; while i1000; writeln('zbir svih brojeva od 1 do 1000 iznosi ',s);end.

Zadaci za vebanjeNapisati program koji rauna aritmetiku sredinu n unetih celih brojeva. (preko WHILE )Nacrtati algoritam i napisati program koji de ispisati tablicu mnoenja od 1 x 1 do 9 x 9(naredba FOR)Nacrtati algoritam i napisati program koji de raunati 7n (naredba FOR)Nacrtaj algoritam i napii program koji de ispisati sve brojeve deljive sa 5, a manje od 2000 (preko WHILE)Nacrtaj algoritam i napii program koji de ispisati brojeve od 1 do 100 (naredba REPEAT)Nacrtati algoritam i napisati program koji de ispisati brojeve deljive sa 3 manje od 4000 (naredba REPEAT)