Introdução
Neste laboratório, você aprenderá a resolver um sistema de duas equações lineares em programação C. O laboratório cobre dois passos principais: ler os coeficientes das duas equações e, em seguida, calcular as soluções usando o método do determinante. Você criará um programa C que permite aos usuários inserir os coeficientes e, em seguida, o programa calculará e exibirá as soluções ou quaisquer casos especiais que possam surgir.
O primeiro passo envolve solicitar ao usuário que insira os coeficientes para as duas equações lineares na forma padrão: ax + by = c. O programa, então, imprimirá os coeficientes inseridos para verificar a entrada. No segundo passo, você estenderá o programa para calcular as soluções usando a regra de Cramer, que envolve o cálculo dos determinantes das matrizes de coeficientes. O programa exibirá as soluções ou quaisquer casos especiais, como nenhuma solução ou infinitas soluções.
Ler Coeficientes para Duas Equações
Neste passo, você aprenderá a ler os coeficientes de um sistema de duas equações lineares usando programação C. Criaremos um programa que permite aos usuários inserir os coeficientes para duas equações na forma padrão: ax + by = c.
Primeiro, vamos criar um novo arquivo C para implementar nosso solucionador de equações:
cd ~/project
nano linear_equations.c
Agora, adicione o seguinte código para ler os coeficientes:
#include <stdio.h>
int main() {
float a1, b1, c1; // Coeficientes para a primeira equação
float a2, b2, c2; // Coeficientes para a segunda equação
// Solicitar e ler os coeficientes para a primeira equação
printf("Digite os coeficientes para a primeira equação (ax + by = c):\n");
printf("a1: ");
scanf("%f", &a1);
printf("b1: ");
scanf("%f", &b1);
printf("c1: ");
scanf("%f", &c1);
// Solicitar e ler os coeficientes para a segunda equação
printf("Digite os coeficientes para a segunda equação (ax + by = c):\n");
printf("a2: ");
scanf("%f", &a2);
printf("b2: ");
scanf("%f", &b2);
printf("c2: ");
scanf("%f", &c2);
// Imprimir os coeficientes inseridos para verificação
printf("\nPrimeira Equação: %.2fx + %.2fy = %.2f\n", a1, b1, c1);
printf("Segunda Equação: %.2fx + %.2fy = %.2f\n", a2, b2, c2);
return 0;
}
Compile e execute o programa:
gcc linear_equations.c -o linear_equations
./linear_equations
Exemplo de saída:
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 1
b2: 4
c2: 10
Primeira Equação: 2.00x + 3.00y = 8.00
Segunda Equação: 1.00x + 4.00y = 10.00
Calcular Soluções Usando Determinantes
Neste passo, você aprenderá a resolver um sistema de duas equações lineares usando o método do determinante. Iremos estender o programa anterior para calcular as soluções usando a regra de Cramer.
Abra o arquivo existente e modifique o código:
cd ~/project
nano linear_equations.c
Atualize o código com o método de cálculo do determinante:
#include <stdio.h>
// Função para calcular o determinante
float determinant(float a1, float b1, float a2, float b2) {
return a1 * b2 - a2 * b1;
}
int main() {
float a1, b1, c1; // Coeficientes para a primeira equação
float a2, b2, c2; // Coeficientes para a segunda equação
float det, detX, detY;
float x, y;
// Solicitar e ler os coeficientes para a primeira equação
printf("Digite os coeficientes para a primeira equação (ax + by = c):\n");
printf("a1: ");
scanf("%f", &a1);
printf("b1: ");
scanf("%f", &b1);
printf("c1: ");
scanf("%f", &c1);
// Solicitar e ler os coeficientes para a segunda equação
printf("Digite os coeficientes para a segunda equação (ax + by = c):\n");
printf("a2: ");
scanf("%f", &a2);
printf("b2: ");
scanf("%f", &b2);
printf("c2: ");
scanf("%f", &c2);
// Calcular o determinante principal
det = determinant(a1, b1, a2, b2);
// Verificar se o sistema tem uma solução única
if (det != 0) {
// Calcular os determinantes para x e y
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
// Calcular as soluções
x = detX / det;
y = detY / det;
printf("\nSolução:\n");
printf("x = %.2f\n", x);
printf("y = %.2f\n", y);
} else {
// Verificar se o sistema não tem solução ou tem infinitas soluções
if (determinant(c1, b1, c2, b2) != 0 || determinant(a1, c1, a2, c2) != 0) {
printf("\nNão existe solução.\n");
} else {
printf("\nExistem infinitas soluções.\n");
}
}
return 0;
}
Compile e execute o programa:
gcc linear_equations.c -o linear_equations
./linear_equations
Exemplo de saída para uma solução única:
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 1
b2: 4
c2: 10
Solução:
x = 2.00
y = 2.00
Exemplo de saída para nenhuma solução:
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 4
b2: 6
c2: 16
Não existe solução.
Imprimir Soluções ou Casos Especiais
Neste passo final, você aprimorará o programa para fornecer uma saída mais detalhada para diferentes tipos de soluções em um sistema de duas equações lineares.
Abra o arquivo existente e faça as modificações finais:
cd ~/project
nano linear_equations.c
Atualize o código com formatação de saída aprimorada:
#include <stdio.h>
#include <math.h>
// Função para calcular o determinante
float determinant(float a1, float b1, float a2, float b2) {
return a1 * b2 - a2 * b1;
}
int main() {
float a1, b1, c1; // Coeficientes para a primeira equação
float a2, b2, c2; // Coeficientes para a segunda equação
float det, detX, detY;
float x, y;
float EPSILON = 1e-6; // Pequeno valor para comparação de ponto flutuante
// Solicitar e ler os coeficientes para a primeira equação
printf("Solucionador de Equações Lineares\n");
printf("Digite os coeficientes para a primeira equação (ax + by = c):\n");
printf("a1: ");
scanf("%f", &a1);
printf("b1: ");
scanf("%f", &b1);
printf("c1: ");
scanf("%f", &c1);
// Solicitar e ler os coeficientes para a segunda equação
printf("Digite os coeficientes para a segunda equação (ax + by = c):\n");
printf("a2: ");
scanf("%f", &a2);
printf("b2: ");
scanf("%f", &b2);
printf("c2: ");
scanf("%f", &c2);
// Imprimir as equações de entrada
printf("\nEquações de Entrada:\n");
printf("Equação 1: %.2fx + %.2fy = %.2f\n", a1, b1, c1);
printf("Equação 2: %.2fx + %.2fy = %.2f\n", a2, b2, c2);
// Calcular o determinante principal
det = determinant(a1, b1, a2, b2);
// Determinar e imprimir o tipo de solução
if (fabs(det) > EPSILON) {
// Caso de solução única
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
x = detX / det;
y = detY / det;
printf("\n--- Tipo de Solução: Solução Única ---\n");
printf("Solução:\n");
printf("x = %.2f\n", x);
printf("y = %.2f\n", y);
} else {
// Verificar se não há solução ou infinitas soluções
detX = determinant(c1, b1, c2, b2);
detY = determinant(a1, c1, a2, c2);
if (fabs(detX) > EPSILON || fabs(detY) > EPSILON) {
printf("\n--- Tipo de Solução: Sem Solução ---\n");
printf("O sistema de equações não possui solução.\n");
printf("As equações são inconsistentes e paralelas.\n");
} else {
printf("\n--- Tipo de Solução: Infinitas Soluções ---\n");
printf("O sistema de equações possui infinitas soluções.\n");
printf("As equações são equivalentes e dependentes.\n");
}
}
return 0;
}
Compile e execute o programa:
gcc linear_equations.c -o linear_equations
./linear_equations
Exemplo de saída para solução única:
Solucionador de Equações Lineares
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 1
b2: 4
c2: 10
Equações de Entrada:
Equação 1: 2.00x + 3.00y = 8.00
Equação 2: 1.00x + 4.00y = 10.00
--- Tipo de Solução: Solução Única ---
Solução:
x = 2.00
y = 2.00
Exemplo de saída para nenhuma solução:
Solucionador de Equações Lineares
Digite os coeficientes para a primeira equação (ax + by = c):
a1: 2
b1: 3
c1: 8
Digite os coeficientes para a segunda equação (ax + by = c):
a2: 4
b2: 6
c2: 16
Equações de Entrada:
Equação 1: 2.00x + 3.00y = 8.00
Equação 2: 4.00x + 6.00y = 16.00
--- Tipo de Solução: Sem Solução ---
O sistema de equações não possui solução.
As equações são inconsistentes e paralelas.
Resumo
Neste laboratório, você aprendeu inicialmente como ler os coeficientes de um sistema de duas equações lineares em programação C. Você criou um programa que solicita ao usuário a entrada dos coeficientes (a, b, c) para as duas equações e, em seguida, imprime as equações para verificar a entrada. Em seguida, você aprenderá como resolver o sistema de equações usando o método do determinante e a regra de Cramer para calcular as soluções.
O programa estenderá a funcionalidade anterior para calcular as soluções para o sistema de equações. Ele determinará o determinante da matriz de coeficientes e usará a regra de Cramer para encontrar os valores das variáveis x e y que satisfazem o sistema.



