Autorské riešenie Ak chceme preskúmať platnosť náhodne vytvoreného kruhového kódu a vypočítať počet pracovníkov, ktorí upravovali pancier s týmto kruhovým kódom, mali by sme si uvedomiť nasledovné:
Pri riešení úlohy postupujeme tak, že sa najskôr presunieme na pravú stranu kruhového kódu. Postupne s krokom 50 bodov prechádzame kruhovým kódom, kým nenarazíme opäť na belasú farbu bodu. Pri prechode budeme spočítavať čierne kruhy a na konci zistíme, či ich počet je párny. Počet pracovníkov vypočítame tak, že ku kruhom postupne sprava doľava priradíme čísla 1, 2, 4, 8 ... a spočítame len tie čísla, pri ktorých je čierny kruh. V prípade situácie na obrázku to bude 1+4+8+16=29 pracovníkov.
Výsledná procedúra over vyzerá nasledovne:
viem over1 Úlohu vieme vyriešiť aj pri prechádzaní zľava doprava. Využijeme pritom iný zápis súčtu, kde použijeme zátvorky a vynímanie čísla 2 pred zátvorku. Konkrétne súčet 1+4+8+16=29 alebo 16+8+4+1=29 vieme prepísať na (8+4+2).2+1. Ďalej tento zápis upravíme na (4+2+1).2.2+1 ... a nakoniec dostaneme (((1.2+1).2+1).2+0).2+1=29. Posledne uvedený zápis nám umožní prechádzať kruhmi zprava doľava a postupne vypočítať počet pracovníkov.
viem over2
;cislo ... pocet pracovnikov ;parita ... pocet kruhov urobTu "cislo 0 urobTu "parita 0 do 50 ;prejdenie vsetkymi bielymi a ciernymi kruhmi zlava doprava kym [farbaBodu<>"belasa] [ak farbaBodu="cierna [urobTu "cislo 2*:cislo+1 urobTu "parita :parita+1] ak farbaBodu="biela [urobTu "cislo 2*:cislo] do 50] ;vypis platnosti kodu a poctu pracovnikov ak2 zvysok :parita 2=0 [pis "|platny kod vyrobku| (pis "|pocet pracovnikov: | :cislo)] [pis "|neplatny kod vyrobku|] koniec Táto úloha je zameraná na precvičenie kódovania informácií - kruhový kód, z ktorého vieme vypočítať ďalší údaj (počet pracovníkov). Rovnako vieme overiť jeho platnosť pomocou kontrolného súčtu, podobne ako pri čiarkovom kóde výrobkov. Uvedený postup výpočtu počtu pracovníkov úzko súvisí s prevodom čísel z dvojkovej do desiatkovej pozičnej sústavy. Vaše zaujímavé riešenia a najčastejšie chybyDo riešenia úlohy sa pustilo len 5 tímov. Nedostatky, ktorých sme postrehli vo vašich riešeniach a naše odporúčania:
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |