Institute of Computer Science
  1. Courses
  2. 2022/23 fall
  3. Computer Programming (LTAT.03.001)
ET
Log in

Computer Programming 2022/23 fall

  • Ü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
  • 10. Andmestruktuurid
  • 11. Andmestruktuurid 2
  • 12. Kontrolltöö 2
  • 13. Rekursioon
  • 14. Objektorienteeritud programmeerimine
14.1 Objektorienteeritud programmeerimine
14.2 Kodutöö
14.3 Harjutused
14.4 Silmaring: pilditöötlus
  • 15. Objektorienteeritud programmeerimine 2
  • Viiteid
  • 15. Objektorienteeritud programmeerimine 2

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

  • 16. Kordamine. Projektide esitlused
  • Silmaringimaterjalid
  • Materjalid

14. praktikumi harjutused

1. Auto

Koosta klass nimega Auto, mille konstruktori parameetriteks on automargi nimi, läbisõit kilomeetrites, auto kütusekulu 100 kilomeetri kohta ning auto kütusetüüp.

Konstruktoris (meetodis __init__) peab toimuma kütusetüübi kontroll, sest kütusetüüp võib olla ainult kas "bensiin" või "diisel", kõikide muude väärtuste korral peab kasutajale sellest teada andma, visates erindi sobiliku sõnumiga.

Klassil peab ka olema meetod nimega kütuse_maksumus, mis võtab argumendiks teekonna pikkuse kilomeetrites ja väljastab info, mitu eurot kulub antud autol teekonna läbimiseks, ümardatult sajandikeni. Meetod peab sisaldama kütuste hindasid: bensiin - 1.9 eurot liitri kohta, diisel - 1.8 eurot liitri kohta. Juhul, kui teekonna pikkus pole korrektsel kujul, peab meetod väljastama vastava sõnumi.

2. Lennureis

Koosta klass nimega Lennuk, mille konstruktori parameetriteks on lennuki nimi, maksimaalne reisijate arv, keskmine kiirus (km/h) ja kütusekulu reisija ning 100 kilomeetri kohta.

Koosta klass nimega Reis, mille konstruktori parameetriteks on lennuk, mis on klassi Lennuk isend, reisi sihtkoht, reisi pikkus kilomeetrites ning reisile ostetud piletite arv. Klassis Reis peavad olema ka järgmised neli meetodit.

  • Meetod reisi_kestus, mis tagastab reisi kestuse minutites, ümardatult täisarvuni.
  • Meetod vabu_kohti, mis tagastab reisiga seotud lennuki vabade kohtade arvu.
  • Meetod osta_pilet, mille väljakutsel lisatakse antud reisile üks reisija juurde ja eduka ostu puhul väljastatakse ka sobilik sõnum. Meetod peab veenduma, et reisijate arv ei ületa lennuki maksimaalset reisijate arvu, ning juhul kui see juhtub, väljastama vastava teate.
  • Meetod reisi_kütusekulu, mis tagastab lennuki kütusekulu antud reisi jooksul, arvestades reisi pikkust, reisijate arvu ja lennuki kütusekulu.

Lõpuks loo üks Lennuk-tüüpi objekt, mille parameetriteks on: "Boeing-767" (nimi), 123 (maksimaalne reisijate arv), 800 (km/h keskmine kiirus), 4 (kütusekulu reisija ning 100 kilomeetri kohta). Koosta veel üks Reis-tüüpi objekt, millel on järgmised parameetrid: eelmise objekti muutuja nimi, "Madrid" (sihtkoht), 3500 (reisi pikkus kilomeetrites), 110 (reisijate arv).

Neid objekte kasutades väljasta ekraanile reisi kestus, vabade kohtade arv reisil, osta üks pilet antud reisile, väljasta uuesti ekraanile vabade kohtade arv reisil ning reisi kütusekulu. Väljund võiks välja näha selline:

 Reisi kestus on 262 minutit.
 Vabade kohtade arv reisile sihtkohta Madrid on 13.
 Pilet ostetud.
 Vabade kohtade arv reisile sihtkohta Madrid on 12.
 Kütusekulu lendamiseks sihtkohta Madrid on 15540 liitrit.

3. Kool

Koosta klass nimega Õpilane, mille konstruktori parameetriteks on õpilase nimi (ees- ja perekonnanimi), õpilase sugu ("N" või "M"), õpilase keskmine hinne ja õpilase lemmikaine. Klassis Õpilane peab olema meetod nimega õpilane, mis väljastab kõik õpilase andmed.

Koosta klass nimega Kool, mille konstruktori parameetriteks on sõnena kooli nimi ning järjendina klassi Õpilane isendid. Klassis peab olema meetod kuva_info, mis väljastab ekraanile kooli nime ning kõikide koolis õppivate õpilaste info eraldi ridadele (pöördudes klassi Õpilane meetodi õpilane poole).

Antud on fail õpilased.txt, mille sisu on järgmine:

 Karl-Markus Tamm M 3.8 kehaline kasvatus
 Mirjam Muster N 4.2 kirjandus
 Kalle M 2.6 puudub
 Sirje Lind N 5.0 kunst
 Kristjan Karu M 2.0 kirjandus
 Kuno Jõesaar 4.8 matemaatika
 Jaagup Tiik M 4.3 kehaline kasvatus
 Pirjo Sinilaid N 3.3 kirjandus

Koosta programm, mis loeb failist andmed sisse ja loob iga õpilase kohta ühe Õpilane-tüüpi isendi. Juhul, kui faili real olevad andmed on puudulikud, siis peab programm andma teada, et sellise reaga pole võimalik klassi Õpilane isendit luua. Pärast andmete sisselugemist ja õpilaste salvestamist loo klassi Kool isend ja anna talle parameetriteks kooli nimi "Tartu Kesklinna Gümnaasium" ning õpilaste järjendiks failist sisseloetud andmete põhjal moodustatud järjend.

Näide

>>> kool.kuva_info()

Näidisväljund

 Rida failis: Kalle M 2.6 puudub on puudulike andmetega
 Rida failis: Kuno Jõesaar 4.8 matemaatika on puudulike andmetega

 Koolis Tartu Kesklinna Gümnaasium õpivad järgmised õpilased:
 Karl-Markus Tamm M 3.8 kehaline kasvatus
 Mirjam Muster N 4.2 kirjandus
 Sirje Lind N 5.0 kunst
 Kristjan Karu M 2.0 kirjandus
 Jaagup Tiik M 4.3 kehaline kasvatus
 Pirjo Sinilaid N 3.3 kirjandus

Lisa 1. Lisa klassile Kool meetod õppeainete_graafik, mis loob ja kuvab tulpdiagrammi, kus on kujutatud õpilaste lemmikained.

Lisa 2. Lisa klassile Kool meetod keskmine_hinne, mis väljastab ekraanile mõlema soo õpilaste arvu ja nende keskmise hinde ümardatult sajandikeni.

 Meessoost õpilasi on kokku 3 ning nende keskmine hinne on 3.37.
 Naissoost õpilasi on kokku 3 ning nende keskmine hinne on 4.17.
  • 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