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);

gdje je b  kontrolna varijabla koja kontrolira broj prolazaka petljom, a njezina se vrijednost automatski mijenja svakim prolaskom kroz petlju za korak s - od početne vrijednosti (p) do krajnje vrijednosti (k-1). (Možemo je prikazati kao brojač koji se u svakom koraku povećava za s. Kreće od početne vrijednosti p, a povećava se dok ne dostigne krajnju vrijednost k).
Ako je korak s jednak 1, odnosno kontrolna varijabla se u svakom koraku povećava za 1 for petlju možemo zapisati ovako:

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)
;


na zaslon ispisati sve parne brojeve u intervalu od 1 do 20.
Napomena: ovaj problem mogli smo riješiti i bez ispitivanja uvjeta, postavljanjem početne vrijednosti kontrolne varijable na 2 i njezinim povećavanjem za 2!

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);

na zaslon će ispisati zbroj brojeva od 1 do n.

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.