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.
Napíš funkciu
vyhod_duplikaty(zoznam)
, ktorá dostanezoznam
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]
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
alebosorted
). Napriklad:>>> usporiadaj('Anicka dusicka kde si bola ked si si cizmicky zarosila') 'si si si kde ked bola Anicka dusicka cizmicky zarosila'
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
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']
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 čísla181
,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.