💻 Exemplos de Código: Cap 11 - Matrizes e Álgebra Linear
Código executável completo demonstrando manipulação de matrizes bidimensionais, transposição matricial e multiplicação de matrizes com passagem segura por funções.
📄 Exemplo 1: Álgebra Linear - Multiplicação e Transposta (algebra_matrizes.c)
#include <stdio.h>
#define LINHAS_A 2
#define COLS_A 3
#define LINHAS_B 3
#define COLS_B 2
void imprimirMatriz(int lin, int col, const int mat[lin][col], const char *nome) {
printf("--- Matriz %s (%dx%d) ---\n", nome, lin, col);
for (int i = 0; i < lin; i++) {
printf("[ ");
for (int j = 0; j < col; j++) {
printf("%3d ", mat[i][j]);
}
printf("]\n");
}
}
int main(void) {
// Matriz A (2x3)
int A[LINHAS_A][COLS_A] = {
{1, 2, 3},
{4, 5, 6}
};
// Matriz B (3x2)
int B[LINHAS_B][COLS_B] = {
{7, 8},
{9, 1},
{2, 3}
};
// Matriz C Resultante (2x2)
int C[LINHAS_A][COLS_B] = {0};
// 1. Multiplicação de Matrizes: C[i][j] = sum(A[i][k] * B[k][j])
for (int i = 0; i < LINHAS_A; i++) {
for (int j = 0; j < COLS_B; j++) {
C[i][j] = 0;
for (int k = 0; k < COLS_A; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
// 2. Transposta de A (3x2)
int At[COLS_A][LINHAS_A];
for (int i = 0; i < LINHAS_A; i++) {
for (int j = 0; j < COLS_A; j++) {
At[j][i] = A[i][j];
}
}
printf("====================================================\n");
printf(" 📐 ALGEBRA MATRICIAL EM C (MULTIPLICACAO & TRANSPOSTA)\n");
printf("====================================================\n");
imprimirMatriz(LINHAS_A, COLS_A, A, "A");
imprimirMatriz(LINHAS_B, COLS_B, B, "B");
imprimirMatriz(LINHAS_A, COLS_B, C, "C (A x B)");
imprimirMatriz(COLS_A, LINHAS_A, At, "A Transposta (A^T)");
printf("====================================================\n");
return 0;
}
📄 Exemplo 2: Matriz 3D - Cubo de Temperatura Espacial (matriz_3d.c)
#include <stdio.h>
#define PISOS 2
#define LINHAS 3
#define SALAS 3
int main(void) {
// Tensor 3D: [Piso][Linha][Sala]
double edificio[PISOS][LINHAS][SALAS] = {
{ // Piso 0
{21.5, 22.0, 21.8},
{22.1, 23.0, 22.4},
{20.9, 21.2, 21.0}
},
{ // Piso 1
{23.5, 24.0, 23.8},
{24.1, 25.0, 24.4},
{22.9, 23.2, 23.0}
}
};
printf("====================================================\n");
printf(" 🏢 MONITORAMENTO TERMICO EM GRADE 3D (2x3x3)\n");
printf("====================================================\n");
for (int p = 0; p < PISOS; p++) {
printf("\n--- PISO #%d ---\n", p);
for (int l = 0; l < LINHAS; l++) {
for (int s = 0; s < SALAS; s++) {
printf("[%.1lf C] ", edificio[p][l][s]);
}
printf("\n");
}
}
printf("====================================================\n");
return 0;
}
🧭 Navegação Rápida
| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Teoria | Ver Slides | Fazer Quiz | Ver Exemplos | Praticar Exercícios |