Naredbe ponavljanja
2. Petlja s poznatim brojem ponavljanja - for
Kao što je navedeno u naslovu, ova se naredba primjenjuje u zadacima u kojima je broj ponavljanja unaprijed poznat. To je najopćenitija vrsta petlje i najčešće se koristi, a ima slijedeći oblik:
Python | C/C++ |
---|---|
for b in range (p, k, s):
naredba (blok naredbi) |
for (b=p; b<k;b+=s)
naredba (blok naredbi); |
Python | C/C++ |
---|---|
for b in range (p, k):
naredba (blok naredbi) |
for (b=p; b<k;b++)
naredba (blok naredbi); |
Dodatno, ako je početna vrijednost varijable b = 0, for petlju zapisujemo ovako:
Python | C/C++ |
---|---|
for b in range (k):
naredba (blok naredbi) |
for (b=0; b<k;b++)
naredba (blok naredbi); |
Tijek izvršavanja naredbe s poznatim brojem ponavljanja je slijedeći:
1. Kontrolna varijabla se postavlja na početnu vrijednost.
2. Provjerava se je li vrijednost kontrolne varijable manja od završne vrijednosti (k). Ako je rezultat istina, izvodi se blok naredbi.
3. Vrijednost kontrolne varijable uveća se za korak (s). Program se vraća na početak petlje, te se ona ponavlja od točke 2.
4. Ako je vrijednost kontrolne varijable veća ili jednaka završnoj vrijednosti, blok naredbi se preskače i program se nastavlja prvom naredbom iza bloka.
Primjer 1:
Dio programa:
Python | C/C++ |
---|---|
for b in range (9):
print ('Danas je lijep dan!') |
for (b=0; b<9;b++)
printf ("Danas je lijep dan!"); |
na zaslon će 10 puta ispisati rečenicu Danas je lijep dan!
Primjer 2:
Dio programa:
Python | C/C++ |
---|---|
for b in range (100, 111):
print(b) |
for (b=100; b<111;b++)
printf("%d", b); |
na zaslon će ispisati brojeve 100, 101, 102, 103... do 110.
Naredbe ponavljanja mogu se kombinirati sa svim naredbama koje se koriste u programiranju.
Tako će, na primjer, dio programa
Python | C/C++ |
---|---|
for b in range (1, 21):
if b % 2 == 0: print(b) |
for (b=1; b<=20;b++)
if( b % 2 == 0) printf("%d", b) ; |
Primjer 3:
Dio programa
Python | C/C++ |
---|---|
s = 0
n = int(input()) for b in range (n+1): s = s + b print(s) |
int s = 0, n;
scanf("%d", &n); for (b=1; b<=n;b++) s = s + b; printf("%d", s); |
Provjerimo!
Neka je n=4;
za b = 1 => s = 0 + 1 = 1
za b = 2 => s = 1 + 2 = 3
za b = 3 => s = 3 + 3 = 6
za b = 4 => s = 6 + 4 = 10
A to je upravo 1+2+3+4!
Primjer 4:
Dio programa
Python | C/C++ |
---|---|
broj = int(input())
for b in range (5): znam = broj % 10 broj =broj // 10 print (znam) |
for (b=1; b<=4;b++)
{ znam = broj % 10 broj =broj / 10; printf("%d", znam); } |
će na zaslon ispisati znamenke unesenog četveroznamenkastog broja. Na isti način možemo ispisivati znamenke troznamenkastog, peteroznamenkastog ili bilo kojeg broja kojem znamo broj znamenki. Samo mijenjamo završnu vrijednost kontrolne varijable.
Ali, što kada želimo napraviti općeniti program? Za broj kojemu ne znamo unaprijed broj znamenki?
U tom slučaju ne možemo koristiti petlju s poznatim brojem ponavljanja, već jednu od petlji kod kojih ponavljanje ovisi o uvjetu!
S tim ćemo se petljama upoznati u sljedećim lekcijama.