una ayuda en un ejercicio en java.

Iniciado por XpandyX, 22 Enero 2011, 23:00 PM

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

XpandyX

bueno ante todo buenas tardes, muchas gracias por leer este inquietud.
Bueno estuve desarrollando un ejercicio en java.

les pego el código de mi desarrollo, el cual solo quiero que me acepte las variables que sean reales. Esta en negrita la parte del codigo que deseo saber como hacer para que en todo caso si estos valores de x1 y x2 sean reales enteros, esa condición es todo.


public class Ejercicio02 {

    public static void main(String[] args) {

        double x1,x2,condicion;
        int A = Integer.parseInt(JOptionPane.showInputDialog(" A = ? "));
        int B = Integer.parseInt(JOptionPane.showInputDialog(" B = ? "));
        int C = Integer.parseInt(JOptionPane.showInputDialog(" C = ? "));

        //Ax^2+By+C=0 --> x(1,2)=(-B+- Math.sqrt(B^2-$*A*C))/2A

        condicion =Math.pow(B,2)-4*A*C;

        if(condicion>=0){
           
        x1=(-B + Math.sqrt(condicion))/2*A;
        x2=(-B - Math.sqrt(condicion))/2*A;
       
            [b]if(x1 == int)[/b]{
            int a=(int)(x1);
            int b=(int)(x2);

            System.out.println("Las soluciones reales de la ecuacion cuadratica formada es:");
            System.out.println("x1 = "+a+", x2 = "+b);
            }
       
        }
        else{
            System.out.println(" La ecuacion cuadratica tiene la discriminante "
                    + "negativa por lo que no se puede encontrar las raices ");
        }
    }
}


Espero me puedan ayudar muchas gracias.
Saudos

danielo-

Hola, se me ocurre una solucion para tu problema, a ver si te parece, lo puedes lograr usando excepciones, algo así:

Código (java) [Seleccionar]

public class Ejercicio02 {

    public static void main(String[] args) {
try{
double x1,x2,condicion;
//Supongo q es esto lo que deseas validar q sean numeros
//haciendo uso de excepciones, en caso de no poder convertir el dialogo introducido
//automaticamente saltara al catch, que indicara que no puede resolver la operacion
int A = Integer.parseInt(JOptionPane.showInputDialog(" A = ? "));
int B = Integer.parseInt(JOptionPane.showInputDialog(" B = ? "));
int C = Integer.parseInt(JOptionPane.showInputDialog(" C = ? "));

//Ax^2+By+C=0 --> x(1,2)=(-B+- Math.sqrt(B^2-$*A*C))/2A
     
condicion =Math.pow(B,2)-4*A*C;

if(condicion>=0){

x1=(-B + Math.sqrt(condicion))/2*A;
x2=(-B - Math.sqrt(condicion))/2*A;
[b]if(x1 == int)[/b]{
int a=(int)(x1);
int b=(int)(x2);

System.out.println("Las soluciones reales de la ecuacion cuadratica formada es:");
System.out.println("x1 = "+a+", x2 = "+b);
}
}
else{
System.out.println(" La ecuacion cuadratica tiene la discriminante "
+ "negativa por lo que no se puede encontrar las raices ");
}
}catch(Exception e){
System.out.println("solo numeros reales");
}
   }


}

saludos!

XpandyX

bueno muchas gracias por ese aporte pero soy novato todavía no uso excepciones pero de igual manera ya encontré la forma de hacerlo muchas gracias.