Autorské riešenie
[stiahni]

Pri kotúľaní kocky po papieri dochádza k striedaniu farieb. Ak teda v Leovom návode na kreslenie idú rovnaké farby za sebou, tento návod nie je správny.

V cykle kym budeme prechádzať zoznam navod a zisťovať, či v ňom nenájdeme dve rovnaké farby idúce bezprostredne za sebou.

viem testuj
 urobtu "odpoved 1
 urobtu "p pocet :navod
 kym [zaroven (:odpoved=1)(pocitadlo<:p)]
     [ak prvok pocitadlo :navod = prvok 1+pocitadlo :navod [urobtu "odpoved 0]]
 ak2 :odpoved=1 [zo "|V poriadku|][zo "Chyba!]
koniec 

Hodnota premennej odpoved sa zmení na 0, ak sa v cykle zistí prvá rovnosť dvoch po sebe idúcich prvkov (prvok pocitadlo :navod = prvok 1+pocitadlo :navod).

Toto testovanie opakujeme, ak sú súčasne splnené dve podmienky:

  • :odpoved=1 - zatiaľ sa nenašli dve po sebe idúce rovnaké farby,
  • pocitadlo<:p - nie sme ešte na konci zoznamu (v premennej :p máme uložený počet prvkov zoznamu navod, premenná pocitadlo je premennou cyklu kym - pri každom jeho behu sa automaticky zvýši o 1)

Ak je ktorákoľvek z uvedených podmienok nesplnená, cyklus kym končí.

Stačí už len otestovať, prečo skončil. Ak hodnota premennej odpoved zostala nezmenená (1), prešli sme celý zoznam navod a nenašli sme žiadnu chybu ("V poriadku"). Ak sa hodnota premennej odpoved zmenila na 0, v zozname sa našla chyba ("Chyba!").

Najčastejšie chyby, komentár k vašim riešeniam

Pri riešení tejto úlohy si bolo potrebné uvedomiť, že zoznam s kresliacim návodom môže mať rôznu dĺžku a ak je chyba hneď na jeho začiatku, je zbytočné prechádzať zvyšok zoznamu.
Práve preto sme vás ešte pred súťažou upozornili na logické spojky. Procedúra mala ukončiť testovanie zoznamu v dvoch prípadoch: buď prešla celý zoznam alebo našla chybu.
Niektorí z vás prechádzali celý zoznam, iní sa to snažili riešiť "násilným" spôsobom - použitím príkazu ukonči.
Pozrite si autorské riešenie - určite sa vám nové informácie zídu pri riešení ďalších úloh Palmy Junior.