miércoles, 12 de febrero de 2014

Unidad 3: Ejercicio 8, ecuación segundo grado

/*
* 8. Hacer un programa en el que se declare un vector de 5 datos de tipo
* EcuacionSegundoGrado. A continuación, de manera aleatoria,
* a.- asignar al vector 5 ecuaciones que tengan solución.   Escribir los valores de
* las cinco ecuaciones, así como de sus soluciones.
* b.- Escribir también cuántas ecuaciones se generaron hasta dar con una válida
* para cada elemento del vector.
*/
package unidad2ejercicio8;
import java.util.Random;

/**
*
* @author juan
*/
public class Unidad2Ejercicio8 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        double a,b,c;
        Random aleatorio = new Random();
        int novalida=0;
        int i=0;
        EcuacionSegundoGrado vector [] = new EcuacionSegundoGrado[5];
       
   

     while (i<vector.length){
            a = aleatorio.nextInt(10);
            b= aleatorio.nextDouble();
            c=aleatorio.nextDouble();
           
            vector[i] = new EcuacionSegundoGrado(a,b,c);
            if (vector[i].averigua()) ++i;
            else novalida++;
           
        }
               
        for (int j = 0; j < vector.length; j++) {
            System.out.println("Ecuación "+ j+": "+ vector[j].getA() +"X2 +"+ vector[j].getB()+"X +"+vector[j].getC() + " = 0 ");
            System.out.printf("%n Solución 1: %f Solución 2: %f %n",vector[j].obtenerSolucion1(),vector[j].obtenerSolucion2() );
            System.out.println();
        }
       
        System.out.printf("\nSe generaron %d soluciones para obtener 5 válidas",novalida+5);
       
       
       
       
       
    }
}


package unidad2ejercicio8;

/**
*
* @author juan
*/
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 double getA() {
        return a;
    }

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

    public double getB() {
        return b;
    }

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

    public double getC() {
        return c;
    }

    public void setC(double c) {
        this.c = c;
    }

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

    public boolean averigua() {
        if ((a != 0) && (b * b - 4 * a * c >= 0)) {
            return true;
        } else {
            return false;
        }
    }

    public double obtenerSolucion1() {
        return (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);
    }

    public double obtenerSolucion2() {
        return (-b - Math.sqrt(b * b - 4 * a * c)) / (2 * a);
    }
}