Arvutiteaduse instituut
  1. Kursused
  2. 2024/25 kevad
  3. Programmeerimine keeles C++ (LTAT.03.025)
EN
Logi sisse

Programmeerimine keeles C++ 2024/25 kevad

  • Pealeht
  • 1. Muutujad ja andmetüübid
  • 2. Keele põhikonstruktsioonid I
  • 3. Keele põhikonstruktsioonid II
  • 4. Klass, struktuur, mallid
  • 5. Dünaamiline mäluhaldus I
  • 6. Dünaamiline mäluhaldus II
  • 7. Kontrolltöö 1

Seitsmendal nädalal toimub 1. kontrolltöö

1. kontrolltöö näidis on Moodles

  • 8. Dünaamiline mäluhaldus III
  • 9. STL andmestruktuurid I
  • 10. STL andmestruktuurid II
  • 11. OOP I Klassid
  • 12. OOP II Pärilus ja polümorfism
  • 13. Erindite töötlemine
13 Erindite töötlemine
13.1 Kodutöö
13.2 Harjutused
13.3 Videolingid
  • 14. Täiendavad teemad
  • 15. Kontrolltöö 2

Viieteistkümnendal nädalal toimub 2. kontrolltöö

2. kontrolltöö näidis on Moodles

  • 16. Projekti esitlus
  • Mõned viited - vajalikud kaaslased
  • Vanad materjalid
  • Juhendid
  • Viited

Harjutusülesanded

1. Eri tüüpi erindid

a) Kirjuta funktsioon viska, millel on üks täisarvuline parameeter ja mis teeb järgmist:

  • kui x = 1, siis visatakse int tüüpi erind
  • kui x = 2, siis visatakse string tüüpi erind väärtusega "paar"
  • muidu ei tehta midagi

b) Funktsioonis main tehakse vektori vector<int>{0, 1, 2, 3} iga elemendi korral järgmist:

  • pöördutakse viska (x) ja kuvatakse ekraanile vektori element ja "korras\n". Püüda kinni int ja string tüüpi erindid. Erindikäsitleja peab kuvama ekraanile erindi tüübi (nt int) ja väärtuse.
  • Programm peab normaalselt oma tööd jätkama (kuni kogu vektor on läbi käidud).

2. Tühjad arvud

Koostada erindiklassid ArvuPole ja PoleArv, mis on exception alamklassid. Luua klass ArvuLugeja, kus on funktsioon, mis võtab parameetriks sõne ja tagastab vector<int>. Sõne peaks sisaldama komadega eraldatud täisarve.

  • Kui sõnes komade vahel arv puudub (nt 1,2,,4), siis visata erind ArvuPole. Erindi püüdmisel kuvada info "Arvu ei ole".
  • Kui komade vahel olev info ei ole täisarvuks teisendatav (nt 1,ab,,4), siis visata erind "Pole arv". Erindi püüdmisel kuvada info "Pole arvuks teisendatav" koos vastava sõnega.

Kõik erindid tuleb kinni püüda ja jätkata tööd sõne lõpuni. Funktsioonis main võetakse käsurealt sõne, käivitatakse sellega arvulugeja funktsioon ja kuvatakse saadud vektor ekraanile.

3. Pitsatellimus

Veebist saab koju erinevaid pitsasid tellida. Ühe tellimusega saab tellida ka mitu erinevat pitsat. Teenuse pakkuja lubab, et tellija saab pitsad kätte maksimaalselt poole tunniga. Kui tellija peab rohkem ootama, siis ei ole vaja tellimuse eest maksta. Pitsad saadetakse välja tellimuste saabumise järjekorras. Ülesanne seisneb pitsatellimusi käsitleva programmi koostamises. Programm peab vastama alltoodud nõuetele (isegi kui need kummalised tunduvad). Programm peab sisaldama klasse Pitsa, Tellimus, erindiklassi LiigaPikkOotamineErind ning peaklassi. Peaklassis luuakse pitsad ja tellimused ning simuleeritakse tellimuste vastuvõttu ja pitsade vedu.

  • Klass Pitsa sisaldab privaatset string-tüüpi isendivälja pitsa nimetuse jaoks ning privaatset float-tüüpi isendivälja pitsa hinna jaoks. Klassis on konstruktor, mis väärtustab vastavad väljad. Kõigi isendiväljade jaoks on vastavad get-funktsioonid. Peab olema üle defineeritud operator<<.
  • Klassis Tellimus on privaatsed isendiväljad järgmise info jaoks: tellija (string), vektor kõigi pitsade jaoks, ootamise aeg (int). Klassis on konstruktor, mis väärtustab vastavad väljad. Peab olema üle defineeritud operator<<. Klassis on funktsioon maksumus, mis tagastab tellitud pitsade maksumuse. Kui oli vaja oodata rohkem kui 30 minutit, siis selles funktsioonis tuleb visata erind LiigaPikkOotamineErind (koostada erindiklass LiigaPikkOotamineErind).
  • Funktsioonis main luua tellimuste väljasaatmise järjekorra tarbeks üks vektor.
  • Failis tellimused.txt on igal real iga tellimuse jaoks kirjas tellija ning tellitud pitsad koos hindadega. Eraldajaks on semikoolon. Pitsa ja hinna eraldajaks on /.

Nt. Peeter Pedajas;Americana/3.80;Pizza Picante/6.90.

Fail koosta ise.

  • koosta funktsioon failist tellimuste andmete lugemiseks. Luua pitsad (Pitsa-tüüpi objektid) ja tellimused (Tellimus-tüüpi objektid, ootamise aeg genereerida juhuslikult vahemikust [10-35]) ning paigutada tellimused väljasaatmise järjekorda.
  • Väljastada ekraanile tellimuste andmed. Iga tellimuse korral väljastada ekraanile tellimuse maksumus. Liiga aeglase veo korral (erindi LiigaPikkOotamineErind püüdmisel) kirjutada tellimuste andmed tekstifaili liigaAeglased.txt. Arvutada ja väljastada ekraanile kõigi tellimuste eest saadud raha.
  • 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