Autorské riešenie
[stiahni]

Pri riešení tejto úlohy budeme potrebovať trochu matematiky. V zázname GPS prístroja máme uložené súradnice, po ktorých sa korytnačka pohybovala. Dĺžku celej trasy vypočítame tak, že spočítame vzdialenosti jednotlivých susedných dvojíc súradníc.

gps 

Ak si do obrázka ku každým dvom bodom trasy doplníme dve úsečky tak, že vznikne pravouhlý trojuholník, môžeme na výpočet dĺžok jednotlivých úsekov použiť Pytagorovu vetu.

gps

gps 

Keďže budeme dĺžky počítať viackrát, bude výhodné si na ich výpočet spraviť samostatnú procedúru. Procedúre pošleme ako parameter súradnice dvoch bodov. Procedúra vypočíta ich vzdialenosť a túto hodnotu nám vráti vo výsledku.

viem vzdialenost :od :do
  urobTu "x1 prvok 1 :od
  urobTu "y1 prvok 2 :od
  urobTu "x2 prvok 1 :do
  urobTu "y2 prvok 2 :do
  vysledok odmocnina ((:x1-:x2)*(:x1-:x2)+(:y1-:y2)*(:y1-:y2))
koniec

Samotný výpočet dĺžky celej trasy spravíme tak, že postupne sčítame dĺžky jednotlivých úsekov. Prejdeme celým zoznamom súradníc a pre každú dvojicu bodov vypočítame ich vzdialenosť. Pri prechode zoznamom súradníc môžeme prejdenú trasu aj postupne vykresľovať. Výsledná procedúra trasa môže vyzerať napr. takto: 

viem trasa
  urobTu "sucetDlzok 0
  ph
  nechPoz prvok 1 :zaznam
  pd

  opakuj -1 + pocet :zaznam [
    urobTu "sucetDlzok :sucetDlzok +
                        vzdialenost prvok pocitadlo :zaznam prvok pocitadlo+1 :zaznam
   nechPoz prvok pocitadlo+1 :zaznam
  ]
  pis slovo "|Dlzka trasy: | :sucetDlzok
koniec

Všimnite si ešte dve dôležité veci.

Premennú "sucetDlzok do ktorej pripočítavame dĺžky jednotlivých úsekov na začiatku vynulujeme.

Korytnačku umiestnime na začiatok trasy tak, aby pritom nekreslila žiadnu čiaru.

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

Pri vykresľovaní trasy niektorí z vás vykreslili aj žiaru k prvému bodu. Trasa však začína až v prvom bode. Radi by sme pochválili tím Expert JM&JM za to, že svoj kód zrozumiteľne okomentovali.