Neljanda nädala kontrollülesanded
Enne 4. praktikumi tuleb esitada kolme kohustusliku ülesande lahendused. Lahendused tuleb esitada Moodle'is, kus need kontrollitakse automaatselt.
Kontrollülesanne 4.1. Mopeedid
2016. aastal registreeriti Eestis 637 uut mopeedi (http://www.stat.ee/34654). Registreeritud mopeedide andmed on kuude kaupa failis mopeedid.txt, kus esimesel real on jaanuaris registreeritud mopeedide arv, teisel real veebruaris registreeritud mopeedide arv jne. Faili võite salvestada siit või koostada ise mõne tekstiredaktoriga.
Koostada programm, mis
- loeb failist registreeritud mopeedite andmed kuude järgi järjendisse;
- Failist järjendisse saab lugeda järgmise programmijupi abil:
fail = open("mopeedid.txt", encoding="UTF-8") mopeedid = [] for rida in fail: mopeedid.append(int(rida)) fail.close()
Viide: https://courses.cs.ut.ee/2017/prog-alused/spring/Main/Andmedfailist
- küsib kasutajalt täisarvu, mis tähistab ühe kuu järjekorranumbrit (jaanuar 1, veebruar 2 jne);
- väljastab, mitu uut mopeedi sel kuul registreeriti.
Näited programmi tööst:
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
Kontrollülesanne 4.2. Lillede arv (for-tsükliga)
On traditsioon, et rõõmsatel puhkudel kingitakse paaritu arv lilli. Lillepoel on sünnipäev ja pood otsustas klientidele kinkida lilli nii, et päeva esimene ostja saab ühe lille, teine ei saa ühtegi, kolmas ostja saab kolm lille, neljas ei saa midagi, viies ostja saab viis lille jne.
Koostada programm, mis
- küsib kasutajalt klientide arvu (mittenegatiivne täisarv);
- arvutab for-tsükli ja funktsiooni range() abil lillede koguarvu, mida pood kingib;
- väljastab saadud lillede arvu ekraanile.
Vihje: lillede koguarvust võib mõelda kui summast, milles liidetavad on paaritud arvud alates 1 kuni esimese paaritu arvuni, mis pole suurem kui klientide arv.
Näiteks, kui kasutaja sisestas 7, siis paaritute arvude summa on 16, sest 1 + 3 + 5 + 7 = 16. Kui kasutaja sisestas 8, siis on summaks samuti 16, sest 1 + 3 + 5 + 7 = 16.
Tegemist on ülesande 3.2 variandiga for-tsükli jaoks.
Näited programmi tööst:
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
Kontrollülesanne 4.3. Sissetulekud
Failis konto.txt on kirjas ujukomaarvudena pangakonto tehingud (kus positiivsed arvud on sissetulekud ja negatiivsed arvud on väljaminekud). Iga arv on eraldi real. Näitefaili võite salvestada siit või koostada ise mõne tekstiredaktoriga (kasvõi Thonnyga). Tekstifaili kasutamiseks programmi sees peab fail asuma programmifailiga samas kaustas.
Koostada programm, mis
- loeb failist nimega konto.txt andmed;
- väljastab ekraanile kõik sissetulekud ehk failist leitud positiivsed arvud. Iga arv peab olema eraldi real ja positiivsete arvude omavaheline järjekord peab jääma samaks nagu failis.
Näide programmi tööst:
Näiteks antud näitefaili konto.txt puhul peab ekraanile ilmuma
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.