Autorské riešenie Riešenie tejto úlohy nie je náročné, aj keď v ňom použijeme trocha matematiky. Keď sa zamyslíme nad tým, ako pracuje korytnačí radar, riešenie by sme mohli slovne popísať napríklad takto: opakuj nasledovné kroky:
Postupne vyriešime jednotlivé časti. Vieme, že elektromagnetická vlna je vyslaná v uhle 1°. Ak by sme radar medzi dvoma meraniami otáčali o menej ako 1°, mohlo by sa stať, že niektorého slimáka zameriame 2x. Ak by sme radar otáčali o viac ako 1°, mohlo by sa stať, že nejakého slimáka radar nezachytí. Radar preto budeme otáčať po každom meraní presne o 1°. Kostra procedúry spustiRadar by mohla vyzerať nasledovne: viem spustiRadar Aj keď otáčame radar po 1°, môže sa stať, že nejakého slimáka zameriame 2x, resp. že ho nezameriame vôbec. Stane sa to vtedy, ak po otočení radaru sa aj slimák presunie z pôvodnej do novo zameriavanej oblasti, resp. sa presunie z novo zameriavanej do pôvodnej. Toto však nevieme nijako ovplyvniť. Na meranie časov využijeme procedúru zmeraj, ktorá nám vráti zoznam časov zachytenia odrazov elektromagnetickej vlny. Zoznam môže obsahovať viac časov (v smere vlny bolo viac slimákov) alebo žiaden (v smere vlny nebol žiaden slimák). viem spustiRadar Pre každý čas vypočítame vzdialenosť, v ktorej sa
slimák nachádza. Zo známeho vzorca: viem spustiRadar Nakoniec musíme rozhodnúť, či slimáka na radare zobraziť alebo nie. Záleží to od toho, akú veľkú oblasť chceme na radare zobrazovať (posúvač polomer) a ako ďaleko je od radaru slimák. Ak slimák patrí do sledovanej oblasti (:vzdialenost <= polomer'hodnota), vypočítame jeho pozíciu na radare a pomocou procedúry zobrazBodku ho zobrazíme. Výsledná procedúra teda môže vyzerať napr. takto: viem spustiRadar Vaše zaujímavé riešenia a najčastejšie chyby Najčastejšou chybou bolo, že čas ktorý vám vrátila procedúra meraj ste nepredelili 2. Vyšla vám tak dvojnásobná vzdialenosť než bola skutočná vzdialenosť slimáka od radaru. Často ste použili na ovládanie radaru nástroje, ktoré neboli dovolené. Dôsledkom bolo napr. aj to, že radar sa správal inak, ako by ste očakávali. Posledná vec, ktorá vám robila problémy bolo prepočítanie reálnej pozície slimáka na pozíciu bodky na obrazovke radaru. Kvôli kontrole správnosti radaru sme pridali možnosť zobrazovania slimákov na obrazovke. Túto funkciu zapnete tak, že v procedúre posuvaj nastavíte premennej "vizualizacia hodnotu na "ano. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk | ||||||||||