Autorské riešenie
V tejto úlohe potrebujeme vypočítať pozíciu žaby po zadanom počte hodín - počte skokov. Predstavme si, že žaba skáče po číselnej osi a začína v bode 0. Po prvom skoku je na čísle 1, po druhom skoku bude na čísle -1, po treťom na čísle 2, po štvrtom na -2, atď. Po nepárnom počte skokov sa žaba bude nachádzať na nejakom kladnom čísle, po párnom na nekladnom čísle. Absolútna hodnota pozície nikdy neprekročí polovicu počtu hodín - skokov. Teda, na to, aby sme zistili pozíciu žaby po párnom počte krokov, stačí počet hodín vydeliť číslom 2. Pri nepárnom počte hodín potrebujeme počet hodín vydeliť číslom 2 a zaokrúhliť nahor, čo znamená celočíselne vydeliť počet hodín číslom 2 a k výsledku pripočítať číslo 1. ;Imagine
logo
viem zisti_poziciu :hodina ak :hodina < 0 [výsledok "chybnyVstup] ak2 zvyšok :hodina 2 = 0 [výsledok -:hodina / 2] [výsledok (cPodiel :hodina 2) + 1] koniec Ak by sme nechceli rozmýšľať nad vzorcom, môžeme túto úlohu riešiť aj takto: ;Imagine
logo
viem zisti_poziciu :hodina ak :hodina < 0 [výsledok "chybnyVstup] urobTu "pozicia 0 opakuj :hodina [ ak2 zvyšok počítadlo 2 = 0 [urobTu "pozicia :pozicia - počítadlo] [urobTu "pozicia :pozicia + počítadlo] ] výsledok :pozicia koniec Vaše zaujímavé riešenia a najčastejšie chyby Častým problémom bolo nevrátenie výsledku, ale jeho vypísanie. Tiež nepoužitie parametra procedúry, ale získavanie hodnoty počtu hodín príkazom čítajSlovo v tele procedúry. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |