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
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 determinandi arvutamiseks. Funktsioon arvutab determinandi (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 determinant 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.