Informatică, întrebare adresată de btina4855, 8 ani în urmă

Să se scrie un program care să rezolve ecuația de gradul II, ax

2 + bx + c = 0, a,b și c sunt
numere reale citite de la tastatură. Se va ține cont și de cazul a=0 și se transformă în ecuație de
gradul I: bx + c = 0.


radu9614: Vrei in c++? Cum ar trebui sa afisez rezultatul? Pur si simplu sa afisez radacinile?
btina4855: Prin pascal ((
radu9614: Nu stiu pascal

Răspunsuri la întrebare

Răspuns de radu9614
4

Răspuns:

#include <iostream>

#include <math.h>

using namespace std;  

int main()

{

   float a = 0, b = 0, c = 0, x1 = 0, x2 = 0, delta = 0;

   cin >> a >> b >> c;

   if( a != 0 )

   {

       delta = b * b - 4 * a * c;

       x1 = ( ( -1 ) * b + sqrt( delta ) ) / ( 2 * a );

       x2 = ( ( -1 ) * b - sqrt( delta ) ) / ( 2 * a );

       if( delta > 0 )

       {

           cout << min( x1, x2 ) << " " << max( x1, x2 );

       }

       else if( delta == 0 )

       {

           cout << min( x1, x2 );

       }

       else

       {

           cout << "Nu exista solutii reale.";

       }

   }

   else

   {

       cout << float( ( ( -1 ) * c ) / b );

   }

   return 0;

}

Explicație:

Am facut o rezolvare care iti ia in calcul si cand a = 0, si cand nu exista radacini reale, sau exista doar una. Daca nu iti trebuie toate astea, scoate tu. Also, am presupus ca poti sa ai si numere care nu sunt intregi, de aia sunt float. Daca sunt nelamuriri sau greseli spune-mi.

Alte întrebări interesante