Autorské riešenie Zo zadania vieme, že strapec má tvar trojuholníka v ktorom sa bobuľky vzájomne dotýkajú. Počet radov bobuliek je rovnaký ako počet slnečných týždňov. V poslednom rade je teda len jedna bubuľka. V najvyššom rade je počet bobuliek rovnaký ako počet slnečných týždňov. Veľkosť bobuliek je rovnaký ako množstvo zrážok v cm. Zo stredu horného radu vyrastá stopka. Ak napršalo 20 cm a slnko svietilo 5 týždňov, strapec vyzerá takto:
Riešenie rozdelíme na kreslenie stopky a kreslenie bobuliek. Stopka vyrastá v strede horného radu. Korytnačku presunieme do stredu horného radu a stopku vykreslíme. Šírka horného radu je súčinom počtu slnečných týždňov (počet bobuliek) a veľkosti bobuľky (množstvo zrážok). Korytnačka sa na začiatku nachádza v strede hornej ľavej bobuľky. Od stredu horného radu je teda vzdialená: (:tyzdnovSlnka-1) * :mnozstvoZrazok / 2. Riešenie si uľahčíme tak, že hrúbku pera korytnačky nastavíme podľa toho, koľko cm vody napršalo.
viem kresliStrapec :mnozstvoZrazok :tyzdnovSlnka
nechHP :mnozstvoZrazok nechFP"hneda ph vp 90 do (:tyzdnovSlnka-1) * :mnozstvoZrazok / 2 vl 90 pd do :mnozstvoZrazok * 3 vz :mnozstvoZrazok * 3 ph vp 90 vz (:tyzdnovSlnka-1) * :mnozstvoZrazok / 2 koniec Samotné bobuľky budeme kresliť v dvoch cykloch. Vnútorný cyklus bude kresliť bobuľky v jednom rade. Vo vonkajšom cykle sa bude opakovať kreslenie radu bobuliek. Všimnime si ešte, že ak sa kreslí prvý rad, počítadlo vonkajšieho cyklu má hodnotu 1. V hornom rade by malo byť toľko bobuliek, koľko bolo slnečných týždňov. Ak sa kreslí posledný rad, počítadlo má hodnotu rovnú počtu slnečných týždňov. V spodnom rade sa vykreslí len jedna bobuľka. Podľa počítadla, ktoré určuje ktorý rad sa vykresľuje, vieme zistiť koľko bobuliek má v danom rade byť: :tyzdnovSlnka - pocitadlo + 1. Presne toľko krát sa zopakuje vnútorný cyklus. Výsledná procedúra môže vyzerať napríklad takto:
viem kresliStrapec :mnozstvoZrazok :tyzdnovSlnka
nechHP :mnozstvoZrazok nechFP "hneda ph vp 90 do (:tyzdnovSlnka-1) * :mnozstvoZrazok / 2 vl 90 pd do :mnozstvoZrazok * 3 vz :mnozstvoZrazok * 3 ph vp 90 vz (:tyzdnovSlnka-1) * :mnozstvoZrazok / 2 nechFP "zelena4 opakuj :tyzdnovSlnka [ opakuj :tyzdnovSlnka - pocitadlo + 1 [ bodka do :mnozstvoZrazok ] vz (:tyzdnovSlnka - pocitadlo + 1) * :mnozstvoZrazok vp 60 do :mnozstvoZrazok vl 60 ] koniec Najčastejšie chyby, komentár k vašim riešeniam Častou chybou, ktorá sa vo vašich riešeniach opakovala bolo, že bobuľky neboli v strapci správne umiestnené. Buď sa nedotýkali alebo sa vzájomne prekrývali. Aj kreslenie stopky vám robilo problém. Buď ste na ňu zabudli alebo nebola správne umiestnená. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |