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);

}
}
}
Alexandre Santana

Alexandre Santana

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:
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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar