1. Priebežný test z Programovania (1) v 2022 - variant A¶
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
zluc(z1, z2)
, ktora dostáva dva (možno rôzne dlhé) zoznamy nejakých hodnôt. Funkcia tieto dva zoznamy zlúči tak, že vo výslednom zozname sa budú postupne striedať prvky týchto dvoch zoznamov:[z1[0], z2[0], z1[1], z2[1], z1[2], ...]
. Zrejme, ak je niektorý zo zoznamov kratši, tak sa tam z neho objavia len existujuce prvky. Funkcia nič nevracia ani nevypisuje, len modifikuje zoznamz1
, v ktorom bude výsledný zlúčený zoznam. Napriklad:>>> a = [1, 2, 3, 4] >>> b = ['a', 'b'] >>> zluc(a, b) >>> print(a) [1, 'a', 2, 'b', 3, 4]
Napíš funkciu
vyhodnot(retazec)
, ktorá dostane znakový reťazec s celými číslami, medzi ktorými môžu byť znamienka'+'
alebo'-'
. funkcia vráti hodnotu takéhoto aritmetického výrazu. Napríklad:>>> vyhodnot('123-7-11+45') 150
Nájdi 4 najmenšie za sebou idúce prvočísla, ktoré všetky končia cifrou
7
. Napríklad, ak by nám stačili len dve takéto prvočísla, výsledkom by boli čísla337
,347
. Výsledok pre 4 takéto prvočísla priraď do premennej:zoznam = [337, 347]
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ť 4 čísla do premennej
zoznam
.
V textovom súbore sú slová oddelené aspoň jednou medzerou alebo novým riadkom. Napíš funkciu
subor(meno_suboru)
, ktorá zistí všetky slová, ktoré sa v ňom vyskytli párny počet-krát (vráti zoznam slov). Napríklad pre súbor:mama ma emu a ema ma mamu ale mama ani ema nema elu
funkcia vráti zoznam:
['mama', 'ma', 'ema']
Korytnačka by nakreslila tento strom so striedajúcimi sa farebnými bodkami:
f = 'red green 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 * .7)) 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(20)
by sa malo vypísať:red 82 green 42 blue 40
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ť:
# 1A. priebezny test 2022
# student: Janko Hrasko
# datum: 8.11.2022
zrejme ako študenta uvedieš svoje meno.