Autorské riešenie
[stiahni]

Riešenie úlohy spočíva v tom, že vytvoríme vlastnú operáciu pomoz s dvoma parametrami :a :b, ktoré predstavujú súradnice bodu [:a :b]. Operácia pomoz vráti krtkovú vzdialenosť medzi bodom [:a :b] a pokladom :poklad, ďalej zobrazí bod [:a :b] a tiež ďalšie body rovnako vzdialené od bodu [:a :b].

Priebeh hľadania pokladu, môže vyzerať podobne ako je to zachytené na obrázku. Je veľmi zaujímavé, že množinou bodov rovnako vzdialených od nejakého bodu, sú body z obvodu štvorca.

tvare

Do tlačidla POMÔŽ zapíšeme operáciu pomoz s dvoma parametrami, ktorej výsledok sa vedie do textového poľa znázorňujúceho vzdialenosť bodu [:a :b]
text4'nechHodnota pomoz text2'hodnota text3'hodnota

Výsledná operíácia pomoz vyzerá nasledovne:

viem pomoz :a :b
  ;nastavenie farby pera a výpočet vzdialeností daného bodu od pokladu
  ph
  urob "f 1 + mod :f+1 14
  nechFp :f
  urobTu "n (abs(:a - prvok 1 :poklad)) + (abs(:b - prvok 2 :poklad))

  ;zobrazenie bodu [:a :b]
  nechXsur 10*:a
  nechYsur 10*:b
  bod 10

  ;zobrazenie všetkých bodov vzdialených od bodu [:a :b] vzdialenos5 :n
  urobTu "x 0 - :n
  opakuj 2 * :n + 1
    [nechXsur 10 * (:a + :x)
     nechYsur 10 * (:b + abs(:x) - :n)
     bod 5
     nechXsur 10 * (:a + :x)
     nechYsur 10 * (:b + :n - abs(:x))
     bod 5
     urobTu "x :x + 1]
  
  vysledok :n
koniec

Pri tejto úlohe využívame globálnu premennú :f, ktorá sa pri každom volaní operácie pomoz bude cyklicky meniť, aby sme mali zabezpečené stále inú farbu bodiek. Vzdialenosť od pokladu sa vypočíta ako súčet absolútných hodnôt rozdielov x-ových a y-ových zložiek bodu [:a :b] a pokladu.

Na vykreslenie bodov s rovnakou krtkovou vzdialenosťou od bodu [0 0] použijeme na vykreslenie spodnej časti štvorca výraz [:x abs(:x)-:n] a pre hornú časť výraz
[:x :n-abs(:x)]. Pre vykreslenie bodov s rovnakou vzdialenosťou od bodu [:a :b] s krtkovým krokom 10 bodov napokon dostaneme výrazy [10*(:a+:x) 10*(:b+abs(:x)-:n)] a [10*(:a+:x) 10*(:b+:n-abs(:x))]. Pre žiakov, ktorí nepoznajú operáciu absolútnu hodnotu odporúčame si vyjadriť štyri strany štvorca ako štyri lineárne funkcie bez použitia absolútnej hodnoty,

Ako budeme postupovať, keď chceme zístiť čo najskôr súradnice pokladu? Najprv sa spýtame na vzdialenosť (zeleného) bodu [0 0] od pokladu. Ak poklad nie je na súradniciach [0 0], tak množina rovnako vzdialených bodov od bodu [0 0] bude tvoriť štvorec s vrcholmi [-v 0], [v 0], [0 v], [0 -v]. Ak zadáme (červený) bod napr [v-1 1], tak množina bodov s rovnakou vzdialenosťou od neho, bude mať s množinou rovnakých bodov od bodu [0 0] spoločnú úsečku alebo bod. Pomocou zadania (hnedého) bodu ležiaceho na kraji tejto spoločnej úsečky dostaneme množinu bodov, ktorá bude mať s predchádzajúcimi spoločnými bodmi spoločný už len jediný (sivý) bod, ktorý je výsledkom nášho hľadania. Pri tomto postupe sme použili nanajvýš tri pomocné body.

V tejto úlohe sme vás chceli priviesť k tomu, že merať vzdialenosti môžme aj v rámci pravoúhlej sieti a tiež k tomu, že množinou bodov s rovnakou vzdialenosťou nie je kružnica, ale štvorec. Pri vyjadrovaní súradníc bodov s rovnakou vzdialenosťou ste si mohli celkom dobre precvičiť počítanie s výrazmi s absolútnou hodnotou.

Vaše zaujímavé riešenia a najčastejšie chyby

Do riešenia tejto úlohy sa pustili len tri tímy, z toho len jednému tímu sa podarilo vypočítať vzdialenosť zadaného bodu [:a :b] od pokladu. Žiadnému tímu sa nepodarilo nakresliť množinu bodov s rovnakou vzdialenosťou. Celkovo sa táto úloha ukázala ako náročná. Najčastejšie nedostatky, ktorých ste sa dopustili vo svojich riešeniach:

  • pri výpočte vzdialenosti ste v procedúre pomoz nepoužili parametre a skôr ste používali globálne premenné a hodnoty z textových polí, rovnako ste nepoužili operáciu absolútna hodnota,
  • nevedeli ste vyjadriť súradnice bodov rovnako vzdialených od bodu [:a :b] pomocou lineárnej funkcie,
  • neuviedli ste stratégiu, ktoru by ste dospeli, čo najskôr k uhádnutiu súradníc pokladu.