Arrays Multidimensionais e Matrizes em C++
Curso de C++ para Engenharia
Tópicos
- Declaração e inicialização de arrays 2D e 3D
- Passando arrays 2D e 3D como argumentos para funções
- Acesso e manipulação de elementos
- Aplicações práticas de matrizes
Declaração e Inicialização
Arrays 2D
int matriz[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
Declaração e Inicialização
Arrays 3D
int cubo[2][3][4] = {
{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}},
{{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}
};
Passando Arrays como Argumentos
Array 2D
void funcao(int matriz[][4], int linhas, int colunas) {
// Código aqui
}
int main() {
int m[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
funcao(m, 3, 4);
return 0;
}
Passando Arrays como Argumentos
Array 3D
void funcao(int cubo[][3][4], int profundidade, int linhas, int colunas) {
// Código aqui
}
int main() {
int c[2][3][4] = {
{{1,2,3,4}, {5,6,7,8}, {9,10,11,12}},
{{13,14,15,16}, {17,18,19,20}, {21,22,23,24}}
};
funcao(c, 2, 3, 4);
return 0;
}
Acesso e Manipulação
int matriz[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
// Acessar elemento
int elemento = matriz[1][2]; // elemento = 7
// Modificar elemento
matriz[0][3] = 100;
// Iteração
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << matriz[i][j] << " ";
}
cout << endl;
}
Travessia de Matriz em C++
Aplicações Práticas
- Processamento de imagens
- Simulações físicas
- Algoritmos de grafos
- Resolução de sistemas lineares
Multiplicação de Matrizes
Conceito
- Operação fundamental em álgebra linear
- Multiplica-se uma matriz m x n por uma matriz n x p
- Resultado é uma matriz m x p
- Cada elemento é a soma dos produtos dos elementos correspondentes
Multiplicação de Matrizes 3x2 por 2x3
Multiplicação de Matrizes
Implementação em C++
void multiplicaMatrizes(int A[][3], int B[][2], int C[][2],
int m, int n, int p) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < p; j++) {
C[i][j] = 0;
for (int k = 0; k < n; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
Multiplicação de Matrizes
Explicação do Código
m: número de linhas de A
n: número de colunas de A / linhas de B
p: número de colunas de B
- Três loops aninhados para percorrer as matrizes
- Loop interno calcula o produto escalar de uma linha de A com uma coluna de B
Multiplicação de Matrizes
Exemplo de Uso
int main() {
int A[2][3] = {{1, 2, 3}, {4, 5, 6}};
int B[3][2] = {{7, 8}, {9, 10}, {11, 12}};
int C[2][2];
multiplicaMatrizes(A, B, C, 2, 3, 2);
// Imprimir resultado
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}
return 0;
}
Conclusão
- Arrays multidimensionais são essenciais em C++
- Úteis para representar dados em várias dimensões
- Amplamente utilizados em engenharia e ciência da computação
- Prática e exercícios são fundamentais para dominar o conceito