Autorské riešenie
Riešenie úlohy si môžeme rozdeliť na dve časti - vykreslenie stonky a postupné vykresľovanie rôznej dĺžky vetvičiek v rôznych častiach stonky. Vetvičky sú ukončené kvetom rôzneho priemeru - postupne sa zväčšujúceho. Vhodnými parametrami úlohy môže byť vek rastliny a dĺžka stonky. Od dĺžky stonky sa následne môže odvíjať dĺžka vetvičky. Dĺžka vetvičky sa postupne zväčšuje, tiež sa zväčšuje priemer kvetu na jej konci. Oproti obrázku zadaniu sa líši výsledok aj tým, že vetvičky rastú na obidvoch stranách stonky v rovnakej výške. V zadaní bolo uvedené, že obrázok je len ilustračný.
Nasledujú možné riešenia v jazyku Imagine Logo a Python. ;imagine
viem kresli :vek :dlzkaStonky znova nechFP "zelena nechHP 3 do :dlzkaStonky urobTu "dielikStonky :dlzkaStonky / (:vek+1) urobTu "dlzkaVetvicky :dlzkaStonky / 3 opakuj :vek [ vz :dielikStonky urobTu "novaDlzkaVetvicky (:dlzkaVetvicky / poc) vetvicka :novaDlzkaVetvicky ] skry koniec viem vetvicka :novaDlzkaVetvicky vp 45 do :novaDlzkaVetvicky urobTu "priemerKvetu :novaDlzkaVetvicky / 3 nechFP "cervena bod :priemerKvetu nechFP "zelena ph vz :novaDlzkaVetvicky vl 90 pd do :novaDlzkaVetvicky nechFP "cervena bod :priemerKvetu nechFP "zelena ph vz :novaDlzkaVetvicky vp 45 pd koniec #Python import turtle kor = turtle.Turtle(); plocha = turtle.Screen(); def kresli(vek, dlzkaStonky): turtle.color("green") turtle.pensize(3) turtle.lt(90) turtle.fd(dlzkaStonky) dielikStonky = dlzkaStonky / (vek + 1) dlzkaVetvicky = dlzkaStonky / 3 for i in range(vek): turtle.fd(-dielikStonky) novaDlzkaVetvicky = dlzkaVetvicky / (i + 1) vetvicka(novaDlzkaVetvicky) def vetvicka(novaDlzkaVetvicky): turtle.rt(45) turtle.fd(novaDlzkaVetvicky) priemerKvetu = novaDlzkaVetvicky / 3 turtle.color("red") turtle.dot(priemerKvetu) turtle.color("green") turtle.pu() turtle.fd(-novaDlzkaVetvicky) turtle.lt(90) turtle.pd() turtle.fd(novaDlzkaVetvicky) turtle.color("red") turtle.dot(priemerKvetu) turtle.color("green") turtle.pu() turtle.fd(-novaDlzkaVetvicky) turtle.rt(45) turtle.pd() kresli(4, 100) plocha.mainloop() Vaše zaujímavé riešenia a najčastejšie chyby Úlohu riešilo 28 tímov. Viacero z nich úlohu vyriešilo vzorovo. Chválime aj riešenia, v ktorých súťažiaci použili tlačidlá a ďalšie dobrovoľné objekty na zdokonalenie úlohy. Niektorí ako parameter zvolili aj priemer kvetu. V riešeniach, ktoré neboli ohodnotené plným počtom bodov, najčastejšie chýbala práca s parametrami vek a dĺžka stonky, prípadne nebol použitý cyklus. V týchto riešeniach bola vykreslená rastlina len s jednou dvojicou vetvičiek. V niektorých riešeniach chýbal kvet, prípadne rôzne veľkosti dĺžky vetvičiek, či ich postupné skracovanie alebo predlžovanie. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |