Autorské riešenie
[stiahni [imp]]

  • Počet riešiteľov:  21 / 21 = 100 %

  • Úspešnosť riešenia:  3,67 / 5 = 73,33 %

Koliesko zo zadania úlohy môžeme vykresliť, napr. pomocou nasledovných troch krokov:

1. vykreslenie farebných zubov 2. vykreslenie veľkého farebného kruhu 3. vykreslenie malého bieleho kruhu
vykreslenie kolieska - 1. krok vykreslenie kolieska - 2. krok vykreslenie kolieska - 3. krok 

koliesko s rozmermi

  1. Farebné zuby vykreslíme opakovaným vykresľovaním úsečiek zo stredu vykresľovania. Uhol medzi susednými úsečkami je rovný hodnote výrazu 360 / početZubov. Dĺžka úsečiek je rovná 4-násobku polomeru vnútorného kruhu.

  2. Veľký farebný kruh vykreslíme zo stredu vykresľovania s priemerom 6-násobku polomeru vnútorného kruhu.

  3. Malý biely kruh vykreslíme zo stredu vykresľovania s priemerom 2-násobku polomeru vnútorného kruhu.

Výsledná procedúra koliesko s 3 parametrami (počtom zubov, polomerom vnútorného kruhu a farbou kolieska), môže v jazyku Imagine Logo vyzerať napríklad takto:

viem koliesko :polomer :počet :farba

  ; vykreslenie zadaného počtu zubov so zadanou farbou
  nechFarbaPera :farba
  opakuj :počet [
    dopredu 4 * :polomer
    vzad 4 * :polomer
    vpravo 360 / :počet 
  ]

  ; vykreslenie veľkého kruhu zadanej farby
  kruh 6 * :polomer 

  ; vykreslenie malého kruhu bielej farby
  nechfarbaPera "biela
  kruh 2 * :polomer

koniec

Táto súťažná úloha je zameraná na použitie stratégie rozdelenia problému do podproblémov, na precvičenie použitia príkazu opakovania a príkazov korytnačej grafiky pri vykresľovaní rovinných útvarov so zadanými rozmermi.

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

Do riešenia tejto úlohy sa zapojilo 21 tímov kategórie PROFÍK. Plný počet bodov získalo 8 tímov, k čomu im gratulujeme. Obzvlášť chválime tím AA za ich vzorové riešenie obsahujúce komentáre a popisné názvy premenných. Rovnako chválime tím Azdune za ich originálne riešenie využívajúce vykreslenie medikružia pomocou príkazov obrysKruhu a výplň. Je veľmi zaujímave, že tretina riešiteľov vykresľovala koliesko v poradí Zuby-VeľkýKruh-MalýKruh, ďalšia tretina v poradí VeľkýKruh-Zuby-MalýKruh a posledná tretina v poradí VeľkýKruh-MalýKruh-Zuby.

V riešeniach sme zaregistrovali nasledovné chyby:

  • Vykreslené koliesko nemá správne rozmery, lebo riešitelia nepochopili, že v príkaze bod alebo kruh sa vykresľuje kruh so zadaným priemerom, nie polomerom.
  • Namiesto procedúry s tromi požadovanými parametrami niektoré riešenia obsahovali len dva či jeden parameter, napr. namiesto použitie parametra farby sa vykresľovali časti kolieska tromi náhodnými farbami.
  • Príkazy v tele cyklu mohli byť uvedené v samostatných riadkoch a odsadené, aby bol program prehľadnejší.
  • Namiesto zmysluplných názvov premenných 11 z 21 súťažiacich použili jednopísmenkové názvy premenných.
  • V niektorých riešeniach súťažiaci odovzdali projekt so zbytočnými či nekompletnými procedúrami.