Autorské riešenie
V tejto úlohe ste mohli získať najviac 6 bodov. Riešenie tejto úlohy si môžeme rozdeliť do niekoľkých fáz:
Riešenie úlohy naprogramované v jazyku Logo. ;Imagine
logo
viem hadajPrikaz ;najskôr si vytvoríme lokálne premenné, ktoré budeme potrebovať: na kódy riešenia používajte div blok s css triedou "code" urobTu "zoznamPrikazov [pis cakaj urob] urobTu "hladanyPrikaz ?prvok :zoznamPrikazov urobTu "uhadniMa " urobTu "pocetChyb 0 ;premennú uhadniMa naplníme hviezdičkami, v závislosti od počtu písmen hľadaného príkazu opakuj pocet :hladanyPrikaz [ urobTu "uhadniMa vlozPr :uhadniMa "* ] ;nesmieme zabúdať aj na komunikatívne používateľské rozhranie pis "|Uhádni príkaz! Môžeš sa najviac 3 krát pomýliť.| ;opakujeme, kým uhadniMa obsahuje hviezdicky a kým nie je pocetChýb rovný 4 kym [zaroveň prvok? "* :uhadniMa :pocetChyb<4][ pis :uhadniMa urobTu "citanePismeno citajSlovo urobTu "spravne 0 opakuj pocet :hladanyPrikaz [ ak (:citanePismeno = prvok pocitadlo :hladanyPrikaz)[ urobTu "uhadniMa nahraď pocitadlo :uhadniMa :citanePismeno urobTu "spravne 1 ] ] ak (:spravne = 0)[ urobTu "pocetChyb :pocetChyb + 1 (pis "|Pismeno sa v hľadanom slove nenachádza. Počet chýb:| :pocetChyb) ] ] ;na záver vyhlásime výsledok ak2 (:pocetChyb<4)[ (pis "|Gratulujem, uhádol si! Hľadaný príkaz je: | :hladanyPrikaz) ][ (pis "|Neuhádol si! Hľadaný príkaz je: | :hladanyPrikaz) ] koniec Riešenie úlohy naprogramované v jazyku Python. # coding=utf-8 import random def uhadniPrikaz(): """ Spravne riesenie. :type: :param: :rtype : object :return: """ print('Uhádni príkaz! Môžeš sa najviac 3 krát pomýliť.') pocetChyb = 0 zoznamPrikazov = ['return', 'while', 'print','random','len'] slovo = random.choice(zoznamPrikazov) uhadniMa = len(slovo) * '*' while '*' in uhadniMa and pocetChyb < 4: print(uhadniMa) pismeno = input('Zadaj písmeno:') if pismeno not in slovo: pocetChyb = pocetChyb + 1 print('Pismeno sa v slove nenachádza. Pocet chyb: ' + str(pocetChyb)) else: for i in range(len(slovo)): if slovo[i] == pismeno: uhadniMa = uhadniMa[:i] + pismeno + uhadniMa[i + 1:] if pocetChyb < 4: print('Gratulujem, uhádol si! Hľadaný príkaz je: ' + slovo) else: print('Neuhádol si! Hľadaný príkaz je: ' + slovo) uhadniPrikaz() Vaše zaujímavé riešenia a najčastejšie chyby Túto úlohu sa pokúsilo vyriešiť osem tímov. Za najúspešnejších riešiteľov v jazyku Python môžeme vyhlásiť tím MatejHanus. V prostredí Imagine dosiahol plný počet bodov tím expert aa. Potešilo nás, že ste sa snažili vykresliť hľadané slovo na plochu a graficky ozvláštniť svoje riešenia. Často sme sa však stretávali s nedokončenými (neúplnými) riešeniami, za ktoré sme žiaľ nemohli udeliť plný počet bodov. Najčastejšie chyby, ktoré ste urobili vo svojich riešeniach:
|
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |