martedì 20 gennaio 2015

Programma risolutivo delle equazioni di 2° grado

Il programma è stato scritto in C++ con il compilatore Dev C++.
L'algoritmo è semplificato e risolve le equazioni di secondo grado, pure, spurie, monomie e complete ma non quelle che ammettono una soluzione solo nei numeri complessi. Ulteriori sviluppi verranno eseguiti in seguito per estendere le capacità per risolvere le equazioni in quest'ultimo caso.

Qui di seguito riporto il codice.

#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])

 {
// RISOLUZIONE EQUAZIONI DI SECONDO GRADO


float a,b,c;     //dichiarazione variabili
        float r1, r2;               
    
    //inserire coefficienti
    
    cout << "Inserire il coefficiente del quadrato"<< endl;
    cin >> a;
    cout << "Inserire il coefficiente del termine di primo grado" << endl;
    cin >> b;
    cout << "Inserire il termine noto" << endl;
    cin >> c;
    
    if ((b*b-4*a*c)<0)
    {
       cout << "L'equazione non ha soluzione nei numeri reali" << endl; //impossibile
    }
    else
   {
if ((b==0) && (c!=0))
      {
         cout << "L'equazione e' pura" << endl;
         
  r1=sqrt(-c/a); //calcolo se è pura
 
  cout << "Le due soluzioni sono " << r1 << " " << -r1 << endl; //eqn pura
      }
      if ((c==0) && (b!=0))
          {cout << "L'equazione e' spuria" << endl;
           
r1=b/a;

cout << "Le due soluzioni sono " << "0" << " " << -r1 << endl; //eqn spuria
          }
          if ((c==0) && (b==0))
             {
             
 cout << "L'equazione e' monomia" << endl;
 cout << "La soluzione e' 0" << endl; //eqn monomia
             
 }
            if ((b!=0) && (c!=0))
            {
                 cout << "L'equazione e' completa" << endl;
                 
  r1=(-(b)+(sqrt(b*b-4*a*c)))/2*a; //calcolo
      r2=(-(b)-(sqrt(b*b-4*a*c)))/2*a;

 cout << "Le due soluzioni sono " << r1 << " " << r2 << endl;   //eqn completa
    }
}

system ("pause");
return 0;
}


Per ogni suggerimento o miglioria metto a disposizione la mia e-mail facilmente trovabile nel blog.

Nessun commento:

Posta un commento