Fala galera,
Estou recorrendo mais uma vez ao GUJ pra me dar uma força. :lol:
Eu tenho um trabalho da faculdade que precisa calcular as raizes de uma equação do 2º grau. Mas não estou conseguindo fazer com as raizes complexas!
[code]else {
double delta = (b * b) - (4 * a * c);
if (delta > 0) {
System.out.println ("**Raizes reais simples**");
System.out.println ("1ª raiz = " + ((b * (-1)) - Math.sqrt(delta)) / (2 * a) + "\n" + "2º raiz = " + ((b * (-1)) + Math.sqrt(delta)) / (2 * a));
}
else if (delta == 0) {
System.out.println ("**Raiz real dupla**");
System.out.println ("1ª raiz = 2ª raiz = " + ((b * (-1)) - Math.sqrt(delta)) / (2 * a));
}
else {
System.out.println ("**Raizes complexas**");
System.out.println ("1ª raiz = " + (((b * (-1)) / (2 * a)) - (Math.sqrt(delta) / (2 * a))) + "i" + "\n" + "2º raiz = " + (((b * (-1)) / (2 * a)) + (Math.sqrt(delta) / (2 * a))) + "i");
}
}[/code]
Aqui tem uma tabela ensinando a calcular. Eu fiz essa fórmula, porém adicionei o "i" no fim, mas não deu muito certo.
Na interação com o programa, aparece as seguintes saídas do método:
Raizes r = new Raizes (1)
r.imprimeRaizes(7.18, 43.75, -31.21)
**Raizes reais simples**
1ª raiz = -6.738393810226726
2º raiz = 0.6450790469955272
r.imprimeRaizes(3, -18.0, 27.0)
**Raiz real dupla**
1ª raiz = 2ª raiz = 3.0
r.imprimeRaizes(1, 1, 1)
**Raizes complexas**
1ª raiz = NaNi
2º raiz = NaNi
r.imprimeRaizes (0, 1, 1)
**Equação não é do 2º grau**
r.imprimeRaizes(1, 1, 1)
Raizes complexas
1ª raiz = NaNi
2º raiz = NaNi
Aqui que eu tenho problema: como retornar o valor correto?
Deveria ser retornado isso:
r.imprimeRaizes(1, 1, 1)
reais complexas
1a raiz => -0.5 - 0.8660254037844386i
2a raiz => -0.5 + 0.8660254037844386i
Alguém poderia me ajudar? :roll: