Autorské riešenie
Úlohu o biohriadke je vhodné rozdeliť si na dve časti - kresliacu a výpočtovú. Aby sme úspešne vyriešili kresliacu časť, potrebujeme znázorniť päť sústredných polkružníc podľa rozmerov uvedených v zadaní. Na vykreslenie polkružnice v jazyku Imagine môžeme použiť príkaz elipsa, ktorý má 4 parametre: priemer horizontálnej časti elipsy, priemer vertikálnej časti elipsy, počiatočný a koncový uhol časti elipsy. V Pythone môžeme použiť príkaz kor.circle s dvoma parametrami: polomer kružnice a uhol, ak chceme vykresliť iba časť kružnice (napr. pre celú kružnicu zadáme 360, pre polkružnicu zadáme 180). Ak začneme polkružnice vykresľovať od najväčšej, môžeme si všimnúť, že polomer polkružnice sa zmenšuje stále o 15 korykrokov. Preto môžeme v Imagine použiť cyklus opakuj a na skracovanie polkružníc použiť pocitadlo, alebo v Pythone cyklus for a jeho riadiacu premennú i. Je potrebné si uvedomiť, že kým v Imagine je pocitadlo číslované od hodnoty 1, Python čísluje riadiacu premennú i od hodnoty 0. Pri výpočtovej časti je potrebné si uvedomiť, že vyhĺbená ryha pre biohriadku má tvar kvádra s parametrom dlzka, ktorý je vhodné definovať ako vstupný parameter procedúry vybuduj. Pri výpočte potrebného pletiva na vyloženie ryhy však zaratávame len dno ryhy a steny ryhy. Nasledujú možné riešenia v jazyku Imagine Logo a Python.
;Imagine logo
viem vybuduj :dlzka znova nechHP 2 opakuj 5 [ nechFV ? elipsa [(190 - (pocitadlo * 30)) (190 - (pocitadlo * 30)) -90 90] ] urobTu "obsahPletiva :dlzka * 160 + 2*15*:dlzka + 2*15*160 vysledok :obsahPletiva koniec
#Python
import turtle kor = turtle.Turtle(); plocha = turtle.Screen(); def vybuduj(dlzka): ''' :param dlzka - dlzka hriadky :type float :return celkový obsah potrebného pletiva :rtype: float ''' for i in range(5): kor.circle(80-15*i,180) kor.left(90) kor.forward(160-30*i) kor.back(15) kor.left(90) kor.right(90) kor.back(5) kor.left(90) obsahPletiva = dlzka * 160 + 2*15*dlzka + 2*15*160 return obsahPletiva kor.left(90) print(vybuduj(60.0)) plocha.mainloop(); Vaše zaujímavé riešenia a najčastejšie chyby Všetkých sedem tímov riešilo úlohu v jazyku Python. Pri kreslení sústredných polkužníc ste využívali príkazy opakuj 180, bod, obrysKruhu alebo kruh. V niektorých riešeniach však nebolo dodržané rovnomerné rozloženie sústredných kružníc, v iných zase neboli správne nastavené rozmery (priemer nahradený polomerom a podobne). Vo výpočtovej časti väčšina tímov pri výpočte potrebného počtu pletiva uviedla len obsah prednej a zadnej steny a teda neuvažovala o tom, že ak chceme vyložiť aj dno biohriadky, potrebujeme pracovať aj s dĺžkou biohriadky, ktorú je vhodné uvažovať ako vstupný parameter procedúry. Jeden tím svoj program doplnil o úvodné menu, v ktorom bolo možné vybrať si z dvoch možností, či v záhradke máme alebo nemáme hrabošov, a teda či sa bude alebo nebude počítať aj množstvo potrebného pletiva. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |