Arvutiteaduse instituut
  1. Kursused
  2. 2019/20 kevad
  3. Programmeerimine (NTAT.03.001)
EN
Logi sisse

Programmeerimine 2019/20 kevad

  • Pealeht
  • Videojuhised
  • Viiteid

5. nädala lisaharjutused

1. Kuude nimed

Õpiku 3. peatükis oli ülesanne, kus oli vaja kirjutada programm, mis küsib kuu numbrit ja väljastab sellele vastava kuu nime. Siis leiti vastus if-lausete abil. Kirjuta see programm ümber funktsioonina nii, et if-lauseid funktsioonis ei kasutata.

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: Maarjamõisa Kliinikum (Tartu), 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:

EesnimiPerenimiIsikukood
PeeterPedajas39807043445
MariMammu49902142344
.........

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: õpiku 7. peatükis oli juttu ühest sõnemeetodist, 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
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused