Equação do 2º grau

13 respostas
J

Olá, pessoal…
Estou fazendo um programa em Java que calcula o delta da equação do 2º grau.
Quando eu uso o tipo de dado double fica dando erro. Alguém sabe dizer por quê?
Porém quando eu uso int o programa roda beleza.

import java.util.Scanner;

public class Apagar {

	public static void main ( String args[] ){


	Scanner input = new Scanner(System.in);

	int a;

	int b;

	int c;

	int delta;

	System.out.println("Escreva o valor de A:");
	a = input.nextInt();
	
	System.out.println("Escreva o valor de B:");
	b = input.nextInt();

	System.out.println("Escreva o valor de C:");
	c = input.nextInt();

	delta = ((b*b)-(4*a*c));
	
	System.out.printf("O valor do %d  \n eh: ",delta);
	
	}
}

13 Respostas

cleyvison

Não seria pq vc declarou todas as variaveis numericas como int!!!..
Capitura os numeros com int…

tenta mudar o tipo das variaveis, capturar double (ou float) ou ae quizer capturar int não esqueca de converte-lo ( acho que o nome técnioco é “cast” ou algo parecido)

J

Esse exemplo é com int. Esse roda…
Mas quando eu mudo para double ele não compila.

DZR
a = input.nextInt();

Vc tentou usar o a = input.nextDouble() ?

cleyvison

Mas, é justamente por isso, o Jav não converte as variaveis “automaticamente” ou vc faz isso ou não usa o que não declarou…

DZR

Então mude a declaração das suas variáveis. E passe-as para double.

Uma outra coisa que eu usava na faculdade era multiplicar o vamor Int recebido por 1.0

pedruhenrik
double delta;

delta = input.nextDouble();

System.out.printf("O valor do %f eh: " , delta); // %f no lugar de %d

att,

J

Eu mudei gente, mesmo assim não roda...

Foi isso que eu disse antes.

Eu mando o código de como é eu eu tô fazendo com double e não roda...
import java.util.Scanner;

public class Apagar {

	public static void main ( String args[] ){


	Scanner input = new Scanner(System.in);

	double a;

	double b;

	double c;

	double delta;

	System.out.println("Escreva o valor de A:");
	a = input.nextDouble();
	
	System.out.println("Escreva o valor de B:");
	b = input.nextDouble();

	System.out.println("Escreva o valor de C:");
	c = input.nextDouble();

	delta = ((b*b)-(4*a*c));
	
	System.out.printf("O valor do %d  \n eh: ",delta);
	
	}
}
DZR

Poste o erro, por favor.

pedruhenrik
pedruhenrik:
double delta;

delta = input.nextDouble();

[b]System.out.printf("O valor do %f eh: " , delta); // %f no lugar de %d[/b]

att,

J

Ahhhh…
Era isso que o Pedro falou // %f no lugar de %d

Obrigado a todos…

[]'s

ViniGodoy

Seria bom também especificar alguma precisão, ou corre o risco dele exibir em notação científica. Por exemplo, para 2 casas depois da vírgula:

System.out.printf("O valor do %.2f eh: " , delta);
J

Galera, foi resolvido meu problema já.

Obrigado!

I

Boa noite, preciso resolver uma equação do segundo grau a partir de :

public int equacao

as instruções que meu professor me deu foram:

y= ax2 + bx + c =0

calcula (a,b,c) {

return valor y
}

To perdida, se alguém puder me ajudar.

Criado 10 de maio de 2011
Ultima resposta 2 de ago. de 2012
Respostas 13
Participantes 6