Arvutiteaduse instituut
  1. Kursused
  2. 2019/20 kevad
  3. Programmeerimise alused (MTAT.03.236)
EN
Logi sisse

Programmeerimise alused 2019/20 kevad

  • Pealeht
  • Loengud
  • Moodle
  • Thonny paigaldamine
  • Thonny logide esitamine
  • Kiireksamist
  • Viited

Viienda praktikumi ülesanded

Järgmisest kolmest ülesandest tuleb lahendada vähemalt üks. Lahendused tuleb esitada Moodle'is, kus need kontrollitakse automaatselt.

Kontrollülesanne 5.4a Valimised

Paari inimese tervitamine on lihtne. Suure arvu valijate ühekaupa tervitamine on aga kurnav tegevus.

Esmalt koostada funktsioon valija, mis

  1. võtab argumendiks valija järjekorranumbri arvuna, mis näitab mitmes tervitus on käsil;
  2. kuvab väljakutsel ekraanile ühe järgmistest dialoogidest koos valija järjekorranumbriga (n tähistab tervituse järjekorranumbrit):

Kandidaat: "Tere! Kas olete juba hääletanud?"
Juba n. inimene, mõtiskleb kandidaat.
Valija: "Ei."
Kandidaat: "Võtke üks pastakas."
Valija: "Suur tänu!"

või

Kandidaat: "Tere! Kas olete juba hääletanud?"
Juba n. inimene, mõtiskleb kandidaat.
Valija: "Jah."
Kandidaat: "Tubli! Võtke üks komm."
Valija: "Suur tänu!"

Teiseks koostada programm, mis

  1. küsib kasutajalt valijate arvu;
  2. rakendab tsükli abil vastav arv kordi funktsiooni valija, kus igal tsükli sammul tuleb funktsioon välja kutsuda ühe võrra suurema argumendiga kui eelmisel korral.

Funktsiooni kirjelduses tsüklit pole. Küll aga funktsiooni ennast rakendatakse tsükli kehas.

Kuidas saab sõne sees jutumärke kasutada?

NB! Funktsiooni nimi peab olema täpselt see, mis on ülesandes ette antud.

Näited programmi tööst:

100 külalise puhul on algus ja lõpp sellised.


...

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 5.4b Mündid

Euromüntide seerias on kuus erineva nimiväärtusega senti: 1 sent, 2 senti, 5 senti, 10 senti, 20 senti, 50 senti. Sendid väärtustega 1, 2 ja 5 on pronksikarva (vasega kaetud teras), sendid väärtustega 10, 20 ja 50 on kullakarva (vasesulam, mis sisaldab alumiiniumi, tsinki ja tina, nn Nordic Gold).

Peres on kombeks, et pronksikarva mündid panna hoiupõrsasse.

Müntide andmed on failis kirjas nii, et iga mündi väärtus on eraldi real. Näiteks nii:

1
20
20
5
50
2
2
1

Esmalt koostada funktsioon pronksikarva_summa, mis

  1. võtab argumendiks täisarvude järjendi;
  2. tagastab selles järjendis olevate arvude 1, 2 ja 5 summa.

Teiseks koostada programm, mis

  1. küsib kasutajalt selle faili nime, milles asuvad sentide väärtused;
  2. moodustab täisarvujärjendi vastavast failist loetud väärtustest;
  3. rakendab funktsiooni pronksikarva_summa, andes argumendiks koostatud täisarvujärjendi;
  4. väljastab ekraanile tulemuseks saadud kõikide pronksikarva sentide summa.

Näide programmi tööst:

Näiteks ülaltoodud andmete korral failis nimega mündid.txt 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.

Kontrollülesanne 5.4c Kuupäev

Kuupäevade esitamisel tekib enim probleeme, kui kuupäev kirjutatakse kujul „05.06.2005“ – sellisel puhul pole võimalik aru saada, kas on mõeldud 5. juunit või hoopis 6. maid. Eestis ja enamikes teistes riikides kirjutatakse kuupäev reeglina formaadis DD.MM.YYYY, kuid Ameerika Ühendriikides on levinum järjekord MM.DD.YYYY. (Huvi korral vt https://en.wikipedia.org/wiki/Date_format_by_country.) Segaduse vältimiseks tuleks kuu nimi välja kirjutada.

Esmalt kirjutada funktsioon kuu_nimi, mis

  1. võtab argumendiks kuu järjekorranumbri;
  2. tagastab vastava kuu nime (väikeste tähtedega).

Vihje: Seda funktsiooni saab kirjutada, kasutades vastuse andmisel if-lauseid, aga optimaalne lahendus oleks kasutada järjendit (siis ühtegi if-lauset vaja ei ole).

Teiseks luua funktsioon kuupäev_sõnena, mis

  1. võtab argumendiks ühe sõnena esitatud kuupäeva formaadis “DD.MM.YYYY” (nt '24.02.1918');
  2. tagastab selle sama kuupäeva kujul <päev>. <kuu_nimi> <aasta>. a (nt '24. veebruar 1918. a'), kusjuures kuupäev_sõnena peab ühe toimingu delegeerima funktsioonile kuu_nimi. Abiks võib ka olla funktsioon split.

Kolmandaks kirjutada programm, mis

  1. küsib kasutajalt kuupäeva kujul “DD.MM.YYYY”;
  2. väljastab ekraanile vastava kuupäeva sõnena kujul<päev>. <kuu_nimi> <aasta>. a.

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

  • 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