You are on page 1of 31

STRUKTURA PETLJE - UVOD

STRUKTURA PETLJE

 Struktura petlje koristi se kada neki blok


naredaba treba višekratno ponavljati.

 Ponavljati se može:
 unaprijed zadani broj puta (konačne
petlje),

 sve dok je ispunjen zadani uvjet


(uvjetne petlje).

Sanda, 2019. 2
FOR PETLJA

 for petlja - petlja koja se izvršava unaprijed


zadani,
konačan broj puta.

 Osnovni oblik for petlje:

Sanda, 2019. 3
FOR PETLJA

 Svaka for petlja ima svoju kontrolnu


varijablu.

 Kontrolnoj varijabli se na početku petlje


pridružuje početna vrijednost.

 Vrijednost kontrolne varijable svakim se


prolaskom kroz petlju mijenja za
vrijednost prirasta.

 Petlja se izvršava sve dok je uvjet


ispunjen (logička istina; 1).
Sanda, 2019. 4
FOR PETLJA

Sanda, 2019. 5
PRIMJER 45

 Korištenjem for petlje ispisati brojeve iz


raspona od M do N (raspon bira korisnik).

Upisi pocetni broj raspona:


Upisi zavrsni broj raspona:

Ispis brojeva od ... do ... :


... ... ... ... ... ...

Sanda, 2019. 6
Sanda, 2019.

#include<iostream>
using namespace std;
int main()
{
int brojac,m,n;
cout<<"Upisi pocetni broj raspona:"; cin>>m;
cout<<"Upisi zavrsni broj raspona:"; cin>>n;
cout<<endl<<"Ispis brojeva od "<<m<<" do"<<n<<":"<<endl;
for (brojac=m;brojac<=n;brojac++)
{
cout<<brojac<<" ";
}
return 0;
}

7
Sanda, 2019. 8
PRIMJER 45

 Provjera programa:

Sanda, 2019. 9
PRIMJER 45A

U prethodnom primjeru obrisati dio


definicije petlje, ovako:

for (brojac=m;brojac<=n;)

a potom program pokrenuti.

Sanda, 2019. 10
OPREZ - BESKONAČNA PETLJA

 Petlja se izvodi neograničen broj puta jer


je uvjet uvijek ispunjen.

Sanda, 2019. 11
KAKO IZBJEĆI BESKONAČNU PETLJU?

 Zadati uvjet koji jamči konačan broj


ponavljanja petlje.

 Izbjegavati promjenu vrijednosti


kontrolne varijable unutar bloka
naredbi for petlje.

Sanda, 2019. 12
PRIMJER 46

 Treba ispisati parne brojeve iz raspona od


50 do N. N bira korisnik.

Upisi zavrsnu vrijednost raspona:

Parni brojevi iz raspona od 50 do … su:


50 52 54 56 ....

Sanda, 2019. 13
Sanda, 2019.

#include<iostream>
using namespace std;
int main()
{
int brojac,N;
cout<<"Upisi zavrsnu vrijednost raspona:";
cin>>N;
cout<<endl<<"Parni brojevi iz raspona od 50 do "
<<N<<" su:" <<endl;
for (brojac=50;brojac<=N;brojac+=2)
{
cout<<brojac<<" ";
}
return 0;
}
14
PRIMJER 46

 Pošto je razlika dva susjedna parna broja 2,


problem je moguće riješiti tako da se
vrijednost kontrolne varijable petlje svakim
prolaskom kroz petlju uveća za 2.

(Zadatak se može riješiti i provjerom


djeljivosti s 2!)

Sanda, 2019. 15
PRIMJER 46

Sanda, 2019. 16
PRIMJER 46

 Provjera programa:

Sanda, 2019. 17
PRIMJER 46A
 Što kada bismo željeli brojiti unatrag?
 Promijeniti prethodni program tako da
ispisuje parne brojeve unatrag; od 100 do N.
N bira korisnik.
Upisi zavrsnu vrijednost raspona:

Parni brojevi iz raspona od 100 do … su:


100 98 96 94 .... …. …

(I ovaj se zadatak može riješiti provjerom djeljivosti s 2!)

Sanda, 2019. 18
Sanda, 2019.

#include<iostream>
using namespace std;
int main()
{
int brojac,N;
cout<<"Upisi zavrsnu vrijednost raspona:";
cin>>N;
cout<<endl<<"Parni brojevi iz raspona od \
100 do "<<N<<" su:"<<endl<<endl;
for (brojac=100;brojac>=N;brojac-=2)
{
cout<<brojac<<" ";
}
return 0;
}
19
PRIMJER 46A

 Prirast može biti i negativan, tada se


vrijednost kontrolne varijable smanjuje.

 Ako je prirast negativan, početna


vrijednost kontrolne varijable mora biti
veća od završne.

Sanda, 2019. 20
PRIMJER 46A

Sanda, 2019. 21
PRIMJER 46A

 Provjera programa:

Sanda, 2019. 22
PRIMJER 47

 Treba ispisati brojeve iz raspona od M do N


djeljive brojem B.

Upisi pocetnu vrijednost raspona:


Upisi zavrsnu vrijednost raspona:
Upisi broj za provjeru djeljivosti:

Brojevi djeljivi s ... iz raspona od ... do ... su:


... ... ... ... ...

Sanda, 2019. 23
Sanda, 2019.

#include<iostream>
using namespace std;
int main()
{
int brojac,m,n,b;
cout<<"Upisi pocetnu vrijednost raspona:"; cin>>m;
cout<<"Upisi zavrsnu vrijednost raspona:"; cin>>n;
cout<<"Upisi broj za provjeru djeljivosti:"; cin>>b;
cout<<endl<<"Brojevi djeljivi sa "<<b
<<" iz raspona od "<<m<<" do "<<n<<" su:"<<endl<<endl;
for (brojac=m;brojac<=n;brojac++)
{
if(brojac%b==0)
cout<<brojac<<" ";
}
return 0;
}
24
Sanda, 2019. 25
PRIMJER 47

 Provjera programa:

Sanda, 2019. 26
PRIMJER 48

 Potrebno je ispisati sve troznamenkaste


brojeve koji imaju znamenku desetice
djeljivu s 2, a znamenku jedinice jednaku 7.

Brojevi koji zadovoljavaju uvjet su:

… ... …

Sanda, 2019. 27
Sanda, 2019.
#include<iostream>
using namespace std;
int main()
{
int i,d,j;
cout<<endl<<"Brojevi koji zadovoljavaju uvjet su: "<<endl;
for(i=100;i<=999;i++)
{
d=i/10%10;
j=i%10;
if((d%2==0)&&(j==7))
{
cout<<i<<" ";
}
}
cout<<endl;
return 0;
28
}
PRIMJER 48
 Potrebno je iz troznamenkastog broja
izdvojiti znamenke desetice i jedinice, a
potom postaviti uvjete koji su za njih
zadani:

 Uvjete povezujemo I operatorom.

Sanda, 2019. 29
Sanda, 2019. 30
PRIMJER 48

 Provjera programa:

Sanda, 2019. 31

You might also like