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.cpor 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.



