Realmente a sua lógica está errada (está errada porque é Raiz do Delta e não raiz dos elementos contidos na expressão do valor resultante do Delta, exemplo do erro: double delta_p1 = Math.Sqrt(b*b); double delta_p2 = Math.Sqrt(4*a*c);
ou seja, se não pode separar o valor de Delta pra depois extrair a raiz separado, é o valor resultado do Delta e depois a raiz do Delta, entendeu?), mas, vamos entender o seguinte:
Nesse link:
tem a forma explicativa na matemática como resolver a formula de baskara, agora é só trazer o conhecimento anterior para o código C#.
Peguei os mesmo valores onde
int a = 1;
int b = 8;
int c = -9;
e o resultado é x'
= 1 e x''
= -9 e fiz o transporte para o código C#.
Primeira coisa que eu fiz é achar o valor de Delta (D) que é:
double delta = (b * b) - (4 * a * c);
depois ele pede a raiz de delta
double raiz = Math.Sqrt(delta);
ai você vai achar o x'
e x''
(no caso eu coloque x1
e x2
):
var x1 = ((-(b)) + raiz) / (2 * a);
var x2 = ((-(b)) - raiz) / (2 * a);
pronto os valores são x1 = 1
e x2 = -9
que é a resposta para a = 1
, b = 8
e c = -9
.
Exemplo Online:
https://dotnetfiddle.net/xkDPvl
Código Final:
int a = 1;
int b = 8;
int c = -9;
double delta = (b * b) - (4 * a * c);
double raiz = Math.Sqrt(delta);
var x1 = ((-(b)) + raiz) / (2 * a);
var x2 = ((-(b)) - raiz) / (2 * a);
Console.WriteLine("Valor de X': {0}", x1);
Console.WriteLine("Valor de X'': {0}", x2);