Autorské riešenie
[stiahni]

Ak si zakreslíme jednotlivé smery a pripíšeme k nim zadané čísla (1 - sever, 2 - severovýchod a tak ďalej), zistíme, že odstrániť zo záznamu trasy potrebujeme tie po sebe idúce dvojice čísel, ktorých rozdiel je v absolútnej hodnote 4.

Záznam trasy je uložený v premennej jozef. Záznam obsahuje aspoň jeden prvok. Do premennej upravena presunieme prvý prvok zoznamu jozef. V cykle budeme prechádzať ostatnými prvkami premennej jozef a zisťovať, či sa absolútna hodnota rozdielu posledného prvku zoznamu upravena a prvého prvku zoznamu jozef rovná štyrom. Ak áno, obidva prvky odstránime. Ak nie, prvý prvok zoznamu jozef presunieme do zoznamu upravena. Pre prípad, že hneď prvé čísla budú nevyhovujúce, a teda premenná upravena ostane prázdna, vložíme do procedúry podmienku, v ktorej otestujeme, či nie je premenná upravena prázdna (inak by sme sa snažili zmazať jej posledný prvok, ktorý neexistuje, a procedúra by vyhlásila chybu).

viem uprav_trasu
 urob "upravena []
 urob "upravena vlozPo prvy :jozef :upravena
 urob "jozef bezPrveho :jozef
 ak nieje prazdny? :jozef
 [prePrvky "s :jozef
  [ak2 nieje prazdny? :upravena
   [ak2 abs(:s-posledny :upravena)=4 [urob "upravena bezPosledneho :upravena]
                                     [urob "upravena vlozPo :s :upravena]
   ]
   [urob "upravena vlozPo :s :upravena]
  ]
 ]
 zo :upravena
koniec

Všimnite si najmä príkazy ak2 a abs, pomocou ktorých je možné niektoré komplikovanejšie zápisy, ktoré sa objavili vo vašich procedúrach, zapísať prehľadnejšie a jednoduchšie.

Najčastejšie chyby, komentár k vašim riešeniam

Najčastejším problémom bolo nesprávne porozumenie zadania úlohy (niektorí z vás to pochopili tak, že za sebou nemôžu ísť rovnaké smery trasy alebo vyrobili novú, kratšiu trasu vedúcu zo štartu na koniec).

Milé bolo odporúčanie, ktoré sa objavilo v jednom z riešení:

"Je naozaj nutné tie trasy opravovať? Mne sa to nechce a tím turistom neuškodí trocha pohybu. A aj samotná túra je únavná, tak nech si nevymýšľajú! ( tí turisti )"