Kombinovanje petlji¶
Videli smo da u telu for naredbe može da se nađe više različitih naredbi. Slično kao sa for naredbom, i u telu while
naredbe može (pored ostalih naredbi) da se nađe i nova petlja, bilo while ili for. Tako možemo da gradimo različite kombinacije umetnutih (ugnežđenih) petlji.
Kada su dve petlje umetnute jedna u drugu, zovemo ih i dvostruka petlja, dok tri ugnežđene petlje zovemo trostruka petlja. Na sličan način možemo ugnezditi bilo koji broj petlji jednu u drugu, ali za velikim brojem ugnežđenih petlji vrlo retko imamo potrebu.
U ovoj lekciji ćemo vežbati pisanje kombinacija ugnežđenih while i for petlji.
Razne dvostruke i višestruke petlje - zadaci¶
Uzimaj po četiri loptice do kraja¶
Ispred Karela je jedno ili više polja, a na svakom od polja ispred Karela su po četiri loptice (na početnom polju nema loptica). Karel treba sve da ih pokupi.
Sada Karel, sve dok ne dođe do zida, treba da ponavlja korak napred i uzimanje 4 loptice. Pokušajte da dopunite program.
Podsetimo se, kao i u ranijim primerima ugnežđenih petlji, naredba u telu unutrašnje petlje (ovde će to biti naredba uzmi()
) treba da bude dodatno uvučena.
Pokupi sve loptice¶
Ispred Karela je bar jedno polje, a može ih biti bilo koliko. Na svakom od polja ispred Karela ima nula ili više loptica (počteno polje je prazno). Karel treba da pokupi sve loptice.
Ovaj zadatak je uopštenje prethodnog, pa program koji rešava ovaj zadatak, može da se iskoristi i u prethodnom. Razlika je u tome što sada unutrašnja petlja mora da bude while, dok je u prethodnom zadatku mogla da bude i for.
I u ovom programu naredba uzmi()
treba da bude dodatno uvučena. Na taj način će se ona ponavljati dok je uslov unutrašnje while
naredbe ispunjen, to jest dok ima loptica na polju na kome je Karel u tom trenutku, a uzimanje svih loptica se zajedno sa naredbom napred
ponavlja u spoljašnjoj while
naredbi dok ima polja ispred Karela. Ukupni efekat ugnežđenih petlji je da će biti uzete sve loptice sa svakog polja.
Donesi sve loptice¶
Ispred Karela je prav put nepoznate dužine. Karel treba da prikupi sve loptice sa svih polja i donese ih na početno polje.
Program je komentarima razložen na sitnije celine. Dodajte delove koji nedostaju.