Učinkovitost sesalcev
Če pod nalogo manjka tipka za oddajo, niste vpisani v predmet. Kliknite na spustni menu zgoraj desno in izberite *Vpiši me v predmet* oz nekaj takšnega.
Tokrat bo treba napisati šest funkcij. Za pravilno rešeno nalogo je potrebno (pravilno) napisati vseh šest. Funkcije se seveda lahko kličejo med sabo.
Napišite funkcijo
sled(pot, sirina, visina), ki vrne seznam koordinat polj, ki jih obišče sesalec na podani poti.Klic
sled(">>^<<<<v^", 5, 5)vrne[(0, 0), (1, 0), (2, 0), (2, 1), (1, 1), (0, 1), (0, 0), (0, 1)].Klic
sled("", 5, 5)vrne[(0, 0)]. Tudi klicsled("<<<<vvv", 5, 5)vrne[(0, 0)]; neopravljenih premikov ne beležimo.Napišite funkcijo
posesano(pot, sirina, visina), ki vrne število polj, ki jih je sesalec posesal. (Če isto polje posesa večkrat, ga štejemo samo enkrat.)Klic
posesano(">>^<<<<v^", 5, 5)vrne6.Klic
posesano("", 5, 5)vrne1. Sesalec se sicer ni premaknil, vendar je posesal vsaj začetno polje.Napišite funkcijo
posesano2(pot1, pot2, sirina, visina), ki vrne število polj, ki jih posesata dva sesalca. Najprej gre na pot prvi, nato drugi. Polja, ki so posesana večkrat, štejemo le enkrat.Klic
posesano2("^^>", "^>", 5, 5)vrne 5; posesana so polja(0, 0),(0, 1),(0, 2),(1, 1)in(1, 2).Napišite funkcijo
posesano_skupaj(poti, sirina, visina), ki je podobna prejšnji funkciji, vendar namesto dve poti prejme cel seznam poti. Tako kot prejšnja funkcija tudi ta vrne skupno število posesanih polj.Klic
posesano_skupaj(["^^>", "^>", ">>>"], 5, 5)vrne8.Napišite funkcijo
neposesano(poti, sirina, visina), ki prejme enake argumente kot prejšnja in vrne število neposesanih polj.Napišite funkcijo
prispevki(poti, sirina, visina), ki prejme enake argument in vrne seznam s številom polj, ki jih posesa posamezni sesalec (in jih ni posesal noben sesalec pred njim).Klic
prispevki(["^^>", "^>", ">>>vvvvvv"], 5, 5)vrne[4, 1, 3], saj prvi sesalec posesa štiri polja, drugi eno polje (ki ga še ni posesal prvi) in tretji tri (premike dol seveda ignoriramo, saj je tam stena).
Testi
- 3. marec 2026, 15:41