1. Priebežný test z Programovania (1) v 2022 - variant C


Odovzdávaš len jeden skript test.py, v ktorom budú všetky tvoje riešenia úloh. V odovzdanom riešení nepoužívaj import a ani prvky Pythonu, ktoré sme sa neučili v prvých 13. prednáškach. Svojim funkciám (oproti zadaniu) môžeš zmeniť mená parametrov.


  1. Napíš funkciu vyrad(z1, z2), ktora dostáva dva zoznamy hodnôt nejakých typov. Funkcia v prvom zozname ponechá len tie prvky, ktoré sa nenachádzajú v druhom zozname. Funkcia nič nevracia ani nevypisuje, len modifikuje zoznam z1, v ktorom bude výsledný zoznam. Napriklad:

    >>> a = [1, 'a', 2, 3.1, 4, 'a']
    >>> vyrad(a, ['a', 'b'])
    >>> print(a)
        [1, 2, 3.1, 4]
    

  1. Napíš funkciu retazec(ret), ktorá dostane znakový reťazec ret`. V tomto reťazci sa môžu nachádzať písmená, čislice a aj znamienka operácií ``'+' a '*'. Funkcia bude interpretovať výraz v tomto reťazci takto: pôjde zľava doprava pričom

    • operácia '+' označuje zreťazenie dvoch reťazcov, napríklad 'a+bc' bude mať výsledok 'abc'

    • operácia '*' označuje viacnásobné zreťazenie a druhým operandom bude celé číslo, napríklad 'a+bc*3' bude mať výsledok 'abcabcabc'

    Funkcia vráti hodnotu takéhoto reťazcového výrazu. Napríklad:

    >>> retazec('xy*4+zzz')
        xyxyxyxyzzz
    

  1. Nájdi 5 najmenších za sebou idúcich prvočísel, ktoré všetky končia cifrou 9. Napríklad, ak by nám stačili len dve takéto prvočísla, výsledkom by boli čísla 139, 149. Výsledok pre 5 takýchto prvočísel priraď do premennej:

    za_sebou9 = [139, 149]
    

    Uvedom si, že dve prvočísla sú za sabou idúce, ak medzi nimi nie je žiadne ďalšie prvočíslo. Pre túto úlohu nemusíš odovzdávať program, stačí len priradiť 5 čísel do premennej za_sebou9.


  1. V textovom súbore sú slová v riadkoch oddelené aspoň jednou medzerou. V niektorých riadkoch sa môžu nejaké slová opakovať aj viackrát. Úlohou je zistiť, v ktorom riadku sa nejaké slovo opakuje najviackrát. Napíš funkciu zisti(meno_suboru), ktorá zistí najčastejšie opakujúce sa slovo v nejakom riadku. Ak je takých slov viac, funkcia vráti všetky také (vráti zoznam slov). Napríklad pre súbor:

    prvy druhy prvy treti
    druhy treti druhy prvy druhy
    treti prvy duhy
    

    funkcia vráti zoznam: ['druhy']


  1. Korytnačka by nakreslila tento strom so striedajúcimi sa farebnými bodkami:

    f = 'red green red blue'.split()
    def strom(d):
        t.fd(d)
        if d < 10:
            t.dot(10, f[0])
            f.append(f.pop(0))
        else:
            t.lt(30)
            strom(int(d * .5))
            t.rt(80)
            strom(int(d * .6))
            t.lt(50)
        t.fd(-d)
    

    Prepíš túto funkciu tak, aby nepotrebovala korytnačí modul turtle a namiesto vykreslenia stromu vypíše celkovú dĺžku cesty od koreňa k príslušnej farbe (ak by ku každej farbe vyštartovala húsenica od koreňa k farebnému listu, tak nás zaujíma celková dĺžka prejdených ciest).

    Napríklad pre volanie strom(22) by sa malo vypísať:

    red 79
    green 39
    blue 42
    

Riešenie odovzdaj v súbore test.py (môžeš si ho stiahnuť z L.I.S.T.u), pričom prvé tri riadky súboru budú obsahovať:

# 1C. priebezny test 2022
# student: Janko Hrasko
# datum: 8.11.2022

zrejme ako študenta uvedieš svoje meno.