Resolver una Ecuación Lineal (ax + b = 0) en C

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a resolver una ecuación lineal de la forma ax + b = 0 utilizando el lenguaje de programación C. Empezarás leyendo los coeficientes a y b del usuario, luego calcularás la solución x aplicando la fórmula x = -b/a, asegurándote de que el coeficiente a no sea cero. Finalmente, imprimirás la solución o indicarás que no existe solución.

El laboratorio cubre los conceptos fundamentales de las expresiones algebraicas y su implementación en C. Al finalizar este laboratorio, tendrás una comprensión sólida de cómo resolver ecuaciones lineales simples de forma programática.

Leer los coeficientes a y b

En este paso, aprenderás a leer los coeficientes a y b para resolver una ecuación lineal en C. Crearemos un programa simple que solicita al usuario que ingrese los coeficientes y los almacena en variables.

Primero, crearemos un nuevo archivo C en el directorio del proyecto:

cd ~/project
nano linear_equation.c

Ahora, ingresa el siguiente código para leer los coeficientes:

#include <stdio.h>

int main() {
    double a, b;

    // Solicitar al usuario que ingrese el coeficiente a
    printf("Ingrese el coeficiente a (no debe ser cero): ");
    scanf("%lf", &a);

    // Solicitar al usuario que ingrese el coeficiente b
    printf("Ingrese el coeficiente b: ");
    scanf("%lf", &b);

    // Imprimir los coeficientes ingresados
    printf("Coeficiente a: %.2f\n", a);
    printf("Coeficiente b: %.2f\n", b);

    return 0;
}

Compila y ejecuta el programa:

gcc linear_equation.c -o linear_equation
./linear_equation

Ejemplo de salida:

Ingrese el coeficiente a (no debe ser cero): 2
Ingrese el coeficiente b: 4
Coeficiente a: 2.00
Coeficiente b: 4.00

Desglose del código:

  • Usamos double para permitir entradas decimales para los coeficientes.
  • printf() se utiliza para solicitar al usuario la entrada.
  • scanf() lee la entrada del usuario y la almacena en las variables a y b.
  • Imprimimos los coeficientes ingresados para confirmar que se leyeron correctamente.

Calcular x = -b/a (Comprobar si a ≠ 0)

En este paso, modificarás el programa anterior para calcular la solución de la ecuación lineal ax + b = 0, con un enfoque especial en la gestión del caso en que a sea cero.

Abre el archivo anterior y actualiza el código:

cd ~/project
nano linear_equation.c

Reemplaza el contenido con el siguiente código:

#include <stdio.h>

int main() {
    double a, b, x;

    // Solicitar al usuario que ingrese el coeficiente a
    printf("Ingrese el coeficiente a (no debe ser cero): ");
    scanf("%lf", &a);

    // Comprobar si a es cero
    if (a == 0) {
        printf("Error: El coeficiente 'a' no puede ser cero.\n");
        return 1;
    }

    // Solicitar al usuario que ingrese el coeficiente b
    printf("Ingrese el coeficiente b: ");
    scanf("%lf", &b);

    // Calcular la solución x
    x = -b / a;

    // Imprimir la solución
    printf("Solución de la ecuación %.2fx + %.2f = 0:\n", a, b);
    printf("x = %.2f\n", x);

    return 0;
}

Compila y ejecuta el programa:

gcc linear_equation.c -o linear_equation
./linear_equation

Ejemplo de salida para una entrada válida:

Ingrese el coeficiente a (no debe ser cero): 2
Ingrese el coeficiente b: 4
Solución de la ecuación 2.00x + 4.00 = 0:
x = -2.00

Ejemplo de salida para una entrada inválida (a = 0):

Ingrese el coeficiente a (no debe ser cero): 0
Error: El coeficiente 'a' no puede ser cero.

Puntos clave de este código:

  • Se añade una comprobación para asegurar que a no sea cero antes de calcular la solución.
  • Si a es cero, se imprime un mensaje de error y se sale del programa.
  • La solución x se calcula usando la fórmula x = -b/a.
  • Se utiliza %.2f para dar formato a la salida con dos decimales.

Imprimir la solución o indicar que no hay solución

En este paso final, mejorarás el solucionador de ecuaciones lineales para manejar diferentes escenarios y proporcionar una salida clara de la solución.

Abre el archivo anterior y actualiza el código:

cd ~/project
nano linear_equation.c

Reemplaza el contenido con el siguiente código:

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

int main() {
    double a, b, x;

    // Solicitar al usuario que ingrese el coeficiente a
    printf("Ingrese el coeficiente a: ");
    scanf("%lf", &a);

    // Solicitar al usuario que ingrese el coeficiente b
    printf("Ingrese el coeficiente b: ");
    scanf("%lf", &b);

    // Comprobar diferentes escenarios
    if (a == 0 && b == 0) {
        printf("Soluciones infinitas: Cualquier número real es una solución.\n");
    } else if (a == 0 && b != 0) {
        printf("No hay solución: La ecuación no se puede resolver.\n");
    } else {
        // Calcular la solución x
        x = -b / a;

        // Imprimir la solución
        printf("Ecuación: %.2fx + %.2f = 0\n", a, b);
        printf("Solución: x = %.2f\n", x);
    }

    return 0;
}

Compila y ejecuta el programa:

gcc linear_equation.c -o linear_equation
./linear_equation

Ejemplos de salida:

Escenario 1 (Solución normal):

Ingrese el coeficiente a: 2
Ingrese el coeficiente b: 4
Ecuación: 2.00x + 4.00 = 0
Solución: x = -2.00

Escenario 2 (No hay solución):

Ingrese el coeficiente a: 0
Ingrese el coeficiente b: 5
No hay solución: La ecuación no se puede resolver.

Escenario 3 (Soluciones infinitas):

Ingrese el coeficiente a: 0
Ingrese el coeficiente b: 0
Soluciones infinitas: Cualquier número real es una solución.

Mejoras clave en esta versión:

  • Maneja tres escenarios distintos para ecuaciones lineales.
  • Proporciona mensajes claros e informativos para diferentes casos.
  • Utiliza una lógica matemática precisa para determinar el tipo de solución.

Resumen

En este laboratorio, aprendiste a leer los coeficientes a y b para resolver una ecuación lineal en C. Creaste un programa simple que solicita al usuario que ingrese los coeficientes y los almacena en variables. También aprendiste a calcular la solución de la ecuación lineal ax + b = 0, con un enfoque especial en el caso en que a sea cero. El programa verifica si a es cero y proporciona un mensaje de error si lo es; de lo contrario, calcula la solución x = -b/a e imprime el resultado.