7. praktikumi harjutused
1. Kuude nimed
Olgu meil järjend, kus on kuu nimed. Kirjutada programm, mis küsib, mitmes kuu on, ning väljastab sellele vastava kuu nime. Programm ei tohi kasutada tingimuslauset!
2. Isikukoodi osad
Kirjuta programm, mis küsib kasutajalt tema Eesti isikukoodi (http://et.wikipedia.org/wiki/Isikukood) ja väljastab ekraanile isikukoodist leitud info. Näiteks:
Sisesta isikukood: 36807043445 Lugesin välja järgneva info: sugu: Mees sünnikuupäev: 04.07.1968 sünnikoht: Tartu Maarjamõisa Kliinikum või Jõgeva Haigla
Märkus. Kuna alates 2013. aastast väljastatud isikukoodide korral haigla koodi enam ei märgita, siis sünnikoha näitamisel tuleks võtta ka arvesse, millal isikukood on välja antud.
3. Kirjete töötlemine
Koosta Exceli või mõne muu tabelitöötlusprogrammiga mõneveeruline andmete komplekt, näiteks:
Eesnimi | Perenimi | Isikukood |
Peeter | Pedajas | 39807043445 |
Mari | Mammu | 49902142344 |
... | ... | ... |
Salvesta (või ekspordi) loodud tabel CSV-vormingus (http://en.wikipedia.org/wiki/Comma-separated_values).
Ava fail esialgu tekstiredaktoriga (nt Notepadiga) ja vaata, kuidas täpselt andmed on salvestatud.
Seejärel kirjuta programm, mis töötleb faili sisu ridahaaval (nüüdsest soovitame faile lugeda for
-tsükliga). Iga rea sisu tuleks osade kaupa ekraanile kuvada, näiteks:
Eesnimi: Peeter Perenimi: Pedajas Isikukood: 39807043445 --------------------------- Eesnimi: Mari Perenimi: Mammu Isikukood: 49902142344 --------------------------- ...
Vihje: Uuri split meetodi kasutamist, mis teeb sõne soovitud sümbolite kohalt juppideks ja tagastab jupid järjendina.
Lisa 1. Täienda programmi selliselt, et iga inimese andmete juures näidatakse ära ka tema isikukoodist väljaloetud info. Selleks on soovitatav vormistada isikukoodi analüüs eraldi funktsioonina, mis võtab argumendiks isikukoodi ning tagastab sealt leitud info järjendina.
Lisa 2. Kui tunned HTMLi, siis kirjuta veel üks programm, mis genereerib etteantud CSV-faili põhjal HTML-faili, milles andmed on esitatud <table>-elemendina.
4. Sõne arvuks
Kirjuta funktsioon, mis teisendab sõnena antud täisarvu päris täisarvuks. Sisuliselt tuleb teha funktsiooniga int
samaväärne funktsioon, aga ilma seejuures funktsiooni int
kasutamata.
Tegelikult saab ülesande lahendada ilma ühtegi abifunktsiooni kasutamata, aga kui tahad natuke lühemalt hakkama saada, siis võib olla kasu funktsioonist ord
, mis annab argumendiks oleva sümboli koodi:
>>> ord('0') 48 >>> ord('9') 57
Lisa. Kirjuta funktsioon, mis muudab täisarvuks sõnena antud kahendkujul esitatud positiivse arvu.
5. Isikukoodi kontroll
Uuri isikukoodi kontrollimise algoritmi (http://et.wikipedia.org/wiki/Isikukood). Kirjuta programm, mis laseb kasutajal sisestada isikukoodi ja ütleb, kas oli tegemist korrektse isikukoodiga.
6. Ridade ümberjärjestamine
Kirjuta programm faili ridade ümberjärjestamiseks.
Programm küsib kasutajalt kahe faili nimed, esimeses on igal real mingid andmed (nt sportlaste nimed) ja teises on numbrid (mille järjestus kujutab nt võistluse tulemust). Kui esimeses failis on n rida, siis teises failis on eri ridadel täisarvud 1...n. Numbrite järjestus näitab, kuidas tuleb algse faili ridu ümber järjestada. Programmi ülesanne on tekitada kolmas fail, mis sisaldab esimese faili ridu, mis on ümber järjestatud teise faili numbrite järjekorra põhjal.
Näiteks kui esimese faili sisu on
Peeter Mari Tiina Kaur Lauri
ja teise faili sisu on
4 1 5 2 3
siis tuleks situatsiooni tõlgendada nii, et esimese koha sai 4. võistleja, teise koha sai 1. võistleja jne. Uue faili sisu peaks tulema
Kaur Peeter Lauri Mari Tiina