Autorské riešenie
[stiahni]

Najprv si všimnime, že uhol otočenia hodinovej ručičky je nanajvýš 360 stupňov. To znamená, že keď sa ručička otočila o 360 stupňov, ubehlo 12 hodín. Otočenie o 30 stupňov znamená, že uplynula 1 hodina.

1 hodina (3600 sekúnd) znamená otočenie hodinovej ručičky o 30 stupňov. Ak sa ručička otočí o 1 stupeň, prejde 120 sekúnd. Vynásobením uhla hodinovej ručičky číslom 120 získame počet sekúnd, ktoré uplynuli.

urobTu "cislo :uholHodinovejRucicky * 120

Potrebujeme určiť hodiny, minúty a sekundy. Celé číslo, ktoré vznikne po delení celkového počtu sekúnd číslom 3600 (1 hodina má 3600 sekúnd) predstavuje počet hodín. Zvyšok po tomto delení si uložíme.

urobTu "hodiny cPodiel :cislo 3600
urobTu "zvysok zvysok :cislo 3600

Minúty získame celočíselným delením zvyšného počtu sekúnd číslom 60 (1 minúta má 60 sekúnd).

urobTu "minuty cPodiel :zvysok 60

Sekundy získame jednoducho, je to zvyšok po druhom celočíselnom delení.

urobTu "sekundy zvysok :zvysok 60

Výsledná procedúra by mohla vyzerať napríklad takto:

viem zistiCas :uholHodinovejRucicky
  urobTu "cislo :uholHodinovejRucicky * 120
  urobTu "hodiny cPodiel :cislo 3600
  urobTu "zvysok zvysok :cislo 3600
  urobTu "minuty cPodiel :zvysok 60
  urobTu "sekundy zvysok :zvysok 60
  (pis :hodiny [:] :minuty [:] :sekundy)
koniec

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

Mnohí z Vás vyrátali úlohu správne, avšak pri riešení použili premennú "uholHodinovejRucicky i premennú "uholMinutovejRucicky. Pri použití iba premennej "uholHodinovejRucicky by riešenie bolo efektívnejšie. Niektorí neurčili čas s presnosťou na sekundy, preto získali menší počet bodov. Iní sa snažili určiť počet sekúnd, avšak ich výpočet nebol správny.