Ayuda con error

Iniciado por Jay, 30 Agosto 2019, 22:57 PM

0 Miembros y 1 Visitante están viendo este tema.

Jay

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);
}





KrishCM

Y para que es la (Solucion Cuadrada) , se queda en Prototipo

Jay

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