Autorské riešenie Riešenie tejto úlohy pozostáva z vyriešenia niekoľkých menších úloh. Najprv vyriešime výpočtovú časť úlohy, neskôr kresliacu. Zo zadania vieme, že v prvom týždni vyrastie na stonke pichľavky 1 tŕň a takisto aj v druhom týždni vyrastie iba 1 tŕň. Počet tŕňov, ktoré vyrastú v každom ďalšom týždni sa rovná súčtu tŕňov, ktoré zostali z predchádzajúcich dvoch týždňov. To znamená, že v treťom týždni vyrastú 2 tŕne, v nasledujúcom týždni 3 tŕne a v ďalších týždňoch postupne vyrastá 5, 8, 13, 21 tŕňov. Tieto čísla tvoria Fibonacciho postupnosť. Inými slovami, keď hľadáme počet tŕňov, ktoré vyrastú na stonke pichľavky v n-tom týždni, počítame n-té Fibonacciho číslo. Uvedieme procedúru kresliPichľavku, ktorú ešte neskôr upravíme:
viem kresliPichlavku :tyzden Vieme, že tŕne rastú striedavo, jeden týždeň na jednej strane stonky, druhý týždeň na druhej. Preto si vytvoríme procedúry kresliTrne a kresliPlody, ktoré budú mať 2 parametre. V jednom si budeme pamätať počet tŕňov, resp. plodov, ktoré potrebujeme nakresliť. Druhý parameter bude slúžiť na to, aby sme splnili podmienku, že tŕne (aj plody, ktoré nahrádzajú päticu tŕňov za sebou) vyrastajú striedavo na jednej a druhej strane. Procedúry kresliTrne a kresliPlody môžu vyzerať napr. takto:
viem kresliTrne :pocet :uhol
viem kresliPlody :pocet :uhol Navyše, ak sa na jednej strane stonky objaví 5 tŕňov za sebou, odpadnú a na ich mieste vyrastie plod. Tŕne, ktoré sme nahradili plodom nás prestávajú zaujímať. Na základe toho upravíme časť procedúry kresliPichlavku a doplníme tiež časť procedúry, ktorá pichľavú rastlinku nakrelí:
viem kresliPichlavku :tyzden Vaše zaujímavé riešenia a najčastejšie chyby: Viacerým tímom sa podarilo vyriešiť iba špeciálny prípad - nakrelili n-týždňovú pichľavku pre konkrétne n. Niektoré tímy vyriešili základ celej úlohy - vytvorili procedúru na nájdenie n-tého Fibonacciho čísla - týmto tímom sme dali polovicu bodov. Zaujímavosťou je, že žiaden tím nevyriešil túto úlohu tak, ako je uvedené v autorskom riešení (hoci sme vedeli, že úlohu je možné interpretovať viacerými spôsobmi). Tri tímy (expert JM&JM, expert Baša a Saša a Michal Bali) však dôkladne prepracovali svoje riešenie, preto sme im udelili plný počet bodov.
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |