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

Programming in C++ 2023/24 spring

  • 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öö

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

Koduülesanded

1. Andmed klaviatuurilt

Koosta programm, mis salvestab klaviatuurilt sisestatud täisarvud (iga täisarv eraldi real) sõnastikku map<int, size_t>, kus võtmeks on sisestatud täisarv ja väärtuseks esinemise sagedus. Programm peab töötama ka vigase sisendiga nii kaua, kuni klaviatuurilt sisestatakse info lõpp (Ctrl+Z või Cntrl+D sõltuvalt operatsioonisüsteemist). Peale täisarvude sisselugemist kuvada sõnastiku sisu ekraanile.

Näide 1 programmi kasutamisest:

Sisesta täisarve, iga arv eraldi real:
2
3
2
^D
Sisestatud täisarvude sagedused:
2	2
3	1

Näide 2 programmi kasutamisest:

Sisesta täisarve, iga arv eraldi real:
-4
2
r
Vigane sisend stoi
-4
err
Vigane sisend stoi
5
^D
Sisestatud täisarvude sagedused:
-4	2
2	1
5	1

2. Ruutvõrrand

NB! Ruutvõrrandi lahendamisel kasutatav matemaatiline mõiste on diskriminant, kuid antud ülesande programmiosas kasutame determinandi mõistet. Ruutvõrrandi

 

diskriminant on on samaväärne järgmise determinandiga:

 

Koosta erindiklassimall NegatiivneDeterminant, mis on päritud klassist exception. Klassis on kahe parameetriga konstruktor (string, T), kus T on arvuline tüüp.

Koosta mallifunktsioon

template <typename T>
T determinant(T a, T b, T c)

ruutvõrrandi diskriminandi arvutamiseks. Funktsioon arvutab diskriminandi (b*b - 4*a*c) ja tagastab selle. Negatiivse väärtuse korral viskab funktsioon erindi NegatiivneDeterminant.

Funktsioonis main küsida kasutajalt ruutfunktsiooni kordajate väärtused ja arvutada ruutvõrrandi lahendid ja kuvada ekraanile. Kui diskriminant on negatiivne, kuvada vastav teade.

Näide 1. Kasutaja sisestas kordajad 1 1 -1

Kordajad on: 1 1 -1
Ruutvõrrandi lahendid on: 0.618034 ja -1.61803

Näide 2. Kasutaja sisestas kordajad 1 1 1

Kordajad on: 1 1 1
Negatiivne determinant: -3
Reaalarvulist lahendit ei leidu!

Täiendada ülesannet olukorra jaoks, kus kordajad loetakse reakaupa failist (igal real kolm arvu) ja iga rea korral lahendatakse vastav ruutvõrrand.

  • 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