Autorské riešenie
Úlohou bolo vytvor procedúru jeCesta, ktorá pre zadané vzdialenosti medzi rodiskom, univerzitou a prácou overí, či je možné takúto cestu v tvare trojuholníka zostrojiť, t.j. musíme overiť či platí trojuhplníková nerovnosť. Pri trojuholníkovej nerovnosti musí byť grafický súčet každých dvoch strán trojuholníka väčší ako tretia strana. Musia byť splnené podmienky:
V Imagine by sme mohli použiť takúto podmienku: ak2 (zároveň :a+:b>:c :a+:c>:b :c+:b>:a)
Imagine vyhodnocuje konjunkciu tak, že vyhodnotí všetky nerovnosti, a potom vyhodnoti ich konjunkciu, t.j ak prvá nerovnosť neplatí, pokračuje vo vyhodnocovaní dalších nerovností aj keď je jasne, že už celá podmienka platiť nemôže. Python na to ide šikovnejšie, ak prvá nerovnosť neplatí, výsledkom celej konjunkcie je false a dalšie nerovnosti sa nevyhodnocujú. V prípade Imaginu je efektívnejšie použiť do seba vnorené podmienky ak2. ;Imagine
logo
viem jeCesta :a :b :c ak2 :a+:b>:c [ak2 :a+:c>:b [ak2 :c+:b>:a [výsledok [Cestu v tvare trojuholnika je mozne zostrojit.]] [výsledok [Cestu v tvare trojuholnika nie je mozne zostrojit.]] ] [výsledok [Cestu v tvare trojuholnika nie je mozne zostrojit.]] ] [výsledok [Cestu v tvare trojuholnika nie je mozne zostrojit.]] koniec
Python
def jeCesta (a, b, c): ''' :param a: dlzka cesty :param b: dlzka cesty :param c: dlzka cesty :return: ci sa da zostrojit cesta v tvare trojuholnika ''' if a + b > c and a + c > b and c +b > a: return ("Cestu v tvare trojuholnika je mozne zostrojit.") else: return ("Cestu v tvare trojuholnika nie je mozne zostrojit.") Vaše zaujímavé riešenia a najčastejšie chyby Najčastejšou chybou bolo, že žiaci neuviedli všetky podmienky a tak program vypísal, že trojuholnik je možné zostrojiť, aj keď sa trojuholník nedá zostrojiť. Jeden tím vyriešil úlohu pomocou do seba vnorených podmienok. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |