Autorské riešenie
[stiahni]

Aby sa nám lepšie pracovalo s číslami obvodov, uložíme si ich do samostatných premenných (k, a).

V ďalšom kroku určíme cenu základného denného elektronického lístka - podľa čísla obvodu, z ktorého štartuje Katka (k).

Potrebujeme zistiť, koľko krát Katka prekročí hranicu dvoch susedných obvodov pri ceste k prvej kamarátke (do bodu A). Počet obvodov deliacich Katku od prvej kamarátky sa rovná absolútnej hodnote rozdielu čísel obidvoch obvodov (abs (:k - :a)).

Pri tomto výpočte by sa však mohlo stať, že by Katka cestovala ku svojej kamarátke dlhšou (a teda aj drahšou) cestou. Napríklad, ak by cestovala z obvodu 1 do obvodu 5, spomenutým výpočtom by sme získali hodnotu 4 (abs (1 - 5) = 4). Ak pár takýchto situácií preskúmame, zistíme, že dlhšia cesta hrozí v prípade, ak je počet prejdených obvodov väčší ako 3. V tom prípade ich počet upravíme (ich počet odpočítame od čísla 6 - teda budeme cestovať opačným smerom).

Po týchto úspešných výpočtoch môžeme vypočítať výslednú cenu Katkinho cestovania metrom. Pomocou cyklu opakuj (počet opakovaní určuje celkový počet prejdených obvodov) budeme zvyšovať aktuálnu cenu o 5%.

Celé riešenie môže vyzerať takto:

viem cestovne
 urobtu "k prvy :cesta
 urobtu "a posledny :cesta
 ak2 (zvysok :k 2=0)
  [urobtu "cena 15]
  [urobtu "cena 10]

 urobtu "p abs (:k - :a)

 ak :p>3 [urobtu "p 6-:p]

 opakuj :p[urobtu "cena :cena*1.05]

 zo :cena
koniec

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

Pri riešení tejto úlohy niektorí z vás nesprávne porozumeli zadaniu úlohy (nesprávne počítali výšku poplatku, ak štartovacie a cieľové miesto bolo v tom istom obvode; cestovali len proti smeru hodinových ručičiek). Takže nabudúce si zadanie poriadne prečítajte, a ak si nebude úplne istí - spýtajte sa v rámci chatu.