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 |


⬅️ Voltar ao Sumário da Especialização