24.2.3.24010450. Napisati program koji traži da se unesu koeficijenti a, b i c kvadratne jednačine a x2 + b x + c = 0 a koji zatim računa i ispisuje njena rješenja. Program napraviti tako da se pri svakom unosu koeficijenta uvijek čitaju “svježi” podaci, bez obzira što je pri unosu prvog koeficijenta korisnik eventualno odmah unio tri podatka (uputa: koristite cin.ignore). Predvidjeti i mogućnost postojanja kompleksnih rješenja. Ukoliko su rješenja realni brojevi, rezultat treba da se ispiše u formi realnog broja, a ne kao uređeni par realnih brojeva. Program treba da predvidi i sve specijalne slučajeve (za a = 0, jednačina se svodi na linearnu, tako da imamo samo jedno rješenje, ukoliko je ujedno b <> 0; za a = b = 0 i c <> 0 nema rješenja, dok je za a = b = c = 0 jednačina identički zadovoljena za svaku vrijednost x).

Opis rješenja:

Listing programa:

#include <iostream>
#include <conio.h>
#include <cmath>
#include <complex>
using namespace std;
int main(){
double a,b,c,d;
complext;
cin>>a>>b>>c;
d=b*b-4*a*c;
if(a!=0){
    if(d>=0)cout<<"x1="<<(-b+sqrt(d))/(2*a)<<" ,\nx2="<<(-b-sqrt(d))/(2*a);
    else{
        t=complex(d);
        cout<<"x1="<<complex((-b+sqrt(t))/(2*a))<<" ,\nx2="<<
        complex((-b-sqrt(t))/(2*a));
        }
    }
else if(b!=0)cout<<"linearno rj.x="<<(-c)/b;
    else if(c!=0)cout<<"nema rj.";
        else cout<<"beskonacno rj.";
getch();
return 0;
}

Ispis na ekranu:

Riješeni zadaci 2    Index