2/01/2017

Ejercicio 39

Dados los valores A, B y C que son los parámetros de una ecuación de segundo grado, elaborar un algoritmo para hallar las posibles soluciones de dicha ecuación.

Matriz Colaborador: Thiago López

#include <iostream>
// se incluye la clase Ecuacion para despues llamar a sus metodos 
#include "Ecuacion.h"

using namespace std;

int main(void)
{
    float v1,v2,v3;
    // se crea un objeto de la clase Ecuacion (Instanciaciación) 
    Ecuacion *obj = new Ecuacion();
    cout << "====ECUACION DE SEGUNDO GRADO===" << endl << endl;
    // se pide el valor de A 
    cout << "Digite el valor de A" << endl;
    cout << ">> ";
    cin >> v1;
    // se encapsula la variable v1  
    obj->setA(v1);
    cout << endl;
    // se pide el valor de B 
    cout << "Digite el valor de B" << endl;
    cout << ">> ";
    cin >> v2;
    // se encapsula la variable v2  
    obj->setB(v2);
    cout << endl;
    // se pide el valor de C 
    cout << "Digite el valor de C" << endl;
    cout << ">> ";
    cin >> v3;
    // se encapsula la variable v3  
    obj->setC(v3);
    cout << endl;
    // se muestran las soluciones 
    cout<< "Solucion 1:  " << obj->resultadoUno() << endl;
    cout<< "Solucion 2:  " << obj->resultadoDos() << endl;

}

#ifndef ECUACION_H
#define ECUACION_H


class Ecuacion
{
    public:
        Ecuacion();
        virtual ~Ecuacion();
        // se declaran los metodos publicos 
        void setA(float val);
        float getA();
        void setB(float val);
        float getB();
        void setC(float val);
        float getC();
        float resultadoUno();
        float resultadoDos();
    protected:

    private:
        // se declaran los atributos privados 
        float a;
        float b;
        float c;
};

#endif // ECUACION_H

#include "Ecuacion.h"
#include "math.h"

Ecuacion::Ecuacion()
{
    // al inicializar el constructor se definiran los valores iniciales de los atributos 
    a = 0;
    b = 0;
    c = 0;
}

Ecuacion::~Ecuacion()
{
    //dtor 
}

// metodos Setters y Getters de los atributos de la clase 
void Ecuacion::setA(float val)
{
    a = val;
}
float Ecuacion::getA()
{
    return a;
}
void Ecuacion::setB(float val)
{
    b = val;
}
float Ecuacion::getB()
{
    return b;
}
void Ecuacion::setC(float val)
{
    c = val;
}
float Ecuacion::getC()
{
    return c;
}

// solucion 1 
float Ecuacion::resultadoUno()
{
    float res=0;
    res = (-getB() + (sqrt(pow(getB(),2)-(4 *getA()*getC()) ))) / (2*getA());
    return res;
}

// solucion 2 
float Ecuacion::resultadoDos()
{
    float res=0;
    res = (-getB() - (sqrt(pow(getB(),2)-(4 * getA() * getC())))) / (2*getA());
    return res;
}

// se importa paquete JOptionPane para dibujar un cuadro de dialogo en pantalla
// que muestre información o para llenar información 
import javax.swing.JOptionPane;

public class Main
{
    public static void main(String[] args)
    {
        // se crea un objeto de la clase Convertir (Instanciaciación) 
        Ecuacion obj = new Ecuacion();
        // declaramos las variables que guardan los valores a, b, c 
        float a,b,c;
        // se pide el valor de A 
        a = Float.parseFloat(JOptionPane.showInputDialog("Digite valor de A"));
        // se encapsula la variable a  
        obj.setA(a);
        while(obj.getA() == 0)
        {
            a = Float.parseFloat(JOptionPane.showInputDialog("Digite valor de A"));
            obj.setA(a);
        }
        // se pide el valor de B 
        b = Float.parseFloat(JOptionPane.showInputDialog("digite valor de B"));
        // se encapsula la variable b  
        obj.setB(b);
        // se pide el valor de C 
        c = Float.parseFloat(JOptionPane.showInputDialog("Digite valor de C"));
        // se encapsula la variable c  
        obj.setC(c);
        // se muestran las soluciones 
        JOptionPane.showMessageDialog(null,"Resultado 1:  " + obj.resultadoUno() + "\n" + "Resultado 2:  " + obj.resultadoDos());
    }
}

public class Ecuacion
{
    // se declaran los atributos privados 
    private float a;
    private float b;
    private float c;
    
    public Ecuacion()
    {
        // al inicializar el constructor se definiran los valores iniciales de los atributos 
        a = 0;
        b = 0;
        c = 0;
    }
    
    // metodos Setters y Getters de los atributos de la clase 
    public void setA(float val)
    {
        a = val;
    }
    public float getA()
    {
        return a;
    }
    
    public void setB(float val)
    {
        b = val;
    }
    public float getB()
    {
        return b;
    }
    public void setC(float val)
    {
        c = val;
    }
    public float getC()
    {
        return c;
    }
    
    // solución 1 
    public double resultadoUno()
    {
        // declaramos la variable que devuelve el resultado 
        double solu;
        
        // ecuacion de segundo grado 
        solu= (-b + (Math.sqrt((b*b)-(4*a*c))))  / (2*a);
        
        // retorna el resultado 
        return solu;
                
    }
    
    // solución 2 
    public double resultadoDos()
    {
        // declaramos la variable que devuelve el resultado 
        double sol;
        
        // ecuacion de segundo grado 
        sol= (-b - (Math.sqrt((b*b)-(4*a*c))) ) / (2*a);
        
        // retorna el resultado 
        return sol;
    }
}