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
.