Estratto del documento

#include <cstdlib>

#include <iostream>

#include <complex>

#include <cmath>

#include <utility>

using namespace std;

// Definizione del tipo adatto a contenere le radici dell'equazione

typedef pair < complex <double>, complex <double> > Radici;

Radici EquazioneIIgrado(double a, double b, double c);

main()

{ // Test della funzione EquazioneIIgrado

Radici soluzione;

double a, b, c;

cout << "\n\tTest della funzione che risolve un'equazione di II grado\n" <<

endl;

cout << "Scrivi i coefficienti a, b e c: ";

cin >> a >> b >> c;

soluzione = EquazioneIIgrado(a, b, c);

cout << "x1: = " << soluzione.first << endl;

cout << "x2: = " << soluzione.second << endl;

system("pause");

}

Radici EquazioneIIgrado(double a, double b, double c)

{

Radici s; // Conterrà la coppia di numeri complessi, radici dell'equazione

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

if(delta == 0)

// Soluzioni reali e coincidenti (parte immaginaria 0)

s.first = s.second = complex <double> ( -b / (2 * a) );

else if(delta > 0) {

// Soluzioni reali (parte immaginaria 0)

s.first = complex <double> ( (-b - sqrt(delta)) / (2 * a) );

s.second = complex <double> ( (-b + sqrt(delta)) / (2 * a) );

}

else {

// Soluzioni complesse coniugate

s.first = complex <double> ( -b, -sqrt(-delta) ) / (2 * a);

s.second = complex <double> ( -b, sqrt(-delta) ) / (2 * a);

}

return s;

}

Anteprima
Vedrai una selezione di 1 pagina su 1
Programma C++: soluzioni equazione di secondo grado (complex) Pag. 1
1 su 1
Sintesi

Implementazione di una funzione che risolve un'equazione di II grado con radici complesse

Uso del template standard complex e di pair.

D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi