Ovu naredbu koristimo kada nam nije unaprijed poznat broj ponavljanja, a uvjet se provjerava
na kraju.
Tipični su primjeri programi kod kojih se
naredbe unutar petlje moraju izvršiti najmanje
jednom, čak i ako uvjet nije ispunjen.
Zadatak:
Omogućiti unos ocjena za učenike sve dok to želi korisnik. Izračunati i ispisati srednju ocjenu.
Za rješavanje ovakvih problema možemo koristiti
petlju s provjerom uvjeta na kraju.
Njezin je opći oblik:
ponavljati
naredbe;
dok je uvjet;
Naredbe unutar ove petlje također se ponavljaju se sve dok je uvjet istinit.
Pokušajmo sada riješiti zadatak.
Podsjetimo se!
Srednja ocjena dobije se tako da se zbroje sve ocjene i taj broj se
podijeli sa brojem ocjena.
Algoritam koji rješava problem sa početka:
ponavljati
unos (ocjena)
zbroj:=zbroj+ocjena;
broj:=broj+1;
izlaz ("Želite li još unositi podatke?");
unos (odgovor);
dok je (odgovor<>"ne");
srednja:=zbroj/broj;
izlaz (srednja);
Primjer:
Koju će vrijednost ispisati sljedeći algoritam za n = 1235?
ulaz ( n );
k := 1;
ponavljati
ako je n MOD 2 = 0
onda k := k + 1;
n := n DIV 10;
do n = 0;
izlaz (k);
Rješenje:
Ispisat će se broj 2.
Zbog čega?
Na početku je vrijednost varijable k jednaka 1.
Sada ulazimo u petlju i izvršavaju se redom
naredbe:
ako je n mod 2 = 0 onda k:=k+1;
n mod 2 = 1235 mod 2 = 1 => uvjet nije ispunjen,
vrijednost varijable k se ne mijenja.
Sljedeća naredba je n:= n DIV 10 =>
n:=1235 div
10 = 123;
Sada se provjerava uvjet zaustavljanja. Kako je
n=123 i nije jednak nuli, program se vraća na
početak naredbe ponavljanja.
n mod 2 = 123 mod 2 = 1 => uvjet nije ispunjen, vrijednost varijable k se ne mijenja. n:= n DIV 10 =>
n:=123 div 10 = 12;
=> n nije jednak nuli, program se vraća na početak naredbe ponavljanja.
n mod 2 = 12 mod 2 = 0 => uvjet je ispunjen,
vrijednost varijable k se povećava za 1 (k=2).
n:= n DIV 10 => n:=12 div 10 = 1; => n nije
jednak nuli, program se vraća na početak naredbe
ponavljanja.
n mod 2 = 1 mod 2 = 1 => uvjet nije ispunjen,
vrijednost varijable k se ne mijenja.
n:= n DIV 10 => n:=1 div 10 = 0; => n je jednak
nuli, program ide na sljedeću naredbu => izlaz
(k) i na zaslon se ispisuje broj 2.
Zadatak:
Napravite algoritam za program koji traži unos
brojeva sve dok se ne unese 0. Program treba na
zaslon ispisati koliko je unesenih brojeva (bez
nule). |