Autor Tema: Resultado NaN en Java con SQL ejercicio ecuación cuadrática o de segundo grado  (Leído 726 veces)

Calmahuesos

  • Sin experiencia
  • *
  • Mensajes: 4
    • Ver Perfil
Buenos días a todos, hace poco que he empezado con Java y SQL, aunque estoy dedicando más tiempo al primero, soy muy nuevo y estoy intentando hacer ejercicios básicos para afianzar lo aprendido.

Tengo este código de una ecuación de segundo grado, pero en la mayoría de los casos el resultado de las variables me da NaN.

¿Hay alguna forma para que en lugar de darme NaN me diga que no se puede resolver o algo asi?

Muchas gracias a todos,

Código: [Seleccionar]
System.out.println("Vamos a resolver una ecuación de segundo grado donde ax^2+bx+c=0");

Scanner a1=new Scanner(System.in);
System.out.println("Introduce un valor para a");
double a2=a1.nextDouble();

Scanner b1=new Scanner(System.in);
System.out.println("Introduce un valor para b");
double b2=b1.nextDouble();

Scanner c1=new Scanner(System.in);
System.out.println("Introduce un valor para c");
double c2=c1.nextDouble();

double d=b2*b2-4*a2*c2;

double x1=(-b2+Math.sqrt(d))/2*a2; //Incognita

double x2=(-b2-Math.sqrt(d))/2*a2; //Incognita

if(x1!=0 && x2!=0) {

System.out.println("Para a="+a2+", b="+b2+" y c="+c2+", los valores de x pueden ser: "+x1+" y "+x2);

}else {

System.out.println("La ecuación no tiene solución.");
}

}

}
« Última modificación: 29 de Octubre 2020, 17:52 por Alex Rodríguez »

Calmahuesos

  • Sin experiencia
  • *
  • Mensajes: 4
    • Ver Perfil
Re:Resultado NaN en Java. Principiante
« Respuesta #1 en: 16 de Julio 2020, 11:02 »
Lamento haceros perder el tiempo, no se como no lo veía. El resultado daba NaN cuando la variable "d" me da como resultado un numero negativo. El "if" está mal, asi que lo cambié.

Gracias de todos modos

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 725
    • Ver Perfil
Re:Resultado NaN en Java. Principiante
« Respuesta #2 en: 16 de Julio 2020, 13:20 »
Solo comentar que no necesitas crear un nuevo objeto Scanner para cada dato que quieras pedir.
Te basta con uno solo:
Código: [Seleccionar]
System.out.println("Vamos a resolver una ecuación de segundo grado donde ax^2+bx+c=0");

Scanner a1=new Scanner(System.in);
System.out.println("Introduce un valor para a");
double a2=a1.nextDouble();

System.out.println("Introduce un valor para b");
double b2=a1.nextDouble();

System.out.println("Introduce un valor para c");
double c2=a1.nextDouble();
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Calmahuesos

  • Sin experiencia
  • *
  • Mensajes: 4
    • Ver Perfil
Re:Resultado NaN en Java. Principiante
« Respuesta #3 en: 17 de Julio 2020, 10:34 »
Muchas gracias Kabuto por tu respuesta, corregí el código y ya entendí el porqué no hacía falta estar creando objetos de tipo Scanner.  ;D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".