Linguagem de Programação - Vetor Multidimensional
7 pág.

Linguagem de Programação - Vetor Multidimensional


DisciplinaProgramação I21.858 materiais250.187 seguidores
Pré-visualização1 página
18/03/2012
1
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Vetor Multidimensional
104
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 \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Vetor Multidimensional
105
É muito importante ressaltar que, 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. Manter os índices na faixa permitida e
tarefa do programador.
18/03/2012
2
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo Matriz [3][4]
106
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]
O nome do array é c
Índice da Coluna
Índice da Linha
Nome de um elemento 
do array individual
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Declaração e inicialização de 
Matriz
107
A variável mat representa um vetor bidimensional de 3
linhas e 5 colunas. A forma de o definir em C++ é:
int mat[3][5]; 
Declarando um array bidimensional b
int b[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } };
1 e 2 inicializam b[ 0 ][ 0 ] e b[ 0 ][ 1 ]
3 e 4 inicializam b[ 1 ][ 0 ] e b[ 1 ][ 1 ]
int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } };
A linha 0 contém valores 1 e 0 (implicitamente inicializados em
zero).
A linha 1 contém os valores 3 e 4.
18/03/2012
3
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Declaração
108
A instrução mat[1][3] referencia o elemento
da segunda linha e da quarta coluna.
Os vetores multi\u2013dimensionais não estão
limitados a duas dimensões. Podem ter as
dimensões que o programador achar
necessário. O exemplo seguinte define um
vetor de três dimensões.
int multiVec[100][200][50]; 
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Acesso ao Elemento
109
Por exemplo a seguinte instrução permite
armazenar o valor 75 na posição [2][1] do vetor
vec.
vec[2][1] = 75;
Enquanto a seguinte instrução permite atribuir o
valor da posição [1][3] do vec a uma variável a do
tipo int.
a = vec[1][3]; 
Imprimir os valores o vetor.
for(int i=0; i<linha;i++)
for(int j=0; i<coluna;j++)
cout<<\u201c\u201d<<vec[i][j];
18/03/2012
4
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Manipulação
110
Manipulações de array
multidimensional
Comumente executadas com instruções for
Exemplo
Modificar todos os elementos em uma linha
for ( int col = 0; col < 4; col++ )
a[ 2 ][ col ] = 0;
Exemplo
Total de todos os elementos
total = 0;
for ( lin = 0; lin < 3; lin++ )
for ( col = 0; col < 4; col++ )
total += a[ lin ][ col ];
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo
111
#include <iostream>
using namespace std;
int main(){
int array1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } },
array2[ 2 ][ 3 ] = { 1, 2, 3, 4, 5 },
array3[ 2 ][ 3 ] = { { 1, 2 }, { 4 } };
for ( int i = 0; i < 2; i++ )
for ( int j = 0; j < 3; j++ )
cout <<i<<j<<&quot;-&quot;<<array1[ i ][ j ] << ' ';
cout << &quot;\n&quot;;
for ( int i = 0; i < 2; i++ )
for ( int j = 0; j < 3; j++ )
cout <<i<<j<<&quot;-&quot;<<array2[ i ][ j ] << ' ';
cout << &quot;\n&quot;;
for ( int i = 0; i < 2; i++ )
for ( int j = 0; j < 3; j++ )
cout <<i<<j<<&quot;-&quot;<<array3[ i ][ j ] << ' ';
cout << &quot;\n&quot;;
system(&quot;pause&quot;);
return 0;
}
18/03/2012
5
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exemplo
112
#include<iostream>
#define LINHA 2
#define COLUNA 3
using namespace std;
int main ( )
{
int vec [LINHA][COLUNA]={23 ,45 ,32 ,78 ,98, 99} , i , j, s=0;
for ( i =0; i<LINHA; i++)
for ( j =0; j<COLUNA; j++)
S=s * vec [ i ][ j ] ;
cout<<&quot; Soma : &quot;<<s<<endl ;
return 0 ;
}
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
113
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.
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.
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.
18/03/2012
6
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
114
Construa um programa que efetue a leitura, a
soma e a impressão do resultado, entre duas
matrizes inteiras que comportem 6 elementos.
Dada uma matriz B de dimensão 2 x 3, calcule C
= K * B, sendo K um escalar fornecido pelo
usuário. Imprima a matriz original (B) e a matriz
resultante da multiplicação de B por K.
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
115
Escreva um programa que leia uma matriz A de
dimensão 4 x 5, de valores reais, calcule e
imprima a soma dos elementos da diagonal
principal.
Escreva um programa que leia uma matriz A de
dimensão 3 x 3, de valores reais, Coloque os
elementos da diagonal secundária em um vetor S.
18/03/2012
7
ENGENHARIAS \u2013 LINGUAGEM DE PROGRAMAÇÃO I \u2013 Henry Costa Lubanco / Joelio Piraciaba
Exercícios
116
Faça um programa que leia o número de
matrícula de 4 alunos e suas notas (3 notas para
cada aluno). O programa deve armazenar todos
os dados em uma matriz: a matrícula na primeira
coluna e as notas nas colunas seguintes. O
programa deverá calcular, para cada aluno, a
média de suas notas, que deve ser armazenada na
sétima coluna da matriz. No final imprima a
matriz.