Autorské riešenie
V tejto úlohe riešime prevody časových jednotiek. Čas vyjadrený v hodinách, minútach a sekundách chceme previesť na čas vyjadrený v dhodinách, dminútach a dsekundách. Aby sme to vedeli zrealizovať, potrebujeme vedieť, aký je medzi týmito jednotkami vzťah. Pomôžu nám informácie zo zadania:
Celkovo teda pracujeme so šiestimi rôznymi časovými jednotkami. Je tu však aj časová jednotka, ktorá je rovnaká u nás aj v krajine Deka. Je ňou deň. Jedno z riešení, ktoré nám možno napadne ako prvé, spočíva v prevode jednotiek po častiach. Môžeme previesť sekundy na dsekundy, minúty na dminúty a hodiny na dhodiny. Problém nám ale spôsobí skutočnosť, koľko menších jednotiek tvorí jednu väčšiu. Kým v krajine Deka to je 10, u nás je to rôzne. Pri minútach a sekundách je to 60, a pri hodinách je to 24. Museli by sme teda ešte spracovať nie celé časti dhodín, dminút a dsekúnd či spolu v súčte nevytvoria nejaké celé jednotky. To by nám trochu skomplikovalo riešenie. Skúsme to inak:
Výsledný program môže vyzerať nasledovne: #Python def preved_na_dcas(pocet_hodin, pocet_minut, pocet_sekund): cas_v_sekundach = pocet_hodin * (60 * 60) + pocet_minut * 60 + pocet_sekund cast_dna = cas_v_sekundach / (60 * 60 * 24) cas_v_dsekundach = cast_dna * (10 * 10 * 10) pocet_dhodin = cas_v_dsekundach // (10 * 10) cas_v_dsekundach = cas_v_dsekundach % (10 * 10) pocet_dminut = cas_v_dsekundach // 10 pocet_dsekund = cas_v_dsekundach % 10 return pocet_dhodin, pocet_dminut, pocet_dsekund Pri prevode zadaného času na sekundy využijeme skutočnosť, že hodina má 3600 sekúnd a minúta má 60 sekúnd. Ak vieme, že celý deň má 60 * 60 * 24 = 86400 sekúnd, vieme akú časť dňa predstavuje zadaný čas. Z poznatku, že deň má 10 * 10 * 10 = 1000 dsekúnd zistíme, koľko dsekúnd má vypočítaná časť dňa. Zostáva už len zistiť, koľko to predstavuje celých dhodín a celých dminút. Zostávajúca časť predstavuje počet dsekúnd. Aj keď náš čas bol zadaný v celých sekundách, počet zodpovedajúcich dsekúnd už nemusí byť celé číslo. V autorskom riešení pre zaujímavosť uvádzame aj opačný prevod. Prevod zápisu času v krajine Deka na zápis používaný u nás. Vaše zaujímavé riešenia a najčastejšie chyby Niektorí z vás sa snažili prevádzať sekundy na dsekundy,minúty na dminúty a hodiny na dhodiny. Úlohu je možné riešiť aj takto, len následne je potrebné správne vyhodnotiť necelé časti nových jednotiek. V tejto časti ste robili chyby. Niektoré tímy správne vyjadrili čas v sekundách. Následne ho však chceli priamo previesť na dsekundy. Je to možné, len je potrebne použiť správny koeficient. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |