Autorské riešenie
Zo zadania poznáme pravidlá hra Šestomíľové močiare, v ktorej sa používa 9-hodnotový spinner (Obr. 1.) a na každom šiestom políčku sa nachádza močiar. Po niekoľkonásobnom točení spinnerom a zaznamenávaní vytočených cifier vznikne každému hráčovi nejaké viacciferné číslo. Cieľom tejto úlohy je vytvoriť funkciu, ktorá podľa viacciferného čísla vráti číslo políčka, na ktorom figúrka skončí.
Po každom točení spinnera sa figúrka posunie na iné políčko. Potrebujeme teda vedieť, na akom čísle políčka aktuálne stojí. Môžeme na tento účel použíť premennú napr. aktualnePolicko (resp. aktualne_policko). Na začiatku bude figúrka stáť na štarte, teda na políčku s číslom 0. Aby sme vedeli vykonať každý posun figúrky, potrebujeme sa pozrieť na každú cifru viacciferného čísla osobitne. Túto cifru budeme pripočítavať k aktuálnému číslu políčka. Potom už stačí len zistiť, či je toto číslo políčka deliteľné číslom 6. Ak áno, tak figúrku musíme znova postaviť na štart. Keď sme prešli každú cifru viacciferného čísla, tak aktuálne číslo políčka je vlastne finálnym číslom políčka. Túto hodnotu vrátime. ;Imagine logo
viem finalnePolicko :cislo urobTu "aktualnaPozicia 0 prePrvky "cifra :cislo[ urobTu "aktualnaPozicia (:aktualnaPozicia + :cifra) ak (zvysok :aktualnaPozicia 6) = 0[ urobTu "aktualnaPozicia 0 ] ] vysledok :aktualnaPozicia koniec #Python def finalne_policko(cislo): aktualna_pozicia = 0 for cifra in str(cislo): aktualna_pozicia = aktualna_pozicia + int(cifra) if aktualna_pozicia % 6 == 0: aktualna_pozicia = 0 return aktualna_pozicia Vaše zaujímavé riešenia a najčastejšie chyby Túto úlohu riešilo 17 tímov, z toho 6 tímov v jazyku Imagine a 11 tímov v jazyku Python, pričom v jazyku Python bola úspešnosť vyššia o 7%. Celkovo hodnotíme túto úlohu za veľmi úspešnú a dobre zvládnutú. Až 12 riešní bolo úplne alebo skoro úplne správnych a ich riešenie bolo veľmi podobné autorskému riešeniu. Niektoré tímy zadanie pochopili po svojom a generovali cifry vytočené na spinneri, alebo posunuli figúrku iba práve o jedno točenie spinnerom. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |