hallef
Março 20, 2018, 6:19pm
#1
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);
}
}
}
hallef:
delta = -bb-4 a*c;
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.
STNeto
Março 20, 2018, 6:49pm
#3
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);
}
}
hallef
Março 20, 2018, 7:15pm
#4
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: