Autorské riešenie Korytnačky mali nastavenú vlastnosť "Automatické ťahanie". Úlohou bolo vložiť a naprogramovať tlačidlo, ktoré otestuje, či každá korytnačka je na svojom mieste. Počet správne umiestnených korytnačiek sa vypíše do textového políčka. Jedno z možných riešení tejto úlohy je nasledovné. Zistíme súradnice miest na mape a porovnáme, či príslušná korytnačka sa nachádza v blízkosti týchto súradníc. Ak áno, zarátame bod. Trošku sa pohráme so zoznamami, a ukážeme si, že ak ich vieme správne používať, ušetríme si množstvo práce. Procedúra koľko otestuje, koľko korytnačiek je na svojom mieste. viem kolko
urob "p [[253 79] [250 50] [258 25] [233 -8] [174 -39] [203 -62] [216 -75] [176 -89] [161 -221] [365 -220]] urob "k [k1 k2 k3 k4 k5 k6 k7 k8 k9 k10] urob "i 0 preprvky "w :k [pre :w [ak (vzdialenost xSur ySur prvok 1 prvok pocitadlo :p prvok 2 prvok pocitadlo :p < 10) [zvys "i]]] text1'NechHodnota :i koniec Do premennej "p si uložíme súradnice miest na mape. Premenná "k je zoznamom našich desiatich korytnačiek. Príkaz "preprvky" prebehne zoznamom korytnačiek a každú korytnačku otestuje. Môžeme ho chápať aj ako cyklus, ktorý sa opakuje pre každú korytnačku z našeho zoznamu. Všimnime si, že aj tu využívame premennú "pocitadlo, ktorú poznáme z príkazov cyklu. Pomohli sme si ešte novou procedúrou "vzdialenost", ktorá pomocou Pytagorovej vety vypočíta vzdialenosť dvoch bodov v rovine. Každý bod (súradnice mesta na mape a pozícia korytnačky) je zadaný svojou x-ovou a y-ovou súradnicou.
viem vzdialenost :x1 :y1 :x2 :y2
vy sqrt((:x1-:x2)*(:x1-:x2)+(:y1-:y2)*(:y1-:y2)) koniec Ako to teda celé pracuje? Ukáže si to teste korytnačky Estónska - korytnačka "k1. Príkaz preprvky "w :k priradí na začiatku do premennej "w hodnotu "k1. Teda meno prvej korytnačky. Súradnice hlavného mesta Estónska, Tallin sú: [253 79], teda prvý prvok zoznamu "p. Príkaz pre :w hovorí, že ideme testovať správnosť umiestnenia korytnačku "k1. Vyhodnotenie podmienky AK vyzerá takto:
vzdialenost xSur ySur 253 79 vráti vzdialenosť bodov [xSur ySur] - súradnice korytnačky "k1 a [253 79] - súradnice mesta Tallin. Ak je táto vzdialenosť menšia ako 10, hodnota premennej "i sa zvýši o 1. Túto hodnotu vypíšeme do políčka "text1. Podobne to vyzerá pre zvyšné korytnačky. Najčastejšie chyby Často ste testovali presnú súradnicu korytnačky. Aby sa bod zarátal, musela byť umiestnená len v jednom konkrétnom bode (najčastejšie v strede mesta). Niektorý z vás testovali len jednu súradnicu (nie vždy sa to však dá). V tomto prípade bolo potrebné otestovať, či korytnačka leží v žltom krúžku mesta. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |