Este programa calcula las raices de una ecuacón de segundo grado (x^2 + x + 1 =0).
Calcula tambien las racices en los numeros complejos. :wink:

El problema es que te lo da en decimales :roll: , pero bueno, si sabemos un poco de razones trigonometricas (al final de la pagina), sabremos a que numero irracional perteneze la aproximación.

Se precisara de un compilador C++ para complilar; puedes descargarte uno aquí (gratis)

Ahí va: :wink:

Código :

#include <stdlib.h>
#include <math.h>
#include <iostream>
using namespace std;


int main(void) {
   double a, b, c, res1, res2, arrel, discriminante, x, y;
   
   
   cout <<"Este programa solicita calcula las rizes de una equacion de segundo grado." << endl;cout << endl;cout << endl;
   
   cout << "Considerando a(x^2) + bx + c = 0" << endl<<endl<<endl;
   cout << "Introduzca el factor (a)" << endl;
   cin >> a;
   
   
   cout << "Introduzca el factor (b)" << endl;
   cin >> b;

   if ((a==0)&&(b==0)) {
                       cout << "Para que sea una equacion, debe existir X [a>0 y/o b>0]" <<endl;cout<<endl;
                       cout <<endl<<endl<<endl;
                       goto end;
                       }
   cout << "Introduzca el valor numerico indivudual (c): " << endl;
   cin >> c;
   
   
   if (a==0) {
             res1=-c/b;
             cout << endl;cout << endl;cout << endl;
             cout << "Se trata de una equacion de 1r grado de resltado" <<endl;
             cout << "x = " <<res1 <<endl;
             }
   else {
        discriminante = (pow(b,2) - 4*a*c);
        if (discriminante==0) {
                              res1=(-b)/(2*a);
                              cout << endl;cout << endl;cout << endl;
                              cout << "Se trata de una equacion de segundo grado de ambas raizes" <<endl;
                              cout << "x = " <<res1 <<endl;
                              }
        else {
        arrel=sqrt(sqrt(discriminante*discriminante));
        if (discriminante>0){
                             res1= (b*(-1) - arrel)/(2*a);
                             res2= (b*(-1) + arrel)/(2*a);
                             cout << endl;cout << endl;cout << endl;
                             cout << "Se trata de una equacion de segundo grado de resultados:" << endl;
                             cout << "x (1) = "<< res1 <<endl;
                             cout << "x (2) = "<< res2 <<endl;
                            }
        else{
             x=-b/(2*a);
             y=arrel/(2*a);
             cout << endl;cout << endl;cout << endl;
             cout << "El resultdo son dos raices complejas:"<<endl;
             cout << "Raiz 1 = "<< x << " + " << y << "i"<<endl;
             cout << "Raiz 2 = "<< x << " - " << y << "i"<<endl;
             }
             }
             }
   end:
   cout << endl;cout << endl;cout << endl;system("pause");
}