Institute of Computer Science
  1. Courses
  2. 2022/23 spring
  3. Programming in C++ (LTAT.03.025)
ET
Log in

Programming in C++ 2022/23 spring

  • Pealeht
  • 1. Muutujad ja andmetüübid
  • 2. Keele põhikonstruktsioonid I
  • 3. Keele põhikonstruktsioonid II
  • 4. Funktsioonimallid, failitöötlus
  • 5. OOP I Klassid
  • 6. OOP II Pärilus ja polümorfism
  • 7. Kontrolltöö 1?

Seitsmendal nädalal toimub 1. kontrolltöö

7.1 1. kontrolltöö näide?
  • 9. Dünaamiline mäluhaldus II
  • 10. Klassimallid
  • 11. STL andmestruktuurid I
  • 12. STL andmestruktuurid II
12 STL andmestruktuurid II
12.1 Kodutöö
12.2 Harjutused
12.3 Videolingid
  • 13. Erindite töötlemine
  • 14. Täiendavad teemad
  • 15. Kontrolltöö 2?

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

15.1 2. kontrolltöö näide?
  • 16. Projekti esitlus?
  • Viiteid
  • Vanad materjalid
  • Praktikumid
  • Juhendid
  • Viited

Koduülesanded

NB! Mallifunktsiooonid salvestada faili lugemine.h

1. Hulk objektidest

Koosta klass Hoia, kus on üks isendiväli, mis hoiab string tüüpi väärtust. Konstruktorid ja muud funktsioonid koosta vajadusel. Koosta funktsioon loe_hoia järgmise signatuuriga

std::set<Hoia>& loe_hoia(std::string failinimi, std::set<Hoia>& st); 

Funktsioon loeb failist sisse sõned ja teeb iga sõne korral Hoia objekti ja lisab selle funktsiooni parameetris näidatud hulka.

Näide 1. Kui andmefailis andmed.txt on read

1 2 4 5 2
3 4 5

siis programmilõigu töö tulemuseks on

set<Hoia> s1{};
s1 = loe_hoia("andmed.txt", s1);
for (auto el : s1) {
    cout << el << ' ';
}
1 2 3 4 5 

Näide 2. Kui andmefailis andmed1.txt on read

üks kaks kolm kaks
neli üks kaks

siis programmilõigu töö tulemuseks on

set<Hoia> s1{};
s1 = loe_hoia("andmed1.txt", s1);
for (auto el : s1) {
    cout << el << ' ';
}
kaks kolm neli üks  

Vihje. Klassis Hoia tuleb üle defineerida operator<, et Hoia objektid oleksid võrreldavad. See välistab sama sisuga objektide lisamise hulka.

2. Sõnade sagedus

Koosta mallifunktsioon sõnade sagedustabeli leidmiseks. Funktsioon saab ette faili nime ja viite mallitüüpidega sõnastikule. Funktsiooni signatuur on järgmine:

template<typename T1, typename T2>
std::map<T1, T2>& loe_failist(std::string failinimi, std::map<T1, T2>& m );

Funktsioon peab lugema failist reakaupa teksti, eraldama sõnadeks, teisendama väikesteks tähtedeks ja eemaldama kirjavahemärgid. Näiteks, faili sisu

Lumehelbeke tasa, tasa, holjub aknale, tasa, tasa! Mis hõljub tasa?

korral on sõnastiku sisu peale funktsiooni tööd järgmine:

aknale : 1
holjub : 2
lumehelbeke : 1
mis : 1
tasa : 5
  • 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