Autorské riešenie
V prvom rade by sme sa chceli ospravedlniť riešiteľom za chybu v zadaní, kde sme sa Vás najprv pýtali na výpočet percent chybovosti stroja a následne na výpočet percent správnosti stroja. Mali sme na mysli druhú možnosť – vypočítať, na koľko percent pracoval stroj správne. Preto sme uznali za správne riešenie aj jednu, aj druhú možnosť. Za túto úlohu ste mohli získať spolu 5 bodov. Riešenie a aj hodnotenie úlohy si môžeme rozdeliť do niekoľkých krokov:
Imagine logo viem kontrola :retazec1 :retazec2 urobTu "spravne 0 urobTu "pocet pocet :retazec1 opakuj :pocet [ ak zaroven prvy :retazec1 = "T prvy :retazec2 = "A [urobTu "spravne :spravne+1] ak zaroven prvy :retazec1 = "A prvy :retazec2 = "T [urobTu "spravne :spravne+1] ak zaroven prvy :retazec1 = "G prvy :retazec2 = "C [urobTu "spravne :spravne+1] ak zaroven prvy :retazec1 = "C prvy :retazec2 = "G [urobTu "spravne :spravne+1] urobTu "retazec1 bezPr :retazec1 urobTu "retazec2 bezPr :retazec2 ] urobTu "percenta :spravne/:pocet*100 pis :percenta koniec #Python def kontrola(retaze1, retazec2) -> int: navratovaHodnota = bool() spravne = 0 for i in range(len(retazec1)): if retazec1[i] == "A" and retazec2[i] == "T": spravne = spravne + 1 elif retazec1[i] == "T" and retazec2[i] == "A": spravne = spravne + 1 elif retazec1[i] == "G" and retazec2[i] == "C": spravne = spravne + 1 elif retazec1[i] == "C" and retazec2[i] == "G": spravne = spravne + 1 else: continue spravne = (spravne)/len(retazec1)*100 return spravne Vaše zaujímavé riešenia a najčastejšie chyby Túto úlohu riešilo spolu 8 tímov. Všetky riešenia boli viac-menej dobré. Najlepší tým v Python-e bol Svedi a v Imagine Bubaci. Najčastejšie sa vyskytujúce chyby boli, že v prípade iného písmena alebo medzery v reťazci sa kontrola vyhodnotila ako 100% zlá. Okrem toho sa v niektorých prípadoch vyskytovalo, že ak sa v prvom reťazci vyskytovalo iné písmeno alebo medzera, tak sa to vyhodnotilo ako chyba, ale ak sa vyskytovalo v druhom reťazci, tak sa to nevyhodnotilo ako chyba. To isté platilo aj opačne. Ďalšou chybou bolo, že v prípade výskytu iného písmena alebo medzery sa program ukončil chybovou hláškou. Vo všeobecnosti môžeme povedať, že kódy boli napísané prehľadne a niektoré boli aj pekne okomentované a komunikovali s používateľom. Vyskytli sa 2 typy riešení. Jedno bolo také ako je uvedené autorské riešenie. V druhom prípade si riešitelia vytvorili slovník, v ktorom boli uvedené správne dvojice a pri prechádzaní reťazcom kontrolovali dvojice so slovníkom. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |