No logre ver por que la solucion con numeros complejos no me sale bien en mi codigo y tampco puedo quitar los signos repetido -- del lado de la factorizacion es decir (x - 2) ^2 asi deberia quedar y me sale (x--2)^2
#include<cmath>
#include<iostream>
using namespace std;
inline float LeerNum(){
float var;
cin >> var;
return var;
}
float Discriminante(float num1, float num2, float num3);
float SolucionPos(float, float, float);
float SolucionNeg(float, float, float);
float SolucionCuadrada(float num1, float num2);//!Variables/obj/arreglos
int main(){
cout << "Ingrese los coeficientes: ";
float a = LeerNum(), b = LeerNum(), c = LeerNum();
if(Discriminante(a,b,c) == 0){
if((b>0) && (c>0)){
cout << "Factorizacion:\n(x - " <<
SolucionCuadrada(a,b) << ")^2 = "
<< a << "x^2 + " << b << "x + " << c;
}else if((b>0) && (c<0)){
cout << "Factorizacion:\n(x - " <<
SolucionCuadrada(a,b) << ")^2 = "
<< a << "x^2 + " << b << "x " << c;
} else if((b<0) && (c>0)){
cout << "Factorizacion:\n(x - " <<
SolucionCuadrada(a,b) << ")^2 = "
<< a << "x^2 " << b << "x + " << c;
} else if((b<0) && (c<0)){
cout << "Factorizacion:\n(x - " <<
SolucionCuadrada(a,b) << ")^2 = "
<< a << "x^2 " << b << "x " << c;
}
}
else if(Discriminante(a,b,c) > 0){
if((b>0)&& (c>0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << ")*(x - "
<< SolucionNeg(a,b,c) << ") = "
<< a << "x^2 + " << b << "x + " << c;
}else if((b<0)&& (c>0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << ")*(x - "
<< SolucionNeg(a,b,c) << ") = "
<< a << "x^2 " << b << "x + " << c;
}else if((b>0)&& (c<0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << ")*(x - "
<< SolucionNeg(a,b,c) << ") = "
<< a << "x^2 + " << b << "x " << c;
}else if((b<0)&& (c<0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << ")*(x - "
<< SolucionNeg(a,b,c) << ") = "
<< a << "x^2 " << b << "x " << c;
}
}
else if(Discriminante(a,b,c) < 0){
if((b>0)&& (c>0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << "i)*(x - "
<< SolucionNeg(a,b,c) << "i) = "
<< a << "x^2 + " << b << "x + " << c;
}else if((b<0)&& (c>0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << "i)*(x - "
<< SolucionNeg(a,b,c) << "i) = "
<< a << "x^2 " << b << "x + " << c;
}else if((b>0)&& (c<0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) << "i)*(x - "
<< SolucionNeg(a,b,c) << "i) = "
<< a << "x^2 + " << b << "x " << c;
}else if((b<0)&& (c<0)){
cout << "Factorizacion:\n(x - " <<
SolucionPos(a,b,c) <<"i)*(x - "
<< SolucionNeg(a,b,c) << "i) = "
<< a << "x^2 " << b << "x " << c;
}
}
return 0;
}
float Discriminante(float a, float b, float c){
return b*b - 4*a*c;
}
float SolucionPos(float a, float b, float c){
return (-b+sqrt(Discriminante(a,b,c)))/(2*a);
}
float SolucionNeg(float a, float b, float c){
return (-b-sqrt(Discriminante(a,b,c)))/(2*a);
}
float SolucionCuadrada(float a, float b){
return -b/(2*a);
}
Y para que es la (Solucion Cuadrada) , se queda en Prototipo
Cita de: KrishCM en 31 Agosto 2019, 00:44 AM
Y para que es la (Solucion Cuadrada) , se queda en Prototipo
ya la agregue perdon