Autorské riešenie
[ stiahni]

Pri riešení tejto úlohy je vhodné použiť pomocnú procedúru na vykreslenie jedného zubu v tvare štvorca s danou dĺžkou strany.

viem zub :dĺžka
   opakuj 3 [
     do :dĺžka
     vp 90 ]
koniec

Vieme, že zuby nemajú byť hneď pri sebe, ale musí byť medzi nimi vykreslená úsečka dĺžky zuba. Obrázok ukazuje, ako vyzerá "ozubená úsečka".

zuby na úsečke

Teraz by sme potrebovali ozubené koleso, nie "ozubenú úsečku". Stačí si uvedomiť, že uhol otočenia jednotlivých zubov a úsečiek medzi nimi závisí od počtu zubov. Uhol otočenia musíme vypočítať. Otočiť sa potrebujeme nielen po vykreslení každého zubu, ale aj po vykreslení každej úsečky medzi zubmi. Teda potrebujeme sa otočiť 2*početZubov krát. Príslušný uhol potom vypočítame takto: 360°/(2*početZubov), teda 180/početZubov.

Ozubené koleso

viem ozubeneKoleso :početZubov :dĺžka
   opakuj :početZubov [
      zub :dlzka
      vp 180
      vp (180/:pocetZubov)
      do :dlzka
      vp (180/:pocetZubov)
      vl 90]
koniec

Vaše zaujímavé riešenia a najčastejšie chyby

Túto úlohu riešilo až 40 tímov, čo je zatiaľ rekordný počet. Riešenia boli zaujímavé, kreatívne. Chválim písanie komentárov do kódu riešenia a využitie pomocných procedúr. Najväčšou chybou bolo to, že procedúra ozubeneKoleso mala mať dva vstupy, načo si mnohí nedali pozor a stanovili si presný počet zubov a ich veľkosť. Problém bol napríklad aj s výpočtom uhla či uvedomením si, že korytnačka sa mala otočiť po vykreslení zuba aj po vykreslení medzi zubia.