⚡ Cap 11: Matrizes 2D/3D & Álgebra Linear Aplicada
Especialização em Engenharia de Sistemas com Linguagem C (C17/C23)
🗺️ Slide 1: Mapeamento em Row-Major Order
\[\text{Offset}(i, j) = (i \times \text{COLUNAS} + j) \times \text{sizeof}(T)\]- A memória RAM armazena matrizes 2D como uma sequência contígua de linhas inteiras.
- O acesso a qualquer posição $M[i][j]$ ocorre em tempo constante $O(1)$.
⚠️ Slide 2: Passagem de Matrizes para Funções
#define COLS 4
void processarMatriz(int mat[][COLS], size_t linhas);
- O número de colunas
COLSé obrigatório na assinatura para permitir o cálculo de saltos de linha pelo compilador.
🧮 Slide 3: Álgebra Linear e Multiplicação $O(N^3)$
for (int i = 0; i < M; i++)
for (int j = 0; j < N; j++)
for (int k = 0; k < K; k++)
C[i][j] += A[i][k] * B[k][j];
- Transposta: Inversão de linhas por colunas ($M[i][j] \leftrightarrow M[j][i]$).
- Multiplicação: 3 laços aninhados com custo computacional $O(N^3)$.
🚀 Slide 4: Otimização de Cache e Localidade Espacial
- Iteração por Linha (
mat[i][j]): Cache-Friendly (aproveita as linhas de 64B da Cache L1). - Iteração por Coluna (
mat[j][i]): Cache-Unfriendly (provoca constantes Cache Misses e perde até 10x em performance).
📋 Resumo da Aula & Próximos Passos
- Revise os códigos de exemplo deste capítulo.
- Teste seus conhecimentos no Quiz Formativo.
- Pratique os exercícios em 4 níveis de complexidade.
🧭 Navegação Rápida
| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Teoria | Ver Slides | Fazer Quiz | Ver Exemplos | Praticar Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim