Fórum Orientação de objetos -JAVA #507335
15/01/2015
0
olá estava resolvendo um exercicio para criar um programa que resolvesse uma equaçao do 2 grau,porem o resultado está dando NaN,alguem pode me informar onde estou errando?
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Primeiro {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Equação do 2o grau: ax² + bx + cx = 0");
System.out.print("Entre com o valor de a: ");
float a = entrada.nextFloat();
//String aS=String.valueOf(a);
System.out.print("Entre com o valor de b: ");
float b = entrada.nextFloat();
System.out.print("Entre com o valor de c: ");
float c = entrada.nextFloat();
if (a>0){
float delta = (b*b)-(4*a*c);
System.out.println("valor de delta " + delta);
float raiz = (float) Math.sqrt(delta);
System.out.println("valor das raiz " + raiz);
}
}
}
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Primeiro {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Equação do 2o grau: ax² + bx + cx = 0");
System.out.print("Entre com o valor de a: ");
float a = entrada.nextFloat();
//String aS=String.valueOf(a);
System.out.print("Entre com o valor de b: ");
float b = entrada.nextFloat();
System.out.print("Entre com o valor de c: ");
float c = entrada.nextFloat();
if (a>0){
float delta = (b*b)-(4*a*c);
System.out.println("valor de delta " + delta);
float raiz = (float) Math.sqrt(delta);
System.out.println("valor das raiz " + raiz);
}
}
}
Alexandre Santana
Curtir tópico
+ 0
Responder
Posts
16/01/2015
Ronaldo Lanhellas
Você tem que checar se o valor de "delta" não é negativo, caso seja negativo não existe raiz para o mesmo. O simbolo "NaN" significa "Not a Number", exatamente por não haver raiz para valores negativos o resultado é "NaN", como se o compilador estivesse dizendo : "Isso não pode ser calculado".
Tente assim:
Tente assim:
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Equacao2Grau {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.println("Equação do 2o grau: ax² + bx + cx = 0");
System.out.print("Entre com o valor de a: ");
float a = entrada.nextFloat();
// String aS=String.valueOf(a);
System.out.print("Entre com o valor de b: ");
float b = entrada.nextFloat();
System.out.print("Entre com o valor de c: ");
float c = entrada.nextFloat();
if (a > 0) {
float delta = (b * b) - (4 * a * c);
System.out.println("valor de delta " + delta);
if (delta < 0){
System.err.println("Delta negativo: "+delta);
return;
}
float raiz = (float) Math.sqrt(delta);
System.out.println("valor das raiz " + raiz);
}
}
}
Responder
Gostei + 0
16/01/2015
Eduardo Pessoa
Esses exercicios com operações matematicas são um pouco dificeis, mas isso da uma ajuda viu.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)