Preciso fazer um algoritmo que leia 3 decimais a,b,c e efetue o calculo das raizes da equação de Bhaskara ( -b+- b²-4*a*c/2*a)

não conseguir evoluir desta forma…

  Scanner scan = new Scanner(System.in);
    int a,b,c,delta,x1,x2;
    System.out.println("Digite o valor de A: ");
    a = scan.nextInt();
    System.out.println("Digite o valor B: ");
    b = scan.nextInt();
    System.out.println("Digite o valor de C: ");
    c = scan.nextInt();
    delta = -b*b-4*a*c;
    if (delta > 0){
        x1 = (-b + delta ^ (1/2)) / (2*a);
        x2 = (-b - delta ^ (1/2)) / (2*a);
        System.out.println(" A equacao possui 2 raizes reais.");
        System.out.printf("x1 = ",x1 "e x2 = ", x2);
        
    }
}

}

a formula de delta é b² - 4a*c.

para elevar ao quadrado em java usa-se math.pow(x,y); em que x é o valor e y é o expoente.

	Scanner scan = new Scanner(System.in);
	int a, b, c, delta, x1, x2;
	System.out.print("Digite o valor de A: ");
	a = scan.nextInt();
	System.out.print("Digite o valor B: ");
	b = scan.nextInt();
	System.out.print("Digite o valor de C: ");
	c = scan.nextInt();
	delta = (b * b) - 4 * a * c;
	if (delta > 0) {
		x1 = (-b + delta ^ (1 / 2)) / (2 * a);
		x2 = (-b - delta ^ (1 / 2)) / (2 * a);
		System.out.println("A equacao possui 2 raizes reais.");
		System.out.println("X1: " + x1 + "\nX2: " + x2);
	} else {

		if (delta == 0) {
			System.out.println("Delta é 0");
		} else {
			System.out.println("Delta negativo... : " + delta);
		}

	}

STNeto muito obrigado !
rodou perfeitamente…

O correto é assim:

x1 = (-b + Math.sqrt(delta)) / (2 * a);
x2 = (-b - Math.sqrt(delta)) / (2 * a);

O operador ^ realiza a operação lógica XOR e não exponenciação.

1 curtida
x1 = (Math.pow(-b,2) + Math.sqrt(delta)) / (2 * a);
x2 = ((Math.pow(-b,2) - Math.sqrt(delta)) / (2 * a);

E repare que você está pegando a, b e c como Inteiros e não decimais, utilize double ou float para pegar decimais.

1 curtida

O -b não é ao quadrado, só corrigindo.
O correto é como @staroski mencionou: