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
11 OOP I Klassid
11.1 Kodutöö
11.2 Harjutused
11.3 Videolingid
  • 12. OOP II Pärilus ja polümorfism
  • 13. Erindite töötlemine
  • 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. PahupidiArv

Loo klass PahupidiArv, mis käitub sarnaselt sisseehitatud täisarvutüübiga int, välja arvatud see, et:

  • liitmine ja lahutamine on vastupidised;
  • korrutamise ja jagamise tähendus on vastupidine.

Klass PahupidiArv peaks vastama järgmistele nõuetele:

  • klassis on arvu hoidmiseks privaatne int-tüüpi isendimuutuja, mille vaikeväärtus on 0;
  • klassis on isendimuutuja jaoks get ja set meetod;
  • klassis on konstruktor, mille parameetriks on int-tüüpi arv. Konstruktor initsialiseerib isendimuutuja;
  • klassi objekti peab saama luua ka vaikekonstruktoriga;
  • klassis on ka koopiakonstruktor (copy constructor) ja teisalduskonstruktor (move constructor);
  • klassis on üle defineeritud kopeerimise ja teisaldamise operaatorid (copy assignment ja move assignment);
  • klassis on destruktor (destructor);
  • klassis defineeritakse üle järgmised operaatorid: liitmine, lahutamine, korrutamine, jagamine, +=, -=, *= ja /=;
  • klassis defineeritakse üle operaator <<.

Vormistada selliselt, et deklaratsioonid on päisefailis pahupidiarv.h, definitsioonid failis pahupidiarv.cpp ja funktsioon main on eraldi failis. Testida oma klassi.

2. Ratsionaalarv

Loo klass Ratsionaalarv, mis esitab ratsionaalarvu (st arvu kujul lugeja/nimetaja kus lugeja ja nimetaja on täisarvud).

Klass peaks vastama järgmistele nõuetele:

  • klassil on privaatsed PahupidiArv-tüüpi isendimuutujad lugeja ja nimetaja hoidmiseks;
  • klassil on isendimuutujate jaoks get ja set meetodid;
  • klassil on ühe PahupidiArv-tüüpi parameetriga konstruktor, mis initsialiseerib lugeja. Nimetaja vaikeväärtus on arvule 1 vastav PahupidiArv-tüüpi objekt;
  • klassil on kahe PahupidiArv-tüüpi parameetriga konstruktor, mis initsialiseerib lugeja ja nimetaja. Kui nimetajale vastab 0, siis omistatakse nimetajaks arvule 1 vastav PahupidiArv-tüüpi objekt;
  • klassi objekti peab saama luua ka vaikekonstruktoriga, kus lugejaks on arvule 0 vastav PahupidiArv-tüüpi objekt ja nimetajaks arvule 1 PahupidiArv-tüüpi objekt;
  • klassil on ka koopiakonstruktor (copy constructor) ja teisalduskonstruktor (move constructor);
  • klassil on destruktor (destructor);
  • klassis defineeritakse üle liitmise, lahutamise, korrutamise ja jagamise operaatorid;
  • klassis defineeritakse üle operaator <<.

Vormistada selliselt, et deklaratsioonid on päisefailis ratsionaalarv.h, definitsioonid failis ratsionaalarv.cpp ja funktsioon main on eraldi failis. Testida oma klasse main funktsioonis.

3. Raamatud

Kirjuta programm, mis võimaldab hoida infot raamatute kohta (id, pealkiri, autor, hind). Programmis on klass Raamat ja raamatuid hoitakse andmekogumis vector<Raamat>. Klassis on erinevad konstruktorid ja on üle defineeritud operaator << raamatu info väljastamiseks mõistlikul viisil.

Programm peab võimaldama järgmisi tegevusi:

  • raamatute sisselugemine failist andmekogumisse (tekstifaili struktuur mõtle ise välja);
  • raamatu lisamine andmekogumisse (kasutaja käest küsitakse infot);
  • raamatu eemaldamine andmekogumist pealkirja järgi;
  • raamatute otsimine andmekogumist autori järgi.

Attach:Template_project.zip

  • 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