Encuentra las raíces de la ecuación cuadrática en C ++

En este programa, vamos a encontrar las raíces de la ecuación cuadrática por el manejo de todos los casos posibles en C ++ .

Los “raíces” de la ecuación cuadrática son los números que satisfacen la ecuación de segundo grado. Siempre hay dos raíces class cualquier ecuación cuadrática, aunque a veces pueden coincidir.

Las raíces pueden ser reales o imaginarios.

Los raíces de cualquier ecuación cuadrática está dada por: x = [-b +/- sqrt (-b ^ 2 – 4ac)] / 2a .

Algoritmo:

  1. Crear una raíces for con coeficientes un , b y c y raíces r1 y r2 como miembros de datos y GetData () , determinante () y checkdeterminant () como funciones miembro.
  2. GetData () toma la entrada de usuario e inicializar los miembros de datos un , b , c y definir determinante () de modo que pueda calcular (b * b) – (4 * a * c) . Si el determinante es 0, entonces las raíces deben ser iguales por lo que les asignan el valor -b / 2a e imprimir el resultado. Si el determinante es positivo raíces luego debe ser clara y real para calcular dos raíces -b + sqrt (d) / 2a y -b-sqrt (d) / 2a e imprimir el resultado. Si el determinante es negativo raíces luego debe ser imaginaria tan real y calcular pieza virtual -b / 2a y sqrt (-d) / 2a y resultado de la impresión.
  3. Crear un objeto r de raíces class.
  4. de entrada utilizando los coeficientes de los leedato () .
  5. Compute determinante utilizando determinante () .
  6. Comprobar determinante e imprimir las raíces utilizando checkdeterminant () .

código C ++ para encontrar las raíces de la ecuación cuadrática

#include <iostream>
#include <cmath>
using namespace std;
//class
class roots {
int a, b, c;
float r1, r2;
public:
void getdata();
int determinant();
void checkdeterminant(int);
};
void roots::getdata() {
cout << "Enter value of coefficient of x^2: ";
cin >> a;
cout << "Enter value of coefficient of x: ";
cin >> b;
cout << "Enter value of coefficient of 1: ";
cin >> c;
}
int roots::determinant() {
int d = b * b;
d -= (4 * a * c);
return d;
}
void roots::checkdeterminant(int d) {
if (d == 0) {
cout << "Real and equal rootsn";
r1 = (-1 * b);
r1 /= (2 * a);
r2 = r1;
cout << "Roots : " << r1 << " and " << r2 << endl;
}
else if (d > 0) {
cout << "Real and distinct rootsn";
r1 = (-1 * b) + sqrt(d);
r1 /= (2 * a);
r2 = (-1 * b) - sqrt(d);
r2 /= (2 * a);
cout << "Roots : " << r1 << " and " << r2 << endl;
}
else {
cout << "Imaginary roots" << endl << endl;
r1 = (-b)/(2*a);
r2 = (sqrt(-d))/(2*a);
cout << "Roots : " << r1 << " + i" << r2 ;
cout << " and " << r1 << " - i" << r2 << endl<<endl;
}
}
int main() {
roots r;
r.getdata();
cout << endl;
int d = r.determinant();
r.checkdeterminant(d);
cout << endl;
return 0;
}

salida

First run:
Enter value of coefficient of x^2: 1
Enter value of coefficient of x: 4
Enter value of coefficient of 1: 4
Real and equal roots
Roots : -2 and -2
Second run:
Enter value of coefficient of x^2: 1
Enter value of coefficient of x: -5
Enter value of coefficient of 1: 6
Real and distinct roots
Roots : 3 and 2
Third run:
Enter value of coefficient of x^2: 1
Enter value of coefficient of x: 3
Enter value of coefficient of 1: 4
Imaginary roots
Roots : -1 + i1.65831 and -1 - i1.65831


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *