Código:
#include <math.h>//Para usar pow y sqrt
#include <iostream>
using namespace std;
void main()
{
int repetir=1,fraccionario;
char opcion;
float numerador,denominador,a,b,c,x1,x2,discri…
do //Ciclo do while para repetir el programa si el usuario lo desea
{
cout<<"Este programa sirve para resolver ecuaciones de segundo grado"<<endl<<endl;
cout<<"\xA8 \bQue tipo de ecuaci\xA2n de segundo grado desea resolver?"<<endl<<endl;
cout<<"De la forma: ax\xFD+bx+c=0, Presionar A"<<endl;
cout<<"De la forma: ax\xFD+c=0, Presionar B"<<endl;
cout<<"De la forma: ax\xFD+bx=0, Presionar C"<<endl;
cout<<"Opci\xA2n: ";
cin>>opcion;
switch(opcion)
{
case 'A': case 'a':
cout<<"\xA8 \bLa ecucacion contiene coeficientes fraccionarios?"<<endl;
cout<<"En caso de que si presione 1"<<endl;
cout<<"En caso de que no presione 2"<<endl;
cin>>fraccionario;
system("cls");
if (fraccionario==1)//Validacion en caso de que la ecuacion tenga exponentes fraccionarios
{
cout<<endl<<"Ingrese el valor del coeficiente del termino cuadratico: ";
cin>>numerador>>denominador;
a=numerador/denominador;
numerador=0;
denominador=0;
cout<<endl<<"Ingrese el valor del coeficiente del termino lineal: ";
cin>>numerador>>denominador;
b=numerador/denominador;
numerador=0;
denominador=0;
cout<<endl<<"Ingrese el valor del coeficiente del termino independiente: ";
cin>>numerador>>denominador;
c=numerador/denominador;
numerador=0;
denominador=0;
discriminante=pow(b,2)-4*a*c;
}
if (fraccionario==0)
{
cout<<endl<<"Ingrese el valor del coeficiente del termino cuadratico: ";
cin>>a;
cout<<endl<<"Ingrese el valor del coeficiente del termino lineal: ";
cin>>b;
cout<<endl<<"Ingrese el valor del coeficiente del termino independiente: ";
cin>>c;
discriminante=pow(b,2)-4*a*c;
}
if (discriminante>0)
{
x1=((-b)+(sqrt(discriminante)))/(2*…
x2=((-b)-(sqrt(discriminante)))/(2*…
}
if (discriminante==0)
{
x1=(-b)/(2*a);
x2=x1;
}
if (discriminante<0)
{
x1=((-b)/(2*a))+(sqrt(-discriminant…
x2=((-b)/(2*a))-(sqrt(-discriminant…
cout<<endl<<"Las raices de la ecuacion son:"<<endl<<endl;
if (x1==1)
{
if (x2==-1)
cout<<"\tx1=i"<<endl;
cout<<"\tx2=-i"<<endl;
}
else
{
cout<<"\tx1="<<x1<<" i"<<endl;
cout<<"\tx2="<<x2<<" i"<<endl;
}
}
else
{
cout<<endl<<"Las raices de la ecuacion son:"<<endl<<endl;
cout<<"\tx1="<<x1<<endl;
cout<<"\tx2="<<x2<<endl;
}
break;
case 'B': case 'b': //Falta actualizar por ahora es una copia del case 'a'
cout<<endl<<"Ingrese el valor del coeficiente del termino cuadratico: ";
cin>>a;
cout<<endl<<"Ingrese el valor del coeficiente del termino lineal: ";
cin>>b;
cout<<endl<<"Ingrese el valor del coeficiente del termino independiente: ";
cin>>c;
x1=((-b)+(sqrt(discriminante)))/(2*a…
x2=((-b)-(sqrt(discriminante)))/(2*a…
cout<<"Las raices de la ecuacion son:"<<endl;
cout<<"\tx1="<<x1<<endl;
cout<<"\tx2="<<x2<<endl;
break;
default:
cout<<"Elija una opci\xA2n valida"<<endl;
cout<<"Opci\xA2n: ";
cin>>opcion;
break;
}
cout<<endl<<"Para realizar otro calculo presione 1, para salir presione 0"<<endl;
cout<<"Opci\xA2n: ";
cin>>repetir;
system("cls");
}while(repetir==1);
}