Fiz um programa que calcula qualquer equação do segundo grau, mas na hora de dar a resposta, se o delta for menor que zero, as raízes ficam 'complexas'.
A seguir o código:
package bhaskara;
import java.util.Scanner;
public class Bhaskara {
public static void main(String[] args) {
float a, b, c, //coeficientes
delta, //delta
sqrtdelta, //raiz quadrada de delta
raiz1,raiz2; //raízes
Scanner entrada = new Scanner(System.in);
//Passo 1: Recebendo os coeficientes
System.out.println("Equação do 2o grau: ax² + bx + c = 0");
System.out.print("Entre com o valor de a: ");
a = entrada.nextFloat();
System.out.print("Entre com o valor de b: ");
b = entrada.nextFloat();
System.out.print("Entre com o valor de c: ");
c = entrada.nextFloat();
//Passo 2: Checando se a equação é válida
if(a !=0){
//Passo 3: recebendo o valor de delta e calculando sua raiz quadrada
delta = (b*b) - (4*a*c);
sqrtdelta = (float)Math.sqrt(delta);
//Passo 4: se a raiz de delta for maior que 0, as raízes são reais
if(delta >=0){
raiz1 = ((-1)*b + sqrtdelta)/(2*a);
raiz2 = ((-1)*b - sqrtdelta)/(2*a);
System.out.printf("Raízes: %.2f e %.2f", raiz1, raiz2);
}
//Passo 5: se delta for menor que 0, as raízes serão complexas
else{
delta = -delta;
sqrtdelta = (float)Math.sqrt(delta);
System.out.printf("Raíz 1: %.2f + i.%2f\n", (-b)/(2*a), (sqrtdelta)/(2*a));
System.out.printf("Raíz 2: %.2f - i.%2f\n", (-b)/(2*a), (sqrtdelta)/(2*a));
}
}
else{
System.out.println("Coeficiente 'a' inválido. Não é uma equação do 2o grau");
}
}
}
No final ficou assim:
Equação do 2o grau: ax² + bx + c = 0
Entre com o valor de a: 1
Entre com o valor de b: 5
Entre com o valor de c: 7
Raíz 1: -2,50 + i.0,866025
Raíz 2: -2,50 - i.0,866025
Alguem sabe me dizer pq as raízes ficam dessa forma?
A seguir o código:
package bhaskara;
import java.util.Scanner;
public class Bhaskara {
public static void main(String[] args) {
float a, b, c, //coeficientes
delta, //delta
sqrtdelta, //raiz quadrada de delta
raiz1,raiz2; //raízes
Scanner entrada = new Scanner(System.in);
//Passo 1: Recebendo os coeficientes
System.out.println("Equação do 2o grau: ax² + bx + c = 0");
System.out.print("Entre com o valor de a: ");
a = entrada.nextFloat();
System.out.print("Entre com o valor de b: ");
b = entrada.nextFloat();
System.out.print("Entre com o valor de c: ");
c = entrada.nextFloat();
//Passo 2: Checando se a equação é válida
if(a !=0){
//Passo 3: recebendo o valor de delta e calculando sua raiz quadrada
delta = (b*b) - (4*a*c);
sqrtdelta = (float)Math.sqrt(delta);
//Passo 4: se a raiz de delta for maior que 0, as raízes são reais
if(delta >=0){
raiz1 = ((-1)*b + sqrtdelta)/(2*a);
raiz2 = ((-1)*b - sqrtdelta)/(2*a);
System.out.printf("Raízes: %.2f e %.2f", raiz1, raiz2);
}
//Passo 5: se delta for menor que 0, as raízes serão complexas
else{
delta = -delta;
sqrtdelta = (float)Math.sqrt(delta);
System.out.printf("Raíz 1: %.2f + i.%2f\n", (-b)/(2*a), (sqrtdelta)/(2*a));
System.out.printf("Raíz 2: %.2f - i.%2f\n", (-b)/(2*a), (sqrtdelta)/(2*a));
}
}
else{
System.out.println("Coeficiente 'a' inválido. Não é uma equação do 2o grau");
}
}
}
No final ficou assim:
Equação do 2o grau: ax² + bx + c = 0
Entre com o valor de a: 1
Entre com o valor de b: 5
Entre com o valor de c: 7
Raíz 1: -2,50 + i.0,866025
Raíz 2: -2,50 - i.0,866025
Alguem sabe me dizer pq as raízes ficam dessa forma?