You are on page 1of 15

WHILE PETLJA

while petlja
■ while petlja se najčešće koristi ako broj ponavljanja bloka
naredbi u petlji nije unaprijed poznat.

■ Izvršava se sve dok je ispunjen zadani uvjet (uvjet je


logički izraz).

Sanda, 2019. 2
while petlja
■ Osnovni oblik:

Sanda, 2019. 3
Primjer 54
■ Potrebno je unesenom prirodnom broju prebrojiti
znamenke.

Upisi prirodni broj:

Broj … ima … znamenaka.

Sanda, 2019. 4
#include<iostream>
using namespace std;
int main()
{
int br,b,a;
cout<<"Upisi prirodni broj: "; cin>>b;
a=b;
br=0;
while(b>0)
{
b=b/10;
br=br+1;
}
cout<<"Broj "<<a<<" ima "<<br<<" znamenki."<<endl;
return 0;
}
Sanda, 2019. 5
Primjer 54
■ Broj znamenaka broja B nije unaprijed poznat.
■ Algoritam bi trebao funkcionirati na sljedeći način:

Sanda, 2019. 6
Primjer 54
■ Uvjet petlje: B>0.
■ U petlji:
– Od vrijednosti varijable B odvaja se znamenka najmanje
težinske vrijednosti, a potom se dobiveni rezultat vraća u
varijablu B.
– Varijabla koja prebrojava znamenke uvećava se za 1.
■ Provjerava se uvjet petlje.

Sanda, 2019. 7
Pohrana
vrijednosti
unesenog broja.
Varijablu koja će
prebrojavati
znamenke valja
isprazniti.

Sanda, 2019. 8
Primjer 54
 Provjera programa:

Sanda, 2019. 9
Primjer 55
■ Test je pisalo N učenika (N NIJE unaprijed poznat!!). Maksimalan broj bodova je 100. Za ocjenu odličan treba postići bar 80 bodova. U
programu se za svakog učenika unose bodovi osvojeni na testu (broj bodova NE MOŽE biti negativan). Po unosu broja bodova prvo
treba provjeriti da li je broj bodova iz dozvoljenog raspona. Ako nije, takav se unos zanemaruje. Potom se unos ponavlja.
■ Unos traje sve dok korisnik ne upiše -1. Program ispisuje koliko je učenika pisalo test, te koliko ih je ocijenjeno ocjenom odličan.

Sanda, 2019. * DM 10
Primjer 55

Upisi osvojeni broj bodova (raspon bodova je 0-


100):

Test je pisalo … ucenika. Ocjenom odlican


ocijenjeno ih je ….

Sanda, 2019. * DM 11
#include<iostream>
using namespace std;
int main()
{
int b,bb,bu,b5;
b5=0;
bu=0;
cout<<"Nakon posljednjeg broja bodova upisi -1."<<endl;
while(bb!=-1)
{ p:cout<<"Upisi osvojeni broj bodova (raspon bodova je 0-100): ";
cin>>bb;
if((bb<-1)||(bb>100))
{
cout<<endl<<"Pogreska pri unosu bodova. Ponovi!"<<endl;
goto p;
}
bu++;
if(bb>=80)
{
b5++;
}
}
bu=bu-1;
cout<<endl<<"Test je pisalo "<<bu<<" ucenika.\
Ocjenom odlican ocijenjeno ih je"<<b5;
return 0;
}
Sanda, 2019. 12
Primjer 55
■ U uvjetu petlje se sadržaj varijable bb uspoređuje s
-1 (bb!=-1).
■ U petlji:
– unosi se broj bodova bb, varijabla bu uvećava se za
jedan,
– uneseni broj bodova bb uspoređuje se s 80
(bb>=80),
– ako je veći od 80, varijabla b5 uvećava se za
jedan (prebrojavanje odličnih),
– Nakon petlje, sadržaj varijable bu umanjuje se za
1 (nula se ne broji).

Sanda, 2019. 13
Pomoćne
varijable
valja
isprazniti.

Uvjet
petlje
.
Provjera za
ocjenu odličan. Da li je ocjena
iz zadanog
-1 se ne smije raspona
prebrojiti! vrijednosti?

Sanda, 2019. 14
Primjer 55
 Provjera programa:

Sanda, 2019. 15

You might also like