Algoritamska struktura - petlje 1
Sjedište: | CARNET - Arhiva 2021 Loomen |
E-kolegij: | III. Gimnazija Osijek - Informatika 1 |
Knjiga: | Algoritamska struktura - petlje 1 |
Otisnuo/la: | Gost (anonimni korisnik) |
Datum: | petak, 31. siječnja 2025., 18:50 |
1. Petlje (iteracija, ponavljanje)
Često se u procesu programiranja pojavljuje potreba za ponavljanjem dijelova programa. Na primjer, postoji li potreba za unošenjem 10 brojeva, naredbu za unošenje treba pisati deset puta. Praktičnije je potrebne naredbe napisati jedanput, a pri izvođenju programa pozvati ih željeni broj puta.
Za ponavljanje dijelova programa koristimo se naredbama ponavljanja koje još nazivamo i programskim petljama. Naredbe ponavljanja sastavni su dio svakoga programskog jezika. Možemo ih podijeliti prema različitim kriterijima. S obzirom na broj ponavljanja, dijelimo ih na:
• petlje u kojima je poznat broj ponavljanja i
• petlje u kojima broj ponavljanja ovisi o uvjetu.
2. Petlja u kojoj je poznat broj ponavljanja
Ta se naredba primjenjuje u zadatcima u kojima je broj ponavljanja unaprijed poznat. U pseudojeziku možemo je zapisati kao:
Varijabla b je kontrolna varijabla ili brojač. Ona nadzire broj prolazaka petljom, a njezina se vrijednost automatski povećava za jedan svakim prolaskom kroz petlju – od početne vrijednosti (p) do krajnje vrijednosti (k). Tijek izvršavanja naredbe s poznatim brojem ponavljanja je sljedeći:
1. Vrijednost kontrolne varijable b postavlja se na početnu vrijednost p.
2. Provjerava se je li vrijednost kontrolne varijable manja ili jednaka završnoj vrijednosti k Ako je rezultat istina, izvodi se blok naredbi, a vrijednost kontrolne varijable b uveća se za 1. Program se zatim vraća na početak petlje, te se ona ponavlja od početka 2. koraka.
3. Ako je vrijednost kontrolne varijable b veća od završne vrijednosti k, blok naredbi se preskače i program se nastavlja prvom naredbom iza bloka.
Primjer 1.
Dio programa
deset puta će ispisati rečenicu Danas je lijep dan! (Kontrolna varijabla b mijenja svoju vrijednost od jedan do deset.)
Primjer 2.
Dio programa
ispisat će brojeve 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 i 110.
Naredbe ponavljanja mogu se kombinirati sa svim naredbama koje se koriste u programiranju. Tako će, na primjer, dio programa
ispisati sve parne brojeve u intervalu od 1 do 20.
2.1. Primjeri algoritama
Primjer 1. Algoritam
ispisuje zbroj brojeva od 1 do n.
Napomena: Postavljanje vrijednosti varijable na neku početnu vrijednost (u našem primjeru, zbroj = 0) naziva se inicijalizacijom varijable. Inicijalizacijom izbjegavamo mogućnost da se program koristi nekom vrijednosti koja je ostala u memoriji.
Napomena 2: Naredba zbroj=zbroj+i radi na sljedeći način: uzima trenutnu vrijednost varijable zbroj i zbroji ju s vrijednošću varijable i. Dobiveni rezultat pridruži varijabli zbroj, kao njezinu novu vrijednost. Kad se koristi u naredbi ponavljanja, ta naredba omogućuje zbrajanje više vrijednosti.
Provjerimo što radi naš zadatak!
Za provjeravanje promjene vrijednosti varijabli u petlji dobro je koristiti se tablicama kojima pratimo svaki korak. Tako za prethodni primjer napravimo tablicu oblika:
Primjer 2. Algoritam
ispisuje koliko ima brojeva djeljivih s brojem 3 u intervalu od 1 do n.
Napomena: Varijablu br često nazivamo i brojačem. Njezina se vrijednost povećava za jedan kad je ispunjen određen uvjet (u našem primjeru, kad je vrijednost varijable i djeljiva s 3).
Zadatak: Korištenjem tablice kao u prethodnom primjeru, provjeri ispravnost ovog algoritma za n = 15.
Primjer 3. Algoritam
ispisat će srednju ocjenu iz nekog predmeta ili testa za zadani broj učenika. Provjerite ispravnost algoritma pomoću tablice.
Primjer 4. Algoritam
ispisat će najveći ostvareni broj bodova na nekom testu ili natjecanju.
Jednostavniju inačicu ovog algoritma imali smo u prethodnoj lekciji (grananje) kad smo tražili najveći od tri unesena broja. Logika rješavanja je jednaka. Varijablom najveći koristimo se za pohranjivanje najvećeg broja bodova u danom trenutku. Početna vrijednost joj je 0 (u ovom primjeru, jer su u pitanju bodovi i zasigurno će svi biti jednaki nuli ili veći od nje). U trenutku unošenja veće vrijednosti od one koja je u tom času pohranjena kao vrijednost varijable najveći, njezina će se vrijednost zamijeniti unesenim brojem. Tako će na kraju naredbe ponavljanja vrijednost varijable najveći biti upravo najveći od unesenih brojeva. Provjeri!