Koduülesanded
Esitada failid erindid.h ja erindid.cpp.
1. Andmed klaviatuurilt
Kirjuta funktsioon void loe_klaviatuurilt(), 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.
NB! Kui klaviatuurilt info lõpu kinnipüüdmine on keeruline (nt CLionis), siis võib käivitada testprogrammi terminaliaknast.
Näide 1 funktsiooni rakendamisest:
Sisesta täisarve, iga arv eraldi real: 2 3 2 ^D Sisestatud täisarvude sagedused: 2 2 3 1
Näide 2 funktsiooni rakendamisest:
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. Ruutvõrrandi
![]() |
diskriminant on on samaväärne järgmise determinandiga:
![]() |
Kirjuta erindiklassimall NegatiivneDiskriminant, mis on päritud klassist exception. Klassis on kahe parameetriga konstruktor (string, T), kus T on arvuline tüüp. Klassis on funktsioonid getTeade() ja getDiskriminant().
Kirjuta mallifunktsioon
template <typename T> T diskriminant(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 NegatiivneDiskriminant.
Kirjuta funktsioon std::string ruutvorrand(double a, double b, double c), mille parameetrid on ruutvõrrandi kordajad. Funktsioon tagastab sõne ruutvõrrandi kordajate ja lahendite kohta (vt näide).
cout << ruutvorrand(1, -1, -6) << '\n'; cout << ruutvorrand(1, -1, 6); | Kordajad on: 1.00 -1.00 -6.00 Ruutvõrrandi lahendid on: 3.00 -2.00 Kordajad on: 1.00 -1.00 6.00 Negatiivne diskriminant: -23.00 Reaalarvulist lahendit ei leidu! |
Et vältida std::to_string poolt tagastatud täpsust (kuus kohta peale koma), saab kasutada päises sstream olevat klassi ostringstream.

