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
3.1 Funktsioon
3.2 Kodutöö
3.3 Harjutused
3.4 Silmaring: andmebaasid
  • 4. Korduslause
  • 5. Lihtsam failitöötlus. Sõned
  • 6. Kontrolltöö 1
  • 7. Järjend
  • 8. Järjend 2
  • 9. Kahekordne tsükkel. Failitöötlus
  • 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

Kodutöö

1. Pagarikoja kassaaparaat

Pagarikoda valmistab kolme sorti kooke: šokolaadikook (0,05 €/cm2), ploomikook (0,04 €/cm2) ja Napoleoni kook (0,08 €/cm2).

Kirjuta funktsioon koogi_hind, mis võtab argumentideks koogi nime ja mõõdu ning tagastab koogi maksumuse eurodes, ümardatult teise komakohani. Šokolaadikook ja ploomikook on ringikujulised ning etteantav mõõt tähistab raadiust. Napoleoni kook on ruudukujuline ning etteantav mõõt tähistab küljepikkust. Kui vastavat kooki funktsioonis ei leidu, tagastab funktsioon -1.

>>> koogi_hind('Napoleoni kook', 10)
8.0
>>> koogi_hind('šokolaadikook', 5)
3.93
>>> koogi_hind('pähklitega plaadikook', 12.5)
-1

Seejärel kirjuta programm, mis küsib kasutajalt koogi nime ja mõõdu, arvutab funktsiooni koogi_hind abil selle koogi hinna ning väljastab tulemuse ekraanile.

Näide 1

 Sisesta koogi nimi: ploomikook
 Sisesta koogi mõõt: 4.5
 Selle koogi hind on 2.54 eurot.

Näide 2

 Sisesta koogi nimi: maasikakook
 Sisesta koogi mõõt: 8
 Sellist kooki pagarikoda ei valmista.

Automaatkontroll. Funktsiooni nimi peab olema koogi_hind, selle esimene parameeter on koogi nimi sõnena (sobivad väärtused "šokolaadikook", "ploomikook" ja "Napoleoni kook") ning teine parameeter koogi mõõt sentimeetrites ujukomaarvuna. Funktsiooni tagastatav väärtus peab olema ümardatud kahe komakohani. Juhul, kui esimese parameetri väärtus on midagi muud kui ülal loetletud, peab funktsioon tagastama väärtuse -1, olenemata teise parameetri väärtusest. Põhiprogrammis tuleb kasutajalt küsida andmeid samas järjekorras nagu funktsiooni parameetrid.

2. Einsteini erirelatiivsusteooria

Kui kahest samas suunas liikuvast kehast esimene liigub vaatleja suhtes kiirusega u ja teine keha esimese keha suhtes kiirusega v, siis Einsteini erirelatiivsusteooria järgi liigub teine keha vaatleja suhtes kiirusega, mis arvutatakse valemist

{$$\frac{u+v}{1+\frac{u\cdot v}{c^2}}$$}

kus c on valguse kiirus (299792,458 km/s). Seda avaldist nimetatakse kiiruste u ja v summaks.

Koosta funktsioon nimega summa, mille parameetriteks on kiirused u ja v ning mis tagastab nende kiiruste summa Einsteini erirelatiivsusteooria järgi.

Näide

>>> u = 100000
>>> v = 200000
>>> summa(u,v)
245392.74884785622

Arvuta selle funktsiooni abil nelja samas suunas liikuva keha kiiruste summa, kui kehad liiguvad üksteise suhtes kiirustega u, v, x, y. Andmed küsib programm kasutajalt.

Näide

 Esimese keha kiirus vaatleja suhtes on: 100000
 Teise keha kiirus esimese keha suhtes on: 150000
 Kolmanda keha kiirus teise keha suhtes on: 200000
 Neljanda keha kiirus kolmanda keha suhtes on: 250000
 Kiiruste summa on 297993.41836837644 km/s

Juhis. Kõigepealt leia koostatud funktsiooni abil kahe esimese kiiruse summa. Siis leia selle ja kolmanda kiiruse summa. Lõpuks leia selle ja neljanda kiiruse summa.

Automaatkontroll. Funktsiooni nimi peab olema summa ja sellel peab olema 2 arvulist parameetrit. Funktsioonile võib ette anda nii täisarve kui ka ujukomaarve. Programm peab kasutajalt küsima täpselt 4 kiirust, mis võivad olla kas täisarvud või ujukomaarvud. Seejärel peab programm väljastama nende kiiruste summa, kasutades selle väljaarvutamiseks funktsiooni summa. Funktsioon peab kasutama täpset valguse kiirust (vt nt siit).

3. Moosi keetmine

Emma hakkas keetma vaarikamoosi. Tal olid kasutada 5- ja 1-kilogrammised vaarikakarbid. Emmal on moosi tegemisel kombeks kõigepealt kasutada ära kõige suuremad karbid ja seejärel väiksemad. Näiteks kui on vaja keeta 8 kg vaarikamoosi, siis võtaks ta kõigepealt ühe suure karbi ning siis kolm väikest karpi. Kui plaanitav moosikogus karpidesse täpselt ära ei mahu, siis Emma moosi ei keeda.

Kirjuta funktsioon moos, mis võtab argumendiks kolm täisarvulist väärtust:

  1. suurte karpide arvu;
  2. väikeste karpide arvu;
  3. keedetava moosi koguse kilogrammides.

Funktsioon tagastab karpide arvu, mida Emma moosi keetmiseks kasutab. Kui moosikogus antud karpidesse ei mahu, tagastab funktsioon arvu -1.

Näide

>>> moos(2, 6, 14)
6
>>> moos(3, 3, 8)
4
>>> moos(1, 2, 10)
-1
>>> moos(5, 1, 9)
-1

Automaatkontroll. Funktsiooni nimi peab olema moos ja sellel funktsioonil peab olema täpselt kolm parameetrit: suurte karpide arv, väikeste karpide arv ja moosi kogus. Kõigi parameetrite väärtused on täisarvud. Funktsioon peab tagastama karpide arvu, mida kasutatakse antud koguse moosi pakendamiseks. Kui ei leidu karpide komplekti, mis moosi täpselt ära mahutaks, peab funktsioon tagastama väärtuse -1.

Esita programmid

Esita ülesannete lahendused Moodle'i kaudu 3. nädala kodutöö alt.

Pane failidele nimedeks kodu1.py, kodu2.py ja kodu3.py.

Vestlusagent

Kui vajad ülesannete lahendamisel abi, siis võid proovida TÜ keeletehnoloogia õppetoolis loodavat uut eksperimentaalset vestlusagenti, kes püüab sind programmeerimise teemadel aidata. Katseta julgelt! Esialgu on tema tarkus küll piiratud, aga aja jooksul ta loodetavasti areneb ning tema haare laieneb.

  • 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