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

Programmeerimise alused 2023/24 kevad

  • Pealeht
  • 1. Sissejuhatus
  • 2. Tingimuslause
  • 3. Tsükkel
  • 4. Järjend
  • 5. Funktsioon
  • 6. Andmevahetus. Lihtne kasutajaliides
  • Loengud
  • Moodle
  • Lahendus
  • Thonny paigaldamine
  • Thonny logide esitamine
  • Silumine
  • 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.


  • 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