Resolver uma Equação Linear (ax + b = 0) em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a resolver uma equação linear da forma ax + b = 0 usando a programação em C. Você começará lendo os coeficientes a e b do usuário, em seguida, calculará a solução x aplicando a fórmula x = -b/a, garantindo que o coeficiente a não seja zero. Finalmente, imprimirá a solução ou indicará que não existe solução.

O laboratório abrange os conceitos fundamentais de expressões algébricas e sua implementação em C. Ao final deste laboratório, você terá uma compreensão sólida de como resolver equações lineares simples de forma programática.

Ler os Coeficientes a e b

Neste passo, você aprenderá a ler os coeficientes a e b para resolver uma equação linear em C. Criaremos um programa simples que solicita ao usuário que insira os coeficientes e os armazena em variáveis.

Primeiro, crie um novo arquivo C no diretório do projeto:

cd ~/project
nano linear_equation.c

Agora, insira o seguinte código para ler os coeficientes:

#include <stdio.h>

int main() {
    double a, b;

    // Solicitar ao usuário para inserir o coeficiente a
    printf("Digite o coeficiente a (não deve ser zero): ");
    scanf("%lf", &a);

    // Solicitar ao usuário para inserir o coeficiente b
    printf("Digite o coeficiente b: ");
    scanf("%lf", &b);

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

    return 0;
}

Compile e execute o programa:

gcc linear_equation.c -o linear_equation
./linear_equation

Exemplo de saída:

Digite o coeficiente a (não deve ser zero): 2
Digite o coeficiente b: 4
Coeficiente a: 2.00
Coeficiente b: 4.00

Vamos analisar o código:

  • Usamos double para permitir entradas decimais para os coeficientes
  • printf() é usado para solicitar a entrada do usuário
  • scanf() lê a entrada do usuário e a armazena nas variáveis a e b
  • Imprimimos os coeficientes inseridos para confirmar que foram lidos corretamente

Calcular x = -b/a (Verificar se a ≠ 0)

Neste passo, você modificará o programa anterior para calcular a solução da equação linear ax + b = 0, com foco especial na manipulação do caso em que a é zero.

Abra o arquivo anterior e atualize o código:

cd ~/project
nano linear_equation.c

Substitua o conteúdo pelo seguinte código:

#include <stdio.h>

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

    // Solicitar ao usuário para inserir o coeficiente a
    printf("Digite o coeficiente a (não deve ser zero): ");
    scanf("%lf", &a);

    // Verificar se a é zero
    if (a == 0) {
        printf("Erro: O coeficiente 'a' não pode ser zero.\n");
        return 1;
    }

    // Solicitar ao usuário para inserir o coeficiente b
    printf("Digite o coeficiente b: ");
    scanf("%lf", &b);

    // Calcular a solução x
    x = -b / a;

    // Imprimir a solução
    printf("Solução da equação %.2fx + %.2f = 0:\n", a, b);
    printf("x = %.2f\n", x);

    return 0;
}

Compile e execute o programa:

gcc linear_equation.c -o linear_equation
./linear_equation

Exemplo de saída para entrada válida:

Digite o coeficiente a (não deve ser zero): 2
Digite o coeficiente b: 4
Solução da equação 2.00x + 4.00 = 0:
x = -2.00

Exemplo de saída para entrada inválida (a = 0):

Digite o coeficiente a (não deve ser zero): 0
Erro: O coeficiente 'a' não pode ser zero.

Pontos-chave deste código:

  • Adicionamos uma verificação para garantir que a não seja zero antes de calcular a solução
  • Se a for zero, imprimimos uma mensagem de erro e encerramos o programa
  • A solução x é calculada usando a fórmula x = -b/a
  • Usamos %.2f para formatar a saída para duas casas decimais

Imprimir a Solução ou Indicar Ausência de Solução

Neste passo final, você aprimorará o solucionador de equações lineares para lidar com diferentes cenários e fornecer uma saída clara para a solução.

Abra o arquivo anterior e atualize o código:

cd ~/project
nano linear_equation.c

Substitua o conteúdo pelo seguinte código:

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

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

    // Solicitar ao usuário para inserir o coeficiente a
    printf("Digite o coeficiente a: ");
    scanf("%lf", &a);

    // Solicitar ao usuário para inserir o coeficiente b
    printf("Digite o coeficiente b: ");
    scanf("%lf", &b);

    // Verificar diferentes cenários
    if (a == 0 && b == 0) {
        printf("Soluções infinitas: Todo número real é uma solução.\n");
    } else if (a == 0 && b != 0) {
        printf("Sem solução: A equação não pode ser resolvida.\n");
    } else {
        // Calcular a solução x
        x = -b / a;

        // Imprimir a solução
        printf("Equação: %.2fx + %.2f = 0\n", a, b);
        printf("Solução: x = %.2f\n", x);
    }

    return 0;
}

Compile e execute o programa:

gcc linear_equation.c -o linear_equation
./linear_equation

Cenários de exemplo de saída:

Cenário 1 (solução normal):

Digite o coeficiente a: 2
Digite o coeficiente b: 4
Equação: 2.00x + 4.00 = 0
Solução: x = -2.00

Cenário 2 (sem solução):

Digite o coeficiente a: 0
Digite o coeficiente b: 5
Sem solução: A equação não pode ser resolvida.

Cenário 3 (soluções infinitas):

Digite o coeficiente a: 0
Digite o coeficiente b: 0
Soluções infinitas: Todo número real é uma solução.

Melhorias-chave nesta versão:

  • Lidar com três cenários distintos para equações lineares
  • Fornecer mensagens claras e informativas para diferentes casos
  • Utilizar lógica matemática precisa para determinar o tipo de solução

Resumo

Neste laboratório, você aprendeu a ler os coeficientes a e b para resolver uma equação linear em C. Você criou um programa simples que solicita ao usuário a entrada dos coeficientes e os armazena em variáveis. Também aprendeu a calcular a solução da equação linear ax + b = 0, com foco especial na manipulação do caso em que a é zero. O programa verifica se a é zero e fornece uma mensagem de erro se for, caso contrário, calcula a solução x = -b/a e a imprime.