aula 298

Dúvida | Algoritmo para resolver uma equação do segundo grau com a fórmula de Bhaskara

Vamos a mais uma aula de dúvidas? E na aula de hoje vamos aprender como resolver uma equação do segundo grau com a fórmula de Bhaskara.

Observe que você apenas consegue programar o computador para resolver uma equação do segundo grau por meio da fórmula de Bhaskara se você souber como resolver uma equação usando esta fórmula. Se você tem alguma dúvida de como resolver uma equação com a fórmula de Bhaskara sugiro que pesquisa na internet materiais que possam te ajudar nessa compreensão. No YouTube provavelmente você encontra muitos bons vídeos sobre o assunto.

A equação poderia ser resolvida por meio de variáveis e ao final imprimir na tela os valores encontrados. Contudo, para tornar mais didático, faremos todos os cálculos dentro da função printf. Assim, ao final, teremos não apenas as respostas, mas o passo a passo seguido para se chegar até a resposta.

Uma equação do segundo grau possui a seguinte grafia: ax2 + bx + c

Os valores de ‘a’, ‘b’ e ‘c’ serão informados pelo usuário por meio do teclado. Na sequência, a primeira ação é verificar se é uma equação completa, ou seja, se ‘b’ e ‘c’ são diferentes de zero. Se um dos valores for igual a zero, então nosso programa deve finalizar dizendo que a equação é uma equação incompleta.

/*
    Verificando se é uma equação incompleta
*/
    if(b == 0 || c == 0)
        printf("Equacao incompleta.\n");
    else{
        // continuação
    }

O próximo passo é descobrir se a equação possui raízes reais. Para isso precisamos calcular o valor de delta. Se delta for um valor negativo, então a equação não possui raízes reais.

/*
    Cálculo do delta
*/
    delta = b * b - 4 * a * c;

Tendo agora o valor do delta, podemos fazer outro teste em nosso programa para informar o usuário se a equação possui ou não raízes reais. Se o delta for exatamente zero, então o equação possui duas raízes reais iguais. Contudo, se delta for maior que zero, então a equação possui duas raízes reais diferentes.

/*
    Verificando se a equação possui raízes reais
*/

    delta = b * b - 4 * a * c;

    if(b == 0 || c == 0)
        printf("Equacao incompleta.\n");
    else{
        if(delta < 0)
            printf("Delta: %d\nEsta equacao nao possui raizes reais.\n", delta);
        else{
            if(delta == 0)
                printf("Delta: %d\nEsta equacao possui raizes iguais.\n", delta);
            else
                printf("Delta: %d\nEsta equacao possui raizes diferentes.\n", delta);

            // continuação
        }
    }

Se delta for maior ou igual a zero, então podemos calcular as duas raízes da equação. Todos os cálculos serão feitos dentro da função printf. Assim, cada passo será impresso na tela facilitando a compreensão do que foi feito.

/*
    Cálculo das duas raízes da equação
*/

    delta = b * b - 4 * a * c;

    if(b == 0 || c == 0)
        printf("Equacao incompleta.\n");
    else{
        if(delta < 0)
            printf("Delta: %d\nEsta equacao nao possui raizes reais.\n", delta);
        else{
            if(delta == 0)
                printf("Delta: %d\nEsta equacao possui raizes iguais.\n", delta);
            else
                printf("Delta: %d\nEsta equacao possui raizes diferentes.\n", delta);

            printf("(-b + ou - sqrt(delta)) / (2 * a)\n");
            printf("(-%d + ou - %f) / (2 * %d)\n", b, sqrt(delta), a);
            printf("(%d + ou - %f) / %d\n", -1 * b, sqrt(delta), 2 * a);

            printf("\nx1 = %f / %d\n", (-1 * b) + sqrt(delta), 2 * a);
            printf("x1 = %f\n", ((-1 * b) + sqrt(delta)) / (2 * a));

            printf("\nx2 = %f / %d\n", (-1 * b) - sqrt(delta), 2 * a);
            printf("x2 = %f\n", ((-1 * b) - sqrt(delta)) / (2 * a));
        }
    }

Código completo em C para resolver uma equação do segundo grau com a fórmula de Bhaskara

/*
         Código escrito por Wagner Gaspar
         Novembro de 2021
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){
    int a, b, c, delta;

    printf("Informe os valores para A, B e C: ");
    scanf("%d%d%d", &a, &b, &c);

    delta = b * b - 4 * a * c;

    if(b == 0 || c == 0)
        printf("Equacao incompleta.\n");
    else{
        if(delta < 0)
            printf("Delta: %d\nEsta equacao nao possui raizes reais.\n", delta);
        else{
            if(delta == 0)
                printf("Delta: %d\nEsta equacao possui raizes iguais.\n", delta);
            else
                printf("Delta: %d\nEsta equacao possui raizes diferentes.\n", delta);

            printf("(-b + ou - sqrt(delta)) / (2 * a)\n");
            printf("(-%d + ou - %f) / (2 * %d)\n", b, sqrt(delta), a);
            printf("(%d + ou - %f) / %d\n", -1 * b, sqrt(delta), 2 * a);

            printf("\nx1 = %f / %d\n", (-1 * b) + sqrt(delta), 2 * a);
            printf("x1 = %f\n", ((-1 * b) + sqrt(delta)) / (2 * a));

            printf("\nx2 = %f / %d\n", (-1 * b) - sqrt(delta), 2 * a);
            printf("x2 = %f\n", ((-1 * b) - sqrt(delta)) / (2 * a));
        }
    }

    return 0;
}

Deixe um comentário

12 + 18 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.