Encontrando as Raízes de uma Equação Quadrática

CBeginner
Pratique Agora

Introdução

Uma equação quadrática é uma equação da forma ax²+bx+c=0, onde a, b e c são constantes. Neste laboratório, aprenderemos como escrever um programa para encontrar as raízes de uma equação quadrática.

Para resolver a equação quadrática, usaremos a seguinte fórmula:

x = (-b ± sqrt(b² - 4ac)) / 2a

Nota: Você precisa criar o arquivo ~/project/main.c por conta própria para praticar a codificação e aprender como compilar e executá-lo usando o gcc.

cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main

Obter os Coeficientes de Entrada

Vamos obter a entrada do usuário para os coeficientes da equação quadrática, como a, b e c. Esses coeficientes serão usados para calcular as raízes da equação quadrática.

float a, b, c, determinant, r1, r2, real, imag;
printf("\nEnter coefficients a, b and c: ");
scanf("%f%f%f", &a, &b, &c);

Calcular o Discriminante

Em seguida, calcularemos o valor do determinante da equação quadrática usando a fórmula:

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

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

Verificar a Natureza das Raízes

Em seguida, verificaremos a natureza das raízes da equação quadrática com base no valor do determinante calculado no passo 2. Se o determinante for maior que 0, então as raízes são reais e distintas. Se o determinante for igual a 0, então as raízes são reais e iguais. Se o determinante for menor que 0, então as raízes são complexas e imaginárias.

if(determinant > 0)    // both roots are real
{
    r1 = (-b + sqrt(determinant))/2*a;  // Brackets are important
    r2 = (-b - sqrt(determinant))/2*a;
    printf("\n\n\nRoots are: %.2f and %.2f ", r1, r2);
}
else if(determinant == 0)   // both roots are real and equal
{
    r1 = r2 = -b/(2*a); // brackets are important
    printf("\n\n\nRoots are: %.2f and %.2f ", r1, r2);
}
/*
    Determinant < 0 - both roots are imaginary of the
    form real + i*imaginary
*/
else
{
    real = -b/(2*a);
    imag = sqrt(-determinant)/(2*a);
    printf("\n\n\nRoots are %.2f + i%.2f and %.2f - i%.2f ", real, imag, real, imag);
}

Exibir as Raízes

Finalmente, exibiremos as raízes da equação quadrática com base na natureza das raízes calculadas no Passo 3.

Escrever o Código Completo

#include<stdio.h>
#include<math.h>  // This is needed to use sqrt() function

int main()
{
    float a, b, c, determinant, r1, r2, real, imag;
    printf("\nEnter coefficients a, b and c: ");
    scanf("%f%f%f", &a, &b, &c);

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

    if(determinant > 0)    // both roots are real
    {
        r1 = (-b + sqrt(determinant))/2*a;  // Brackets are important
        r2 = (-b - sqrt(determinant))/2*a;
        printf("\n\n\nRoots are: %.2f and %.2f ", r1, r2);
    }
    else if(determinant == 0)   // both roots are real and equal
    {
        r1 = r2 = -b/(2*a); // brackets are important
        printf("\n\n\nRoots are: %.2f and %.2f ", r1, r2);
    }
    /*
        Determinant < 0 - both roots are imaginary of the
        form real + i*imaginary
    */
    else
    {
        real = -b/(2*a);
        imag = sqrt(-determinant)/(2*a);
        printf("\n\n\nRoots are %.2f + i%.2f and %.2f - i%.2f ", real, imag, real, imag);
    }
    printf("\n\n\n\n\t\t\tCoding is Fun !\n\n\n");
    return 0;
}

Resumo

Neste laboratório, aprendemos como escrever um programa em C para encontrar as raízes de uma equação quadrática. Recebemos a entrada do usuário para os coeficientes da equação quadrática e calculamos as raízes com base na natureza das raízes determinadas pelo valor do discriminante (determinant). Em seguida, exibimos as raízes da equação quadrática com base na natureza das raízes.