Arvutiteaduse instituut
  1. Kursused
  2. 2022/23 sügis
  3. Programmeerimine (LTAT.03.001)
EN
Logi sisse

Programmeerimine 2022/23 sügis

  • Üldinfo
  • 1. Muutuja ja avaldis
  • 2. Tingimuslause
  • 3. Funktsioon
  • 4. Korduslause
  • 5. Lihtsam failitöötlus. Sõned
  • 6. Kontrolltöö 1
  • 7. Järjend
  • 8. Järjend 2
  • 9. Kahekordne tsükkel. Failitöötlus
9.1 Kahekordne tsükkel. Failitöötlus
9.2 Kodutöö
9.3 Harjutused
9.4 Silmaring: NumPy
  • 10. Andmestruktuurid
  • 11. Andmestruktuurid 2
  • 12. Kontrolltöö 2
  • 13. Rekursioon
  • 14. Objektorienteeritud programmeerimine
  • 15. Objektorienteeritud programmeerimine 2
  • Viiteid
  • 15. Objektorienteeritud programmeerimine 2

https://www.uttv.ee/naita?id=33896

  • 16. Kordamine. Projektide esitlused
  • Silmaringimaterjalid
  • Materjalid

9. kodutöö

Ülesanne 1. Retseptid

Miina tegi suures koguses maasikamoosi, kuid ikka on tal üle nii maasikaid kui ka suhkrut. Ta otsib välja magustoitude retseptid ning lisab nende koostisosad faili nimega retseptid.txt nii, et igal real on vastava retsepti koostisosad eraldatud komadega.

Kirjuta programm, mis

  1. loeb funktsiooni failist_järjendisse abil failist retseptid kahemõõtmelisse järjendisse;
  2. väljastab nende retseptide koostisosad, mis kasutavad nii suhkrut kui ka maasikaid.

Näiteks võib faili retseptid.txt sisu olla

muna,suhkur,jahu,kohupiim,vahukoor,maasikad
küpsised,või,toorjuust,hapukoor,jahu,suhkur,muna
banaanid,maasikad,apelsinimahl,suhkur,maitsestamata jogurt
või,suhkur,tume šokolaad,muna,jahu

Näide funktsiooni failist_järjendisse tööst eelneva näidisfailiga retseptid.txt:

>>> failist_järjendisse("retseptid.txt")
[['muna', 'suhkur', 'jahu', 'kohupiim', 'vahukoor', 'maasikad'], ['küpsised', 'või', 'toorjuust', 'hapukoor', 'jahu', 'suhkur', 'muna'], ['banaanid', 'maasikad', 'apelsinimahl', 'suhkur', 'maitsestamata jogurt'], ['või', 'suhkur', 'tume šokolaad', 'muna', 'jahu']]

Näide programmi tööst:

>>> %Run kodu1.py
Retseptid, milleks on vaja maasikaid ja suhkrut:
muna, suhkur, jahu, kohupiim, vahukoor, maasikad
banaanid, maasikad, apelsinimahl, suhkur, maitsestamata jogurt

Ülesanne 2. Bingo reeglite kontrollimine

Selle ülesande eesmärgiks on kirjutada programm, mis loeb failist kahemõõtmelisse järjendisse bingonumbrid ja kontrollib väljaku õigsust.

Näide failist bingo.txt:

1 30 34 55 75
10 16 40 50 67
5 20 38 48 61
4 26 43 49 70
15 17 33 51 66

Koosta funktsioon failist_järjendisse, mis saab argumendiks failinime (sõne) ja tagastab kahemõõtmelise järjendi bingoväljaku arvudega (täisarvutüüpi).

Näide funktsiooni failist_järjendisse tööst eelneva näidisfailiga bingo.txt:

>>> failist_järjendisse("bingo.txt")
[[1, 30, 34, 55, 75], [10, 16, 40, 50, 67], [5, 20, 38, 48, 61], [4, 26, 43, 49, 70], [15, 17, 33, 51, 66]]

Koosta funktsioon on_bingo_tabel, mis võtab argumendiks 5 x 5 maatriksi, milles iga element on täisarv, ning tagastab tõeväärtuse vastavalt sellele, kas arvud selles tabelis on veergudesse jaotatud vastavalt Bingo loto reeglitele.

Et tegu oleks korrektse Bingo loto mänguväljaga, peavad vasakpoolseimas veerus olevad arvud kuuluma lõiku 1 - 15, järgmises veerus olevad arvud lõiku 16 - 30 ja nii edasi, kuni viimases veerus on ainult arvud lõigust 61 - 75.

Näited funktsiooni eraldi rakendamisest

>>> on_bingo_tabel([[1, 30, 34, 55, 75],
                   [10, 16, 40, 50, 67],
                   [5, 20, 38, 48, 61],
                   [4, 26, 43, 49, 70],
                   [15, 17, 33, 51, 66]])
True
>>> on_bingo_tabel([[1, 30, 34, 55, 76],
                    [10, 16, 40, 50, 67],
                    [5, 20, 38, 48, 61],
                    [4, 26, 43, 49, 70],
                    [15, 17, 33, 51, 66]])
False

Lihtsuse mõttes võib siin ülesandes eeldada, et kõik arvud on antud tabelis unikaalsed ehk ükski arv ei esine tabelis rohkem kui üks kord. Huvi korral võid proovida kontrollida ka arvude unikaalsust, et ei peetaks korrektseks tabelit, mis on muidu reeglitele vastav, aga milles on kaks ühesugust arvu. Kui oled oma programmile lisanud unikaalsuse kontrolli, siis peab funktsiooni nimeks olema on_bingo_tabel_extra.

Esita programmid

Esita ülesannete lahendused Moodle'i kaudu failidena kodu1.py ja kodu2.py.

  • 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