7. kodutöö
1. Poiste ja tüdrukute arv
Kirjuta funktsioon poisse_ja_tüdrukuid, mis võtab argumendiks järjendi, kus igal real on eesnimi (võib koosneda ka mitmest nimest) ning tühikuga eraldatud sugu (P poiste puhul ja T tüdrukute). Funktsioon peab tagastama kaheelemendilise enniku, mille esimene element on järjendis olevate poiste arv ning teine element on tüdrukute arv. Järjendit tuleks töödelda for-tsükliga.
Näide
>>> poisse_ja_tüdrukuid(['Mati P', 'Kati T', 'Siim Aleksander P', 'Jüri P', 'Veronika T']) (3, 2)
Automaatkontroll. Funktsiooni nimi peab olema poisse_ja_tüdrukuid ja sellel funktsioonil peab olema täpselt üks argument, järjend. Järjendis peab iga elemendi väärtus olema sõne, mis lõpeb kas tähega P või T, kusjuures sellele tähele eelneb tühik. Kõik, mis omakorda tühikule eelneb, loetakse nimeks. Järjendis võib poiste hulk või tüdrukute hulk olla tühi, samuti võib tühi olla ka terve järjend. Funktsioon peab tagastama paari (m,n), kus m ja n on mittenegatiivsed täisarvud. Kui poisse või tüdrukuid pole, siis on tagastatavas paaris vastav väärtus 0.
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid selgitada ja anda vihjeid.
2. Taksohinnad
Tiiu juures sai pidu läbi ja inimesed hakkavad koju liikuma. Failis taksohinnad.txt on kirjas taksode nimi, sisseistumise hind ja kilomeetri hind, eraldatult komadega. Kirjuta programm, mis küsib kasutajalt tee pikkuse koju kilomeetrites ning väljastab vastavalt failis olevatele hindadele kõige odavama takso nime.
Näide
Faili taksohinnad.txt sisu:
Maksitaksi,2.0,0.6 Sõps veab,10,0 Waldo takso,1.0,1.0
Sisesta tee pikkus kilomeetrites: 7 Kõige odavam on Maksitaksi.
Automaatkontroll. Programm peab kasutajalt küsima täpselt ühte sisestust: tee pikkust kilomeetrites. Failinimi taksohinnad.txt tuleks kirjutada programmi sisse; automaatkontroll eeldab, et andmeid loetakse selle nimega failist. Töö lõpus väljastada ekraanile kõige odavama taksofirma nimi.
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid kohti ja anda vihjeid.
3. Sünnikuupäev isikukoodist
Kirjuta funktsioon sünnikuupäev, mis võtab argumendiks Eesti isikukoodi sõnena ning tagastab sünnikuupäeva kujul <päev>. <kuu nimi> <aasta>.
Näide
>>> sünnikuupäev('34501234215') '23. jaanuar 1945'
Automaatkontroll. Funktsioon peab olema sünnikuupäev (täpitähtedega), ühe argumendiga. Nii argument kui ka funktsiooni tagastatav väärtus on sõned. Põhiprogramm võib seda funktsiooni kasutada ja sooritada sisend-väljundoperatsioone, aga automaatkontroll testib ainult funktsiooni sünnikuupäev. Funktsiooni tagastatavas väärtuses peavad kuude nimed olema täpitähtedega, nt märts. Kuupäeva numbri ja kuu nime vahel peab olema üks tühik. Seega 21. märts, mitte 21.märts. Samuti peab olema täpselt üks tühik kuu nime ja aastaarvu vahel.
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid kohti ja anda vihjeid.
Vabatahtlik lisaülesanne. Värvid
Aadressilt http://wiki.tcl.tk/16166 leiad loetelu värvinimedest, mida moodul turtle tunnistab (mitmesõnalised värvinimed on pandud loogeliste sulgude vahele, neid võid lihtsuse mõttes ignoreerida). Kirjuta programm, mis kilpkonna abil näitab võimalikult suurt osa neist värvidest, näiteks värvid antud loetelu keskosast, kus pole mitmesõnalisi nimesid:
Otsi võimalusi rakendada selle peatüki uusi teemasid (for, split).
NB! Ülesande saab lahendada ilma mingi rutiinse käsitööta!
Selle ülesande kohta automaatkontrolli pole.
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid kohti ja anda vihjeid.
Esita programmid
Esita ülesannete lahendused Moodle'i kaudu failidena kodu1.py, kodu2.py ja kodu3.py.