Autorské riešenie Skôr ako začneme programovať riešenie tejto úlohy, zamyslime sa, čo máme k dispozícii a čo je našou úlohou. K dispozícii máme záznam o každom prejdenom úseku v tvare [dlzkaUseku prevysenie casUseku]. Prevýšenie môže byť kladné (ak korytnačka v úseku stúpala), záporné (ak išla dolu kopcom) alebo rovné 0 (korytnačka sa viezla po rovine). Keďže hľadáme najstrmší úsek, ktorý korytnačka vyšliapala, zaujímajú nás len tie úseky, kde prevýšenie je kladné. Uvedomme si, že pri niektorých trasách takýto úsek ani nemusí existovať. Časový údaj zaznamenaný počítačom pre nás nemá význam. Nemusíme si ho teda všímať. Ostala ešte otázka, ako merať strmosť úseku. Možností je viac. My si však vystačíme s tým, že vypočítame pomer prevýšenia k celkovej prejdenej trase. Čím je tento pomer väčší, tým strmší úsek to je (samozrejme, berieme do úvahy len kladné hodnoty). Postup je jednoduchý. Prejdeme všetky záznamy úsekov trasy. Každý záznam si uložíme (pre jednoduchšie spracovanie) do premennej zaznam (prePrvky "zaznam :zaznamTrasy [...]). Pri každom zázname úseku zistíme jeho dĺžku (prvok 1 :zaznam) a pripočítame ju celkovej prejdenej trasy ("celkovaTrasa). Zároveň vypočítame strmosť úseku (prvok 2 :zaznam / prvok 1 :zaznam). Ak je strmosť úseku doposiaľ najväčšia, zapamätáme si ju a zároveň si pamätáme aj poradie tohto úseku ("najstrmsi). Aby sme mali strmosti úsekov s čím porovnávať, vypočítame si na začiatku strmosť prvého úseku. Tento úsek je zároveň najstrmším, ktorý sme doposiaľ testovali (keďže bol zatiaľ jediný). Pri vypisovaní výsledku nesmieme zabudnúť, že nás zaujímajú len tie úseky, v ktorých bola strmosť kladné číslo. Ak sme taký úsek nenašli, na prejdenej trati nebolo stúpanie. Výsledná procedúra môže vyzerať takto:
viem vyhodnotTrasu
;zapamatame si strmost prveho useku ;celkovu trasu nastavime na zaciatku na 0 ;prejdeme zaznamom celej trasy a spracujeme kazdy zaznam useku ;vypiseme celkovu prejdenu trasu ;zistime, ci na trase bolo stupanie, ak ano vypiseme poradie
najstrmsieho useku Vaše zaujímavé riešenia a najčastejšie chyby
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |