Autorské riešenie
[stiahni imp]
[stiahni py]

  • Počet riešiteľov: 28 / 33 = 85%

  • Úspešnosť riešenia:  4,5 / 5 = 90%

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ý.

sukvetie

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.