Programske petlje

Sito: CARNET - Arhiva 2021 Loomen
Corso: Algoritmi i programiranje 1. razred
Libro: Programske petlje
Stampato da: Gost (anonimni korisnik)
Data: Tuesday, 1 July 2025, 21:59

Descrizione

--

1. Naredbe ponavljanja

Naredbe ponavljanja odnosno programske petlje  omogućuju ponavljanje jedne ili nekoliko naredbi dok je zadani uvjet zadovoljen (istinit). Ponavljanje naredbi unutar petlje nazivamo iteracija. Riječ iteracija dolazi iz latinskog jezika a znači ponavljanje, obnavljanje.

Unutar bloka petlje povremeno su nam potrebne dodatne naredbe kako bismo djelovali npr. na izuzetke. To su najčešće naredbe break, continue i exit.

Naredba break se rabi kad treba prekinuti izvođenje bloka naredbi unutar petlje. Nakon naredbe break program prelazi na prvu naredbu iza programske petlje.

Naredba break je i sastavni dio switch-case naredbe.

Ponekad je potrebno preskočiti dio bloka naredbi do kraja programske petlje pa nakon toga petlju nastaviti. U tu se svrhu rabi naredba continue.

Preporuča se umjesto naredbe continue rabiti naredbe grananja jer nepažljiva uporaba naredbe continue može izazvati beskonačnu petlju.

Naredba exit završava izvođenje cijelog programa.



2. Vrste programskih petlji

Postoje petlje za koje unaprijed znamo koliko puta će se izvesti i one za koje je to nepoznato:


Ovisno o tome s kakvim podacima raspolažemo u većini programskih jezika možemo koristiti slijedeće vrste petlji:


16


3. Petlja s unaprijed poznatim brojem ponavljanja

Petlja for se najčešće rabi ako se dijelovi programa (blokovi naredbi) ponavljaju unaprijed poznati broj puta.


4. Primjeri programske petlje s unaprijed poznatim brojem ponavljanja

1. primjer:  Ana piše ispit koji ima 10 zadataka. Svaki zadatak nosi određeni broj bodova koji piše kraj zadatka. Ana nakon što riješi koji zadatak zapiše broj bodova koji nosi zadatak na papirić koji joj služi za računanje. Planira ih na kraju zbrojiti i saznati koliko je bodova sakupila ukupno. Izradimo joj aplikaciju koja će joj u tome pomoći.



2. primjer: U mjesecu siječnju 2020. je 19 radnih dana. Spremačica Anica u vreću sakuplja PVC boce koje u košarama za otpatke ostave učenici. Na kraju svakog dana izbroji koliko je boca u vreći. Vreće pohranjuje u ostavi za smeće i na kraju mjeseca ih odvozi u obližnju trgovinu na otkup. Izradimo joj aplikaciju koja će joj izračunati koliko će zaraditi prodajom sakupljenih boca ako znamo da svaka boca vrijedi 0.5 kn.



5. Petlja kod koje broj ponavljanja nije poznat, a uvjet se provjerava na početku

Naredba tj. ključna riječ while dolazi iz engleskog jezika a značenje joj je dokPetlja se izvršava - iterira dok vrijedi zadani uvjet.
Petlja while se najčešće rabi ako broj ponavljanja petlje nije unaprijed poznat, nego ovisi o ispunjenju zadanog uvjeta. While petlja se može shvatiti kao ponavljajuća if naredba
Osnovni oblik petlje while je:

Kod ove se vrste petlje uvjet ispituje na početku, a blok naredbi petlje ponavlja se sve dok je uvjet ispunjen.
Uvjet je logički izraz čiji rezultat mora biti logički podatak (tip bool). Kada rezultat postane logička neistina (false, 0), preskače se blok naredbi petlje i program se nastavlja od prve naredbe nakon bloka naredbi petlje.
Budući da se kod petlje while uvjet ispituje na početku može se dogoditi da se blok naredbi u petlji ne izvrši niti jednom.





6. Primjeri programske petlje s ispitivanjem uvjeta na početku

1. primjer: Nastavnica unosi ocjene iz pisane provjere u e-Dnevnik a aplikacija traži i unos prosječne ocjene razreda za tu provjeru. Aplikacija e-Dnevnik nema opciju izračuna prosjeka razreda. Izradite joj aplikaciju koja će joj izračunati prosječnu ocjenu razreda. 


2. primjer: Program koji uneseni broj ispisuje unatrag pomoću while petlje



3. primjer: Program koji računa najveći zajednički djelitelj dva broja



4. primjer: Igra pogađanja gdje korisnik treba pogoditi tajni broj. Nakon svakog pokušaja program korisniku ispisuje poruku je li broj prevelik ili premalen. Na kraju se ispisuje koliko je pokušaja bilo potrebno za pogađanje.



5. primjer: Program koji binarni broj  pretvara u decimalni.



7. Petlja kod koje broj ponavljanja nije poznat, a uvjet se provjerava na kraju

Petlja do - while se rabi ako broj ponavljanja petlje nije unaprijed poznat, nego ovisi o ispunjenju zadanog uvjeta. Opći oblik do while petlje: 


Uvjet se ispituje na kraju petlje pa će se blok naredbi petlje izvršiti bar jedanput neovisno o istinitosti uvjeta.
To je osnovna razlika petlje do while u odnosu na petlje for while kod kojih se može dogoditi da se blok naredbi ne izvede niti jedanput.


8. Primjer programske petlje s ispitivanjem uvjeta na kraju

Primjer: Treba unijeti N prirodnih brojeva (N nije unaprijed poznat!) pa pronaći i ispisati najveći uneseni broj. Nakon posljednjeg broja treba unijeti 0.


9. Ugniježđena i bekonačna petlja

Petlje for se mogu pisati jedna unutar druge, tj. biti ugniježđene jedna unutar druge.
Pri ulazu u vanjsku petlju, kontrolna varijabla vanjske petlje poprima početnu vrijednost. Provjerava se uvjet vanjske petlje, pa ako je ispunjen, ulazi se u unutarnju petlju.
Pri ulazu u unutarnju petlju, kontrolna varijabla unutarnje petlje poprima početnu vrijednost, provjerava se uvjet unutarnje petlje, pa ako je ispunjen izvršava se blok naredbi unutarnje petlje.
Po završetku bloka naredbi unutarnje petlje mijenja se vrijednost kontrolne varijable unutarnje petlje za vrijednost prirasta unutarnje petlje. Sve dok je zadovoljen uvjet unutarnje petlje njen blok naredbi se opetovano ponavlja uz stalnu vrijednost kontrolne varijable vanjske petlje.
Kada uvjet unutarnje petlje nije ispunjen izlazi se iz unutarnje petlje i ponovo se počne izvršavati vanjska petlja. Vrijednost kontrolne varijable vanjske petlje se mijenja za vrijednost prirasta, provjerava se uvjet vanjske petlje pa ako je ispunjen, ulazi se u unutarnju petlju. Sada se ponovo ponavlja opisan postupak izvršavanja unutarnje petlje.
Sve se ponavlja do trenutka kada uvjet vanjske petlje više nije ispunjen. Za svaku vrijednost kontrolne varijable vanjske petlje izvodi se cjelokupna unutarnja petlja.




Može se dogoditi da je uvjet petlje uvijek ispunjen. Petlja će se tom slučaju izvoditi beskonačno puta.

 Da bi se izbjegla beskonačna petlja, treba:

  1. Zadati uvjet koji jamči konačan broj ponavljanja petlje.
  2. Navesti sva tri izraza u zagradi iza naredbe for.
  3. Izbjegavati promjenu vrijednosti kontrolne varijable petlje unutar bloka naredbi petlje.