método delta em java.[Resolvido]

Pessoas blz?

Eu estava escrevendo uma classe EquaçãoDoSegundoGrau, ela tem um método delta que está me dando uma dor de cabeça incrivel, ele está escrito assim…

 public double delta()
    {
        
        delta = Math.pow(b,2)-4*a*c;
        
        return delta;
    }

Considerando a=1, b=4 e c=3 o resutado de delta deveria ser 36, mas está retornando 4. O que eu fiz de errado ja tentei escrever a formula de outro jeito e ñ deu certo. Algué pode me dizer como faze? Nessa formula o que o java faz primeiro, multiplica o subtrai qual é a ordem?

[quote][b]Considerando a=1, b=4 e c=3 o resutado de delta deveria ser 36, mas está retornando 4.

delta = Math.pow(b,2)-4ac;
[/b][/quote]
b*b - 4 * a * c

44 - 41*3
16 - 12
4

acho q o errado é vc =)

apenas lembrando… o Java não erra… quem erra é o programador :wink:

Rudy,

está correto o resultado

a=1, b=4 e c=3

b² = 16
4ac = 12
16-12 = 4

b²-4ac neste caso é igual a 4 mesmo.
Sua resposta de 36 é que está errada.

mas isso ñ deveri se feito assim
(44)-413
16-4
13
12
1*3
36.

[quote=Rudy]mas isso ñ deveri se feito assim
(44)-413
16-4
13
12
1*3
36.[/quote]

primeiro vc resolve as potências e raizes,
depois as multiplicações e divisões
depois então as somas e subtrações.

SE quiser, coloque os parentesis apropriados para forçar o procedência dos operadores que vc desejar, mas a matemática é assim :wink:

[quote=peczenyj][quote=Rudy]mas isso ñ deveri se feito assim
(44)-413
16-4
13
12
1*3
36.[/quote]

primeiro vc resolve as potências e raizes,
depois as multiplicações e divisões
depois então as somas e subtrações.

SE quiser, coloque os parentesis apropriados para forçar o procedência dos operadores que vc desejar, mas a matemática é assim :wink:
[/quote]

peczeny eu entendi o que vc falow, ai mudei para “math.pow(4,2-4)13” e o resulta foi 0.1875 depois tentei
“math.pow((4,2)-4)13” ai deu erro na linha.

se vc ker fazer do “jeito errado”

faz assim

double delta = ((b*b)-4)ac

ou melhor ainda…
b*(b-4)ac
4*(4-4)13
401*3
0

uhul o/ :lol:

[quote=alucardeck]se vc ker fazer do “jeito errado”

faz assim

double delta = ((b*b)-4)ac

ou melhor ainda…
b*(b-4)ac
4*(4-4)13
401*3
0

uhul o/ :lol: [/quote]

Muito bom alurcardeck, vlw…
Desse jeito funcionou, mas eu ainda ñ entende por que usando o math.pow ñ funcionou se a lógica é a mesama, pelo menos me parece…

é a mesma logica sim… mas vc implementou errado…

Math.pow(b,2) é o mesmo que b*b

entao vc pos

math.pow(4,2-4) seria o mesmo q (4,-2)… então é a potencia negativa de 4… faz com q o numero fique abaixo de 1…

deveria ficar
( math.pow(4,2)-4 )ac

mas pra simplificar nesse caso
pode usar b*b mesmo

[quote=Rudy][quote=alucardeck]se vc ker fazer do “jeito errado”

faz assim

double delta = ((b*b)-4)ac

ou melhor ainda…
b*(b-4)ac
4*(4-4)13
401*3
0

uhul o/ :lol: [/quote]

Muito bom alurcardeck, vlw…
Desse jeito funcionou, mas eu ainda ñ entende por que usando o math.pow ñ funcionou se a lógica é a mesama, pelo menos me parece…[/quote]

Nunca usei, mas pelo que me parece o Math.pow(b,2) ele o valor da variavel b ao quadrado. O seu

math.pow((4,2)-4)13

faz

(4*4-4))13

eita, nem vi que já tinham respondido =S

[quote=alucardeck]é a mesma logica sim… mas vc implementou errado…

Math.pow(b,2) é o mesmo que b*b

entao vc pos

math.pow(4,2-4) seria o mesmo q (4,-2)… então é a potencia negativa de 4… faz com q o numero fique abaixo de 1…

deveria ficar
( math.pow(4,2)-4 )ac

mas pra simplificar nesse caso
pode usar b*b mesmo[/quote]

Não entendo uma coisa, ja entendi a lógica, mas por que quando eu tento usar ( math.pow(4,2)-4 )ac; ñ compila?

pq o math.pow só aceita 2 parametros…

o numero e a potencia desejada…
math.pow(X,Y) <— o certo

vc tentou
math.pow( (X,Y)- Z ) <— errado

pq o math.pow só aceita 2 parametros…

o numero e a potencia desejada…
math.pow(X,Y) <— o certo

vc tentou
math.pow( (X,Y)- Z ) <— errado
[/quote]

Agora entendi, vlw pessoas…

Rudy, agora que você já entendeu sobre a precedência e conseguiu chegar no resultado esperado, deixa a função como estava no começo, que é o jeito certo de aplicar a fórmula do delta.

ok :smiley: