// Programma per la risoluzione di una equazione di secondo grado in forma // a*x**2 + b*x + c = 0 data la terna di coefficienti (a,b,c). // // Risolve l'equazione per tutte le possibili terne di // coefficienti, analizzando tutti i casi possibili. #include #include using namespace std; #define eps 1.e-5 // Definizione di una costante int main(){ double a, b, c; double x1, x2; cin >> a; cin >> b; cin >> c; while ( ! cin.eof() ) { // Risoluzione dell'equazione cout << "------------------------------------" << endl; cout << "a = " << a << " b = " << b << " c = " << c << endl; if ( fabs(a) < eps ) { if ( fabs(b) < eps ) { if ( fabs(c) < eps ) { cout << "L'equazione e` un'identita`: 0 = 0" << endl; } else { cout << "L'equazione non ha senso" << endl; } } else { x1 = -c/b; cout << "x = " << x1 << endl; } } else { double Delta = b*b - 4*a*c; if ( fabs(Delta) < eps ) { x1 = -b/(2*a); cout << "x = " << x1 << endl; } else if ( Delta < 0. ) { cout << "Non esistono soluzioni reali" << endl; } else { x1 = ( -b - sqrt( Delta ) )/( 2.*a ); x2 = ( -b + sqrt( Delta ) )/( 2.*a ); cout << "x = " << x1 << ", " << x2 << endl; } } // Lettura dei parametri cin >> a; cin >> b; cin >> c; } return 0; }