Cześć,
zadanie jest proste:
Napisać program rozwiązujący równanie kwadratowe (postaci ax2+bx+c=0) o podanych przez użytkownika współczynnikach całkowitych (ja sobie zrobiłem rzeczywiste, bo int-y też na tym chodzą, a mam większe spektrum możliwości).
Oto moje rozwiązanie - wg mnie działa, prosiłbym o uwagi, jeśli można coś zrobić bardziej elegancko, profesjonalnie i jeśli coś jest źle, to o wytknięcie błędu. Swoją drogą jak się robi liczby zespolone w C++?
[jestem na początku przygodny z C++].
Aha, jak wychodzi piewiastek = 0, to wyświetla -0, ktoś z Was wie jak sobie z tym poradzić?
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double a, b, c, x, delta, x1, x2;
cout << "Podaj wspolczynniki trojmianu kwadratowego \na: ";
cin >> a;
cout <<"b: ";
cin >> b;
cout << "c: ";
cin >> c;
if (a == 0)
cout << "To nie jest rownanie kwadratowe, tylko liniowe !!!";
else
{
delta = pow(b,2) - 4*a*c;
if (delta > 0)
{
x1 = (-b - sqrt(delta)) / 2*a;
x2 = (-b + sqrt(delta)) / 2*a;
cout << "Delta: " << delta << endl <<
"x1: " << x1 << " oraz x2: " << x2;
}
else if (delta == 0)
{
x = -b / 2*a;
cout << "Delta: " << delta << endl << "Rozwiazanie jest podwojne: " <<
endl << "x: " << x;
}
else
cout << "Delta: " << delta << endl << "nie ma rozw w swiecie liczb rzeczywsitych";
}
return 0;
}