Autorské riešenie 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. |
||||||||||
© Univerzita
Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky |