Encontrar las raíces de la ecuación cuadrática

CBeginner
Practicar Ahora

Introducción

Una ecuación cuadrática es una ecuación de la forma ax²+bx+c=0, donde a, b y c son constantes. En este laboratorio, aprenderemos a escribir un programa para encontrar las raíces de una ecuación cuadrática.

Para resolver la ecuación cuadrática, usaremos la siguiente fórmula:

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

Nota: Debes crear el archivo ~/project/main.c tú mismo para practicar la codificación y aprender a compilar y ejecutarlo usando gcc.

cd ~/project
## crear main.c
touch main.c
## compilar main.c
gcc main.c -o main
## ejecutar main
./main

Obtener los coeficientes de entrada

Tomaremos la entrada del usuario para los coeficientes de la ecuación cuadrática, como a, b y c. Estos coeficientes se usarán para calcular las raíces de la ecuación cuadrática.

float a, b, c, determinant, r1, r2, real, imag;
printf("\nIngrese los coeficientes a, b y c: ");
scanf("%f%f%f", &a, &b, &c);

Calcular el determinante

Luego calcularemos el valor del determinante de la ecuación cuadrática usando la fórmula:

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

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

Verificar la naturaleza de las raíces

Luego verificaremos la naturaleza de las raíces de la ecuación cuadrática en función del valor del determinante calculado en el paso 2. Si el determinante es mayor que 0, entonces las raíces son reales y distintas. Si el determinante es igual a 0, entonces las raíces son reales e iguales. Si el determinante es menor que 0, entonces las raíces son complejas e imaginarias.

if(determinant > 0)    // ambas raíces son reales
{
    r1 = (-b + sqrt(determinant))/2*a;  // Los corchetes son importantes
    r2 = (-b - sqrt(determinant))/2*a;
    printf("\n\n\nLas raíces son: %.2f y %.2f ", r1, r2);
}
else if(determinant == 0)   // ambas raíces son reales e iguales
{
    r1 = r2 = -b/(2*a); // corchetes son importantes
    printf("\n\n\nLas raíces son: %.2f y %.2f ", r1, r2);
}
/*
    Determinante < 0 - ambas raíces son imaginarias de la
    forma real + i*imaginario
*/
else
{
    real = -b/(2*a);
    imag = sqrt(-determinant)/(2*a);
    printf("\n\n\nLas raíces son %.2f + i%.2f y %.2f - i%.2f ", real, imag, real, imag);
}

Salida de las raíces

Finalmente, imprimiremos las raíces de la ecuación cuadrática en función de la naturaleza de las raíces calculadas en el Paso 3.

Escribir el código completo

#include<stdio.h>
#include<math.h>  // Esto es necesario para usar la función sqrt()

int main()
{
    float a, b, c, determinante, r1, r2, real, imag;
    printf("\nIngrese los coeficientes a, b y c: ");
    scanf("%f%f%f", &a, &b, &c);

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

    if(determinante > 0)    // ambas raíces son reales
    {
        r1 = (-b + sqrt(determinante))/2*a;  // Los corchetes son importantes
        r2 = (-b - sqrt(determinante))/2*a;
        printf("\n\n\nLas raíces son: %.2f y %.2f ", r1, r2);
    }
    else if(determinante == 0)   // ambas raíces son reales e iguales
    {
        r1 = r2 = -b/(2*a); // corchetes son importantes
        printf("\n\n\nLas raíces son: %.2f y %.2f ", r1, r2);
    }
    /*
        Determinante < 0 - ambas raíces son imaginarias de la
        forma real + i*imaginario
    */
    else
    {
        real = -b/(2*a);
        imag = sqrt(-determinante)/(2*a);
        printf("\n\n\nLas raíces son %.2f + i%.2f y %.2f - i%.2f ", real, imag, real, imag);
    }
    printf("\n\n\n\n\t\t\tCodificar es divertido!\n\n\n");
    return 0;
}

Resumen

En este laboratorio, aprendimos cómo escribir un programa en C para encontrar las raíces de una ecuación cuadrática. Tomamos la entrada del usuario para los coeficientes de la ecuación cuadrática y calculamos las raíces en función de la naturaleza de las raíces determinada por el valor del determinante. Luego, imprimimos las raíces de la ecuación cuadrática en función de la naturaleza de las raíces.