You are on page 1of 7

Aula 6: MATRIZ MULTIDIMENSSIONAL

ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco

Vetor Multidimensional

Um vetor multidimensional pode ser descrito como um
vetor de vetores.
Por exemplo, um vetor bidimensional (matriz) pode ser
visto como uma tabela bidimensional em que todos os
elementos são do mesmo tipo dados.

<tipo-de-dados> <id-do-vetor> [linha] [coluna]

ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 106

1

ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 107 Exemplo Matriz [3][4] O nome do array é c Coluna 0 Coluna 1 Coluna 2 Coluna 3 Linha 0 C [0] [0] C [0] [1] C [0] [2] C [0] [3] Linha 1 C [1] [0] C [1] [1] C [1] [2] C [1] [3] Linha 2 C [2] [0] C [2] [1] C [2] [2] C [2] [3] Índice da Coluna Índice da Linha Nome de um elemento do array individual ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 108 2 . nesta estrutura o índice da esquerda indexa as linhas e o da direita indexa as colunas. Mais uma vez é bom lembrar que em C++ os índices variam de zero ao valor declarado. menos um. mais C++ não vai verificar isto para o usuário. Vetor Multidimensional É muito importante ressaltar que. Manter os índices na faixa permitida e tarefa do programador.

Declarando um array bidimensional b int b[ 2 ][ 3 ] = { { 1. { 4. 6 } }. O exemplo seguinte define um vetor de três dimensões. A forma de o definir em C++ é: int mat[3][5]. A linha 0 contém valores 1 e 0 (implicitamente inicializados em zero). int multiVec[100][200][50]. 5. Podem ter as dimensões que o programador achar necessário. 4 } }. 3 }. A linha 1 contém os valores 3 e 4. Declaração e inicialização de Matriz A variável mat representa um vetor bidimensional de 3 linhas e 5 colunas. { 3. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 109 Declaração A instrução mat[1][3] referencia o elemento da segunda linha e da quarta coluna. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 110 3 . Os vetores multi–dimensionais não estão limitados a duas dimensões. 2. 1e2e3inicializam b[ 0 ][ 0 ] e b[ 0 ][ 1 ] e b[0][2] 4e5e6 inicializam b[ 1 ][ 0 ] e b[ 1 ][ 1 ]e b[1][2] int b[ 2 ][ 2 ] = { { 1 }.

Imprimir os valores o vetor. a = vec[1][3]. Acesso ao Elemento Por exemplo a seguinte instrução permite armazenar o valor 75 na posição [2][1] do vetor vec. lin < 3.i++) for(int j=0. col++ ) total += a[ lin ][ col ]. col < 4. Exemplo – Total de todos os elementos total = 0. Enquanto a seguinte instrução permite atribuir o valor da posição [1][3] do vec a uma variável a do tipo int. col < 4. vec[2][1] = 75.j++) cout<<“”<<vec[i][j]. col++ ) a[ 2 ][ col ] = 0. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 112 4 . i<linha. j<coluna. for(int i=0. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 111 Manipulação Manipulações de array multidimensional Comumente executadas com instruções for Exemplo – Modificar todos os elementos em uma linha for(int col=0. lin++ ) for ( col = 0. for ( lin = 0.

j < 3. s=0. for ( int i = 0. i<LINHA. 3 }. j++ ) cout <<i<<j<<"-"<<array1[ i ][ j ] << ' '. } ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 114 5 . 4. 2.32 . 2 }. i++ ) for ( int j = 0. 3.78 . 5 }. j<COLUNA. array3[ 2 ][ 3 ] = { { 1. { 4.45 . cout<<" Soma : "<<s<<endl . for ( int i = 0. for ( i =0. int main ( ) { int vec [LINHA][COLUNA]={23 . 2. 6 } }.98. } ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 113 Exemplo #include<iostream> #define LINHA 2 #define COLUNA 3 using namespace std. i++ ) for ( int j = 0. j++ ) cout <<i<<j<<"-"<<array2[ i ][ j ] << ' '. cout << "\n". 99} . i++ ) for ( int j = 0. j < 3. i++) for ( j =0. j++ ) cout <<i<<j<<"-"<<array3[ i ][ j ] << ' '. j. array2[ 2 ][ 3 ] = { 1. 5. i < 2. cout << "\n". j++) s=s + vec [ i ][ j ] . i < 2. for ( int i = 0. j < 3. i < 2. Exemplo int main(){ int array1[ 2 ][ 3 ] = { { 1. { 4 } }. i .

Faça um programa que leia uma matriz de números inteiros de dimensões 4x4 e imprima a multiplicação de todos os elementos da matriz. Dada uma matriz B de dimensão 2 x 3. Exercícios Escreva um algoritmo que efetue a leitura de dados para serem armazenados em uma matriz quadrada de inteiros com 16 elementos e a imprima posteriormente. calcule C = K * B. Faça um programa que leia uma matriz de números inteiros de dimensões 4x4 e imprima a soma dos valores de cada linha. a soma entre duas matrizes inteiras que comportem 6 elementos. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 115 Exercícios Construa um programa que efetue a leitura. Salve em outra matriz. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 116 6 . sendo K um escalar fornecido pelo usuário. Imprima a matriz original (B) e a matriz resultante da multiplicação de B por K.

de valores reais. a média de suas notas. O programa deve armazenar todos os dados em uma matriz: a matrícula na primeira coluna e as notas nas colunas seguintes. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 118 7 . Coloque os elementos da diagonal secundária em um vetor S. de valores reais. que deve ser armazenada na quinta coluna da matriz. Exercícios Escreva um programa que leia uma matriz A de dimensão 4 x 4. O programa deverá calcular. Obs: A diagonal principal une o canto superior esquerdo ao canto inferior direito e a diagonal secundária inferior esquerdo a superior direito. No final imprima a matriz. Escreva um programa que leia uma matriz A de dimensão 3 x 3. para cada aluno. ENGENHARIAS – LINGUAGEM DE PROGRAMAÇÃO – Henry Lubanco 117 Exercícios Faça um programa que leia o número de matrícula de 4 alunos e suas notas (3 notas para cada aluno). calcule e imprima a soma dos elementos da diagonal principal.