Fórmula de Bhaskara C#

Fala galera, alguém poderia me ajudar nesse código, sou iniciante C# e estou com dificuldades em reduzir a exibição dos números, utilizo (int mas da erro) e os números estão negativos, se é algo de errado com a lógica perdoem.

Código:

private void btn_executar_Click(object sender, EventArgs e)
{

    // double delta = Math.Sqrt((b*b) - (4*a*c));
    int a = 2;
    int b = 3;
    int c = 4;

    double delta_p1 = Math.Sqrt(b*b);
    double delta_p2 = Math.Sqrt(4*a*c);

    double delta = (delta_p1 - delta_p2);

    double a1 = (-b + (delta)) / (2 * a);
    double a2 = (-b - (delta)) / (2 * a);

    resultado_a1.Text = ("a1 = " + a1);
    resultado_a2.Text = ("a2 = " + a2);

}

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);
1 curtida

Cara muito obrigado, um erro bobo até mas não estava vendo, obrigado mesmo!!

1 curtida