viernes, 24 de enero de 2014

Unidad 2 Ejercicio 77

77. Una ecuación de segundo grado tiene el formato ax2+bx+c=0, donde a, b y c pueden ser cualquier número real (para que la ecuación sea de segundo grado a no puede valer 0). Hay dos valores de x (x1, x2) que hacen que la ecuación sea igual a 0. Estas dos soluciones de la ecuación se obtienen aplicando las fórmulas:

X1 = (-b + sqrt(b2-4*a*c))/(2*a)
X2 = (-b - sqrt(b2-4*a*c))/(2*a) 

Diseñar una  clase de nombre EcuacionSegundoGrado que nos permita representar y manipular ecuaciones de segundo grado. Dicha clase tendrá tres propiedades de ámbito privado que guardaran los valores de  a, b y c, así como dos constructores y los siguientes métodos públicos:

a) Constructor al que se le pasen 3 valores numéricos y se los asigne a los coeficientes.

b) Constructor por defecto que no haga nada.

c) Método de nombre setCoeficientes() al que se le pasen tres valores numéricos y los asigne respectivamente a las propiedades a, b y c.

d) Tres métodos de nombre getA(), getB() y getC(), que cada uno de ellos devuelva respectivamente el contenido de las propiedades a,b y c.

e) Tres métodos de nombre setA(), setB() y setC(), que permitan asignar un valor a cada uno de los coeficientes de la ecuación.

f) Método de nombre averigua que devuelva true si la ecuación tiene solución y false si no la tiene. Una ecuación de segundo grado no tiene solución si a es igual a 0, o el valor de b2-4*a*c es negativo.

g) Método de nombre obtenerSolución1() que devuelva la primera de las soluciones de la ecuación de segundo grado.

h) Método de nombre obtenerSolución2() que devuelva la segunda de las soluciones de la ecuación de segundo grado.

Comprobar el funcionamiento de la clase, creando objetos de la clase con diferentes valores para los coeficientes.

Ejemplos:

x2 - 5x + 6 = 0 tiene como soluciones 3 y 2
x2 + x + 1 = 0 no tiene solución (raíz cuadrada negativa)




package unidad3ejercicio77;

/**
*
* @author Juan
*/
public class Unidad3Ejercicio77 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 

      
       
        EcuacionSegundoGrado ecu1 = new EcuacionSegundoGrado();
        EcuacionSegundoGrado ecu2 = new EcuacionSegundoGrado(1,-5,6);
        EcuacionSegundoGrado ecu3 = new EcuacionSegundoGrado(1,1,1);
       
       
        if (ecu2.averigua()) System.out.println(ecu2.obtenerSolución1() + " - " +ecu2.obtenerSolución2());
            else System.out.println("ecu2 no tiene solución");
        if (ecu3.averigua()) System.out.println(ecu3.obtenerSolución1() + " - " +ecu3.obtenerSolución2());
         else System.out.println("ecu3 no tiene solución");
        ecu1.setCoeficientes(1, -20, 16);
        if (ecu1.averigua()) System.out.println(ecu1.obtenerSolución1() + " - " +ecu1.obtenerSolución2());
         else System.out.println("ecu1 no tiene solución");
}}



package unidad3ejercicio77;


public class EcuacionSegundoGrado {
    private double a;
    private double b;
    private double c;
   
    public EcuacionSegundoGrado(){}

    public EcuacionSegundoGrado(double a, double b, double c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }
   
    public void setCoeficientes(double a, double b, double c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public double getA() {
        return a;
    }

    public double getB() {
        return b;
    }

    public double getC() {
        return c;
    }

    public void setA(double a) {
        this.a = a;
    }

    public void setB(double b) {
        this.b = b;
    }

    public void setC(double c) {
        this.c = c;
    }
   
    public boolean averigua(){
        return ((a!=0) && ((b*b-4*a*c)>=0) );
    }
   
    public double obtenerSolución1() {
            return ((-b + Math.sqrt(b*b - 4*a*c))/2*a);
           
    }
   
    public double obtenerSolución2() {
            return( (-b - Math.sqrt(b*b - 4*a*c))/2*a);
    }
}