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

Programmeerimine 2019/20 sügis

  • Pealeht
  • Videojuhised
  • Viiteid

4. kodutöö

1. 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

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).

2. Pagarikoja kassaaparaat

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

Kirjuta funktsioon koogi_hind, mis võtab argumentideks koogi nime ning mõõdu ja tagastab koogi maksumuse eurodes, ümardatult teise komakohani. Šokolaadikook ning maasikakook 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, tuleb visata erind „Sellist kooki andmebaasist ei leitud”.

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

Automaatkontroll. Funktsiooni nimi peab olema koogi_hind, selle esimene parameeter on koogi nimi (sobivad väärtused "šokolaadikook", "maasikakook" ja "Napoleoni kook") ning teine parameeter koogi suurus ujukomaarvuna. Juhul, kui esimese parameetri väärtus on midagi muud kui ülal loetletud, peab funktsioon genereerima erindi "Sellist kooki andmebaasist ei leitud". Funktsiooni tagastatav väärtus peab olema ümardatud kahe kümnendkohani. Funktsiooni töö demonstreerimisel tuleb kasutajalt küsida andmeid samas järjekorras nagu funktsiooni parameetrid.

3. Hulknurgad

Kirjuta funktsioon, mis võtab argumentideks külgede arvu ning küljepikkuse, ning joonistab kilpkonnaga neile vastava korrapärase hulknurga.

Joonista selle funktsiooni abil juhuslikesse ekraani kohtadesse juhusliku suuruse ja külgede arvuga 30 hulknurka.

Automaatkontrolli sellel ülesandel ei ole, aga esitage see siiski näidatud failinimega.

4. Hinnete arvutamise funktsioon

Kirjuta funktsioon hinne, mis arvutab välja tudengi lõpphinde aines „Programmeerimine” (vaata hindamissüsteemi tabelit lehel https://courses.cs.ut.ee/2019/programmeerimine/fall).

NB! Funktsioon ei pea arvestama kontrollivormi alampiiri. Hinne võib olla „A”, „B”, „C”, „D”, „E” või „F”.

Kirjuta programm, mis küsib kasutajalt tema kogutud punktid loengutes, praktikumides, kontrolltöödes, eksamil, projektis ja lisaülesannetes ning rakendab funktsiooni hinne, mis tagastab tudengi hinde.

Näide

 Sisesta loengute punktid: 7
 Sisesta praktikumide punktid: 13
 ...
 ...
 Sisesta lisaülesannete punktid: 10
 Sinu hinne on A.

Automaatkontroll. Funktsiooni nimi peab olema hinne ja tal peab olema 7 parameetrit sellises järjekorras: 1) loengute punktide arv, 2) praktikumide punktide arv, 3) projekti punktide arv, 4) esimese kontrolltöö punktide arv, 5) teise kontrolltöö punktide arv, 6) eksami punktide arv, 7) lisapunktide arv. Parameetrite väärtused on üldjuhul ujukomaarvud.

  • 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.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo