Autorské riešenie
[stiahni]

Vymyslieť riešenie tejto úlohy nie je ťažké. Budeme však musieť trochu porozmýšľať nad tým, ako riešenie zapísať.

Postupne budeme prechádzať záznam o priebehu jazdy. Tento záznam obsahuje prvky: zo ko zd alebo kd ktoré hovoria o tom, kde sa vodič nachádza.  Ďalej záznam obsahuje čísla označujúce rýchlosť vodiča. Ak narazíme na niektorý z reťazcov zapamätáme si, kde sa vodič nachádza. Ak narazíme na číslo, zistíme či prekročil rýchlosť. Nezabudnime na to, že každá jazda začína v obci.

viem kontrola
  urobTu "miesto "obec

  prePrvky "zaznam :z [
    akJe :zaznam [
      zo    [urobTu "miesto "obec]
      ko kd [urobTu "miesto "mimoobec]
      zd    [urobTu "miesto "dialnica]
            [ak zaroven :miesto = "obec :zaznam > 40 [pis "prekrocil ukonci]
             ak zaroven :miesto = "mimoobec :zaznam > 64 [pis "prekrocil ukonci]
             ak :zaznam > 90 [pis "prekrocil ukonci]]
    ]
  ]
  pis "neprekrocil
koniec

Všimnime si ešte jednu vec. Ak zistíme, že vodič prekročil rýchlosť, nemusíme záznam jazdy ďalej prezerať. Našu procedúru ukončíme príkazom ukonci.

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

Úlohu riešilo 12 tímov, z toho 5 tímov správne. Ostatní sa dopustili týchto chýb:

  • prechádzali zoznam aj potom, ak zistili prekročenie rýchlosti,
  • vypisovali správu po prečítaní každého prvku záznamu,
  • použili rekurziu, ktorá je príliš náročná a v tomto prípade zbyutočná.