Rešenie 2. príkladu 1. ročníka celoštátneho kola súťaže COLOGOBEŽKA

Úloha je veľmi jednoduchá. Najprv nastavíme korytnačke nejaký font, aby sme potom mohli ladiť konkrétne veľkosti posunov.

Napr.
? zmen.pismo [Arial] [14 700 0 0 0]

Pomocou základného príkazu citaj.slovo načítame číslo dňa v týždni, ktorým tento mesiac začína. Podobne načítame počet dní mesiaca. Obe čísla uložíme do príslušných premenných. Ďalej navrhneme dva príkazy: vypis.1.tyzden, ktorý vypíše dni v prvom týždni, ktorý je špeciálny v tom, že nezačína od pondelka. Príkaz vypis.obycajny.tyzden bude vypisovať vždy 7 dní. V premennej "c.dna si budeme evidovať číslo aktuálneho dňa, t.j. toho, ktorý práve vypisujeme.

Keďže je zadanie veľmi jednoduché, budeme riešiť úlohy a), b) aj c) naraz. Načítanie mena mesiaca urobíme teda hneď v úvodnom príkaze a hneď ho aj vypíšeme a nastavíme korytnačku na pozíciu, kde bude môcť vypisovať dni. Na zarovnanie dní menších ako 10 použijeme príkaz zarovnaj, na zobrazovanie červených nedieľ použijeme príkaz na zmenu farby pera pri výpise siedmeho dňa v týždni. Do riešenia sme na vysvetlenie doplnili komentáre.
 
viem start 
 zmaz 
 urob "1.den citaj.slovo 
 urob "p.dni citaj.slovo 
 urob "meno.mes citaj.slovo 
 urob "c.dna 1 
 do 50 vp 90 do 30 vl 90 text :meno.mes 
 domov 
 vypis.1.tyzden 
 opakuj 5 [vypis.obyc.tyzden] 
 ; budeme sa snaižiť vypísať 5 týždňov, ak mesiac už toľko dní nemá  
   zistí sa to v príkaze vypis.obyc.tyzden 
koniec
 
 
viem vypis.1.tyzden 
 opakuj :1.den - 1 [vz 50] ; posúvanie korytnačky bez výpisu čísel 
 opakuj 7 - :1.den [zarovnaj vz 50 urob "c.dna :c.dna+1] 
 zmen.fp 12 
 zarovnaj vz 50 urob "c.dna :c.dna+1 
 zmen.fp 0 
 do 7 * 50 vp 90 do 50 vl 90 ; posunutie na výpis druhého týždňa 
koniec 
 
viem vypis.obyc.tyzden 
 opakuj 7 ~ 
  [ak :c.dna <= :p.dni ~ 
    [ak poc = 7 [zmen.fp 12][zmen.fp 0] ~ 
     ak :c.dna < 10 [zarovnaj][text :c.dna] urob "c.dna :c.dna+1][] vz 50] 
 do 7 * 50 vp 90 do 50 vl 90 ; posun na výpis nového stĺpca mesiaca 
koniec 
 
viem zarovnaj 
 vp 90 do 10 vl 90 text :c.dna vl 90 do 10 vp 90  
  ; všetky konkrétne veľkosti sú samozrejme iba pre zvolenú veľkosť fontu 
koniec
Týmto je riešenie hotové.