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.
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 zoznamz1
, 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]
Napíš funkciu
retazec(ret)
, ktorá dostane znakový reťazecret`. 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čomoperá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
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 čísla139
,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
.
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']
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.