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


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 vyhod_duplikaty(zoznam), ktorá dostane zoznam nejakých hodnôt. Funkcia z tohto zoznamu vyhodí všetky prvky, ktorá sa tam nachádzajú viackrát a nechá z nich len prvý výskyt. Funkcia nič nevypisuje ani nevracia. Výsledok bude v pôvodnom zozname. Napríklad:

    >>> z = [1, 2, '3', 2, 4, 5, 1, '3', 2, 6, 6]
    >>> vyhod_duplikaty(z)
    >>> z
        [1, 2, '3', 4, 5, 6]
    

  1. Napíš funkciu usporiadaj(veta), ktorá dostáva reťazec slov (slová sú oddelené aspoň jednou medzerou). Funkcia z týchto istých slov vyrobí novú vetu, v ktorej budú slová usporiadané podľa dĺžky. Ak majú dve slová rovnakú dĺžku tak sa usporiadajú tak, že najprv ide slovo, ktoré je skôr v abecede (môžeš použiť sort alebo sorted). Napriklad:

    >>> usporiadaj('Anicka dusicka kde si bola ked si si cizmicky zarosila')
        'si si si kde ked bola Anicka dusicka cizmicky zarosila'
    

  1. Korytnačka by nakreslila tento rekurzívny obrázok so striedajúcimi sa farebnými bodkami:

    f = 'red blue yellow blue pink'.split()
    def antena(n, a):
        if n > 0:
            for i in range(3):
                t.fd(a)
                antena(n - 1, a // 2)
                t.fd(-a)
                t.lt(120)
        t.dot(10, f[0])
        f.append(f.pop(0))
    

    Keby sme ku každej farebnej bodke vyslali z počiatočného bodu kreslenia jednu húseničku, každá prejde nejakú inú vzdialenosť (len po nakreslených čiarach). Zaujíma nás súčet vzdialeností, ktoré prejdú húseničky ku všetkým červeným bodkám, ale tiež aj ku všetkým zeleným, atď. Prepíš túto funkciu tak, aby nepotrebovala korytnačí modul turtle a namiesto vykreslenia obrázku vypíše celkovú dĺžku ciest od počiatku kreslenia k príslušnej farbe.

    Napríklad pre volanie antena(2, 22) by sa malo vypísať (v ľubovoľnom poradí):

    red 99
    blue 143
    yellow 55
    pink 66
    

  1. V textovom súbore sú slová oddelené aspoň jednou medzerou alebo novým riadkom. Napíš funkciu dvojicky(meno_suboru), ktorá nájde najčastejšie sa vyskytujúce dvojice za sebou idúcich slov. Ak je takých viac, všetky uvedie vo výsledku (vráti zoznam slov). Napríklad pre súbor:

    anicka dusicka kde
    si bola ked si
    si kde si ked bola
    anicka bola kde
    si ked cizmicky
    

    funkcia vráti zoznam: ['kde si']


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

    zoznam = [181, 191]
    

    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 zoznam.


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ť:

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

zrejme ako študenta uvedieš svoje meno.