Você está na página 1de 13

Estrutura de dados:

Matrizes
Introdução
◦ Matriz: é uma variável composta homogênea (armazena valores
do mesmo tipo)
◦ Tipo da variável corresponde ao tipo do dado armazenado (int,
float, char, string, bool).
◦ Os valores são armazenados sequencialmente e são acessados por
um mesmo nome e sua posição.

2
Introdução
◦ Vetor : variável composta unidimensional (um índice)

vet 10 5 4 2 -7 34 9 0 52 2
0 1 2 3 4 5 6 7 8 9

◦ Matriz: variável composta bidimensional (dois índices: linha e coluna)


mat
0 26 12 5
1 2 6 -7
0 1 2

3
Declaração de Matrizes
◦ As matrizes em C/C++ são identificados pela existência de dois
colchetes logo após o nome da variável no momento da declaração.
◦ Dentro do 1º colchetes deve-se colocar a quantidade de linhas da
matriz e 2º colchetes a quantidade de colunas
tipo nome [qtidade_linhas][qtidade_colunas];

int matriz[10][3];
int valores[30][100];
float precos[20][20];
string nomes[15][2];

4
Declaração de Matrizes
◦ Exemplo:
int mat[2][10];

//Cria espaço na memória para guardar uma matriz de inteiros com 2 linhas
e //10 colunas

mat

5
Atribuindo valores à matriz
◦ As atribuições em matrizes exigem que seja informada em qual de
suas linhas e colunas o valor ficará armazenado.
int mat[2][10];

mat[1][0] = 1; //insere o valor 1 na linha de índice 1, coluna de índice 0


mat[0][3] = 7; //insere o valor 7 na linha de índice 0, coluna de índice 3
mat[1][8] = -3 //insere o valor -3 na linha de índice 1, coluna de índice
8

0 7
1 1 -3
0 1 2 3 4 5 6 7 8 9

6
Preenchendo uma matriz
◦ Preencher uma matriz significa atribuir valores a todas as suas
posições. Assim, deve-se implementar um mecanismo que
controle o índice da linha e outro que controle o índice da coluna.
◦ Via leitura:
M
0
1
0 1 2

7
M[0][0]
J = 0; J < 3; J++
Leitura da matriz
M por linha
M[0][1]
I = 0; I < 2; I++
M[0][J]

M
M[0][2] J = 0; J < 3; J++
0
--------------------------------
1
0 1 2 M[I][J]
M[1][0]
J = 0; J < 3; J++

M[1][1]
M[1][J]

M[1][2]

8
cout << “Digite os elementos da matriz: “;
cin >> M[0][0];
Leitura da matriz cin >> M[0][1];
M por linha cin >> M[0][2];
cin >> M[1][0];
cin >> M[1][1];
cin >> M[1][2];
M
0 cout << “Digite os elementos da 1ª linha: “;
for (j = 0; j < 3; j++){
1
cin >> M[0][j];
0 1 2 }
cout << “Digite os elementos da 2ª linha: “;
for (j = 0; j < 3; j++){
cin >> M[1][j];
}

9
0
1

Leitura da matriz por linha 0 1 2

for(j=0; j<3; j++){


for (i=0; i<2; i++){
cout <<"\n Digite um elemento da matriz:";
cin >> M[i][j];
}
}

E, se a leitura for por coluna, como ficam os comandos?

10
Exibindo elementos de uma matriz
◦ Mostrar os valores contidos em uma matriz também exige a
utilização de índices de linha e coluna.
for(i=0; i<2; i=i+1){
for (j=0; j<3; j=j+1){
cout << M[i][j]<<“ “; 1 2 3 4 5 6
}
}

◦ Todas as ações realizadas com matrizes exigem a utilização dos


índices de linha e coluna.
11
Exemplos
1. Faça um algoritmo que preencha uma matriz de 5x5 com o elemento 1 em todas as
posições e exiba a matriz.
2. Faça um algoritmo que solicita ao usuário 15 valores reais e armazene em uma
matriz 3x5 e exiba a matriz. A seguir, troque todos os elementos da matriz que sejam
maiores do que 100 pelo valor zero e exiba a matriz novamente.
3. Preencha uma matriz 4x4 e exiba a matriz. A seguir, informe o menor elemento da
matriz.
4. Preencha uma matriz 5x5 e exiba a matriz. A seguir, calcule o somatório dos valores
que estão na diagonal principal da matriz.
5. Preencha uma matriz 5x5 e exiba a matriz. A seguir, crie um vetor de 5 posições
preenchido com os elementos da diagonal principal da matriz e exiba o vetor.

12
X
X
X
X
X

M[0][0]
M[1][1]
M[2][2]
M[3][3]
M[4][4]

13

Você também pode gostar