🧩 Exercícios: Matrizes Multidimensionais, Row-Major Order e Álgebra
🧩 Exercícios Práticos: Matrizes Multidimensionais, Row-Major Order e Álgebra
Spec Sistemas Com C • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 11.1 — Declaração e Preenchimento de Matriz Bidimensional
Contexto: Declaração e Preenchimento de Matriz Bidimensional no contexto de Matrizes Multidimensionais, Row-Major Order e Álgebra.
Requisitos de Execução:
- Criar matriz 3x3 e calcular a soma dos elementos da diagonal principal.
Resultado Esperado
Soma da diagonal principal calculada com sucesso.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_1_SeuNome - Envie na tarefa:
Atividade Cap 11 - Matrizes Multidimensionais, Row-Major Order e Álgebra
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
int mat[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int soma_diag = 0;
for (int i = 0; i < 3; i++) soma_diag += mat[i][i];
printf("Soma da diagonal principal: %d\n", soma_diag);
return 0;
}
🔍 Nível 2: Prática
Problema 11.2 — Transposição de Matrizes (Matriz Transposta A^T)
Contexto: Transposição de Matrizes (Matriz Transposta A^T) no contexto de Matrizes Multidimensionais, Row-Major Order e Álgebra.
Requisitos de Execução:
- Construir matriz transposta trocando linhas por colunas
transposta[j][i] = original[i][j].
Resultado Esperado
Matriz transposta gerada e impressa.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_2_SeuNome - Envie na tarefa:
Atividade Cap 11 - Matrizes Multidimensionais, Row-Major Order e Álgebra
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
int at[3][2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
at[j][i] = a[i][j];
}
}
printf("Transposta [0][1]: %d\n", at[0][1]);
return 0;
}
⚡ Nível 3: Integração
Problema 11.3 — Multiplicação de Matrizes com Complexidade O(N^3)
Contexto: Multiplicação de Matrizes com Complexidade O(N^3) no contexto de Matrizes Multidimensionais, Row-Major Order e Álgebra.
Requisitos de Execução:
- Implementar multiplicação de matriz A(MxK) por matriz B(KxN) gerando matriz C(MxN).
Resultado Esperado
Produto matricial calculado com acumulação de produto escalar.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_3_SeuNome - Envie na tarefa:
Atividade Cap 11 - Matrizes Multidimensionais, Row-Major Order e Álgebra
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
int a[2][2] = {{1, 2}, {3, 4}};
int b[2][2] = {{2, 0}, {1, 2}};
int c[2][2] = {0};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 2; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
printf("C[0][0] = %d | C[1][1] = %d\n", c[0][0], c[1][1]);
return 0;
}
🏆 Nível 4: Desafio Corporativo
Problema 11.4 — Otimização de Cache Line com Acesso Sequencial em Row-Major Order
Contexto: Otimização de Cache Line com Acesso Sequencial em Row-Major Order no contexto de Matrizes Multidimensionais, Row-Major Order e Álgebra.
Requisitos de Execução:
- Demonstrar que iterar por linhas (i depois j) é significativamente mais rápido que iterar por colunas devido a cache misses.
Resultado Esperado
Iteração otimizada respeitando a localidade espacial do Row-Major Order.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_4_SeuNome - Envie na tarefa:
Atividade Cap 11 - Matrizes Multidimensionais, Row-Major Order e Álgebra
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
#define L 1000
#define C 1000
static int grande_matriz[L][C];
int main(void) {
long long soma = 0;
// Acesso sequencial em memória (Cache-friendly)
for (int i = 0; i < L; i++) {
for (int j = 0; j < C; j++) {
soma += grande_matriz[i][j];
}
}
printf("Soma percorrida com minima perda de cache: %lld\n", soma);
return 0;
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |