Institute of Computer Science
  1. Courses
  2. 2021/22 spring
  3. Introduction to Programming (MTAT.03.236)
ET
Log in

Introduction to Programming 2021/22 spring

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

Neljanda praktikumi ülesanded

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

Kontrollülesanne 4.4a Jukebox

Ada tahab valida plaadiautomaadist laulu ja uurib, milliseid laule masin mängib. Muusikapalad on kirjas failis, kus iga laul on eraldi real.

Programmi testimiseks kasutatakse järgmisi faile, mida võite salvestada või koostada ise mõne tekstiredaktoriga (nt Notepad):

  • jukebox.txt
  • 80ndad.txt
  • eesti_muusika.txt
  • edm.txt

Koostada programm, mis

  • küsib kasutajalt failinime (kasutaja sisestab failinime koos laiendiga, nt jukebox.txt);
  • loeb sisestatud nimega failist andmed;
  • näitab kõiki laule koos järjekorranumbritega (alates 1);
  • küsib kasutajalt, mitmendat laulu ta soovib (kasutaja sisestab alati täisarvu);
  • väljastab ekraanile vastavalt valitud arvule muusikapala

Näide programmi tööst: Faili jukebox.txt sisu:

  Journey - Don't Stop Believin'
  Judas Priest - Living After Midnight
  Aerosmith - Dream On
  Deep Purple - Smoke On The Water
  Free - All Right Now
  Black Sabbath - Paranoid
  Van Morrison - Brown Eyed Girl
  AC/DC - Back In Black
  Led Zeppelin - Stairway To Heaven
  ZZ Top - Sharp Dressed Man

>>> %Run lahendus.py
Sisesta failinimi: jukebox.txt
Muusikapalade valik:
1. Journey - Don't Stop Believin'
2. Judas Priest - Living After Midnight
3. Aerosmith - Dream On
4. Deep Purple - Smoke On The Water
5. Free - All Right Now
6. Black Sabbath - Paranoid
7. Van Morrison - Brown Eyed Girl
8. AC/DC - Back In Black
9. Led Zeppelin - Stairway To Heaven
10. ZZ Top - Sharp Dressed Man

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.4b Kampaaniahinnad

Poes algab kampaania. Alghinnad on esitanud ühe sõnena, kus on alati viis alghinda täisarvudena ja need on eraldatud komadega. Lisaks on järjend kampaania hinnakordjate jaoks, kus on ujukomaarvud [0.8, 0.3, 0.2, 0.5, 0.95]. Igale alghinnale vastab hinnakordajate järjendist samal positisoonil olev kordaja. Näiteks kui alghinnad on "100,45,25,37,19", siis ostule summaga 100 vastab kordaja 0.8, ostule summaga 45 vastab kordaja 0.3 jne.

Koostada programm, mis

  • küsib kasutajalt 5 alghinda komadega eraldatult ühe sõnena (näiteks "100,45,25,37,19");
  • for-tsüklit kasutades arvutab iga alghinna puhul kampaaniahinna, näiteks 100 * 0.8 = 80. Hinnakordajad on järjendis [0.8, 0.3, 0.2, 0.5, 0.95];
  • väljastab toote järjekorranumbri, alghinna ja kampaaniahinna kujul i. toote alghind: x, kampaaniahind: y, kus i tähistab järjekorranumbrit, x alghinda ja y kampaaniahinda;

Näide programmi tööst:

>>> %Run lahendus.py
Sisesta alghinnad: 100,45,25,37,19
1. toote alghind: 100, kampaaniahind: 80.0
2. toote alghind: 45, kampaaniahind: 13.5
3. toote alghind: 25, kampaaniahind: 5.0
4. toote alghind: 37, kampaaniahind: 18.5
5. toote alghind: 19, kampaaniahind: 18.05

Sisestatud sõne on lihtne teha sobivaks järjendiks käsu sõne.split(",") abil.

Kontrollülesanne 4.4c Tahvli juurde

Mõned õpetajad on tavatsenud õpilasi tahvli juurde vastama kutsuda kuupäeva järgi vastavalt õpilaste nimekirjale. Näiteks 4. kuupäeval tuleb esimesena vastama nimekirjas 4. olev õpilane. Failis nimekiri.txt on õpilaste nimed, igaüks eraldi real. Üks selline, mis on genereeritud leheküljel http://random-name-generator.info/, on siin. Võite ise koostada ka teistsuguse nimekirja.

Koostada programm, mis

  • küsib failinime (eeldame, et kasutaja sisestatud nimega fail leidub ja seal on vähemalt 31 nime);
  • loeb sisestatud nimega failist andmed;
  • väljastab vastavalt tänasele kuupäevale õpilase nime, kes peab vastama tulema.

Programm peab tänase kuupäeva leidma automaatselt, aluseks saab võtta järgmise näite:

from datetime import *
print(datetime.now().day)

Näited programmi tööst:

>>> %Run lahendus.py
Sisesta failinimi: nimekiri.txt
Vastama tuleb Joosep Toots

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.


  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment