Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Matriz
Profª Roberta Braga Tôrres
E-mail: roberta@ucam-campos.br
Estruturas de Dados - Matriz
Contexto
Imagine uma situação onde você tenha que fazer um programa
para armazenar as notas P1 e P2 dos 70 alunos de uma disciplina.
SOLUÇÃO TRIVIAL: criar dois vetores unidimensionais.
float vetorP1[70];
float vetorP2[70];
SOLUÇÃO OTIMIZADA: criar um vetor multidimensional, ou seja,
uma MATRIZ composta de N linhas x M colunas.
Estruturas de Dados - Matriz
Contexto
Geralmente as matrizes são usadas em situações que precisam de
linhas e colunas para identificação de elementos. Exemplos:
Tabuleiro de Jogos (xadrez, dama, jogo da velha, batalha naval)
Matrizes matemáticas
Jogos de loteria
Palavras-cruzadas
Estruturas de Dados - Matriz
Sintaxe
A declaração de uma Matriz é feita da seguinte forma:
Tipo_dado nomeMatriz[ LINHAS ] [ COLUNAS ];
Onde tem-se que:
nomeMatriz: é o identificador da variável Matriz. Este nome é usado
para fazer referência a matriz no programa.
LINHAS : índice que indica quantas linhas a matriz terá.
COLUNAS: índice que indica quantas colunas a matriz terá.
Tipo_dado: tipo de dado que a matriz irá armazenar (int, float...).
Estruturas de Dados - Matriz
Exemplo
Declare uma matriz que armazene as notas de P1 e P2 de 50 alunos:
float vNotas[50] [2];
Inserindo a informação na matriz: NOTAS
vNotas[0] [0] = 10; P1 P2
vNotas[0] [2] = 9.5; 0 10,0 9,5
1 4,5 6,5
vNotas[4] [0] := 2.5;
2
vNotas[4] [1] := 1.5;
3
Implementação 4 2,5 1,5
FOR ( x = 0; x < 50; x++) ...
{ cout << “Nota P1: “ << vNotas[ x ] [ 1 ]; 50
cout << “Nota P2: “ << vNotas[ x ] [ 2 ] ;
}
Estruturas de Dados - Matriz
Exemplo
Defina uma matriz que armazene os nomes dos proprietários dos apartamentos de
um prédio. O prédio tem 3 andares e cada andar possui 5 apartamentos.
ANDARES APARTAMENTOS
0 1 2 0 1 2 3 4
0 JOSE 0 JOSE LUIZ
1 JOAO 1 LAIS
2 LAIS 2 JOAO ANA
3 LUIZ ANA
char vNomes[3] [5][20];
4
char vNomes[5][3][20]; // matriz 5 x 3 e nomes com 20 caracteres.
Implementação
FOR (J=0; J<3; J++)
{ FOR (I = 0. I < 5; I++)
cout << “Andar:” << J << “ - Apto: “ << I;
cin >> vNomes[ I ] [ J ];
}
Exercícios - Lista VI
Estruturas de Dados - Matriz
Exercícios – Lista VI
1. Faça um programa que leia a nota P1, P2 de 10 alunos, bem como o
nome do aluno. Crie um VETOR para armazenar os nomes e uma
MATRIZ para armazenar as notas. Ao final o programa deve apresentar
o nome do aluno e suas respectivas notas.
2. Faça um programa que armazene os nomes dos proprietários dos
apartamentos de um prédio. O prédio tem 3 andares e cada andar
possui 5 apartamentos. Ao final o programa deve listar os nomes dos
proprietários indicando o andar e seu apartamento.
3. Faça um programa para gerar a matriz A2 x 4, tal que a i j = 5 + 2j, se i=j ou
aij = i2 - j, se i ≠ j.
Exemplo: índices 0 1 2 3
0
1
Estruturas de Dados - Matriz
Exercícios – Lista VI
4. Faça um programa para:
a) Gerar a matriz M2x3, tal que mij = 2i+j
b) Gerar a matriz transposta de M. A matriz transposta é toda matriz
onde são trocadas as linhas pelas colunas ou vice-versa. Logo a matriz
transposta de M será uma matriz com 3 linhas e 2 colunas. Exemplo:
A B C A D
D E F B E
Matriz 2x3 C F
Transposta 3x2
c) Mostre a matriz M e a sua transposta.