M ATRIZES
M ATRIZES
O que é uma matriz?
⚫ Uma estrutura de dados que contém várias variáveis do
mesmo tipo
Qual a diferença de vetores para matrizes?
⚫ Vetores são, na verdade, matrizes de uma única
dimensão:
Matrizes
Vetores
1 3 M J K 1.1 7.5 9.2 8.8
1 3 4 6
40 4 G A C 9.0 1.3 5.5 7.9
a maria jota 6 12 L Z H
M ATRIZES
As matrizes são, comumente referenciadas através
de suas dimensões (quantidade de linhas e colunas)
A notação comum é: MxN, onde
⚫ M é a dimensão vertical (quantidade de linhas)
⚫ N é dimensão horizontal (quantidade de colunas)
Exemplo:
3x3 3x2 2x3 4x1 1x3
Vetores: a
quantidade de
linhas é sempre 1!
M ATRIZES
Notação
⚫ Como referenciar um elemento específico da matriz?
⚫ Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
As colunas
1
variam de 1
até 2
2
As linhas 3
variam de 1
até 3
M ATRIZES
Notação
⚫ Como referenciar um elemento específico da matriz?
⚫ Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
Linha 1
1 1,1 Coluna 1
Para acessar esse
elemento, devemos
observar qual 2
cruzamento linha x
coluna da matriz ele
representa 3
M ATRIZES
Notação
⚫ Como referenciar um elemento específico da matriz?
⚫ Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
Linha 1
1 1,1 1,2 Coluna 2
3
M ATRIZES
Notação
⚫ Como referenciar um elemento específico da matriz?
⚫ Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
1 1,1 1,2
Linha 2
Coluna 1 2 2,1
3
M ATRIZES
Notação
⚫ Como referenciar um elemento específico da matriz?
⚫ Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
1 1,1 1,2
Linha 2
2 2,1 2,2 Coluna 2
3
M ATRIZES
Notação
⚫ Como referenciar um elemento específico da matriz?
⚫ Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
1 1,1 1,2
2 2,1 2,2
Linha 3
Linha 3 3
3,1 3,2 Coluna 2
Coluna 1
S INTAXE NO V ISUAL G
Declaração:
<nome_variavel>: vetor [li..lf, ci..cf] de <tipo>
Onde:
⚫ li e lf representam, respectivamente o índice
inicial e final das linhas e
⚫ ci e cf representam, respectivamente o índice
inicial e final das colunas
S INTAXE NO V ISUAL G
Exemplo:
⚫ Para declarar uma matriz 3x2 de inteiro
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
...
Linhas: o índice das Colunas: o índice das
linhas varia de 1 até 3 colunas varia de 1 até 2
S INTAXE NO V ISUAL G
Preenchendo e acessando uma matriz
⚫ As posições das matrizes são identificados pelos
índices das linhas e colunas
Atribuição
<nome_variavel> [<linha>, <coluna>] <valor>
<nome_variavel> [<linha>, <coluna>] := <valor>
leia(<nome_variavel> [<linha>, <coluna>])
S INTAXE NO V ISUAL G
Exemplo:
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
exMatriz[1,1] 10
leia(exMatriz[1,2])
exMatriz[3,1] := 4
fimalgoritmo
1 2
exMatriz
S INTAXE NO V ISUAL G
Exemplo:
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
exMatriz[1,1] 10
leia(exMatriz[1,2])
exMatriz[3,1] := 4
fimalgoritmo
1 2
1 10
exMatriz
S INTAXE NO V ISUAL G
Exemplo:
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
exMatriz[1,1] 10
leia(exMatriz[1,2])
exMatriz[3,1] := 4
fimalgoritmo
1 2
1 10 7
exMatriz
S INTAXE NO V ISUAL G
Exemplo:
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
exMatriz[1,1] 10
leia(exMatriz[1,2])
exMatriz[3,1] := 4
fimalgoritmo
1 2
1 10 7
3 4
exMatriz
S INTAXE NO V ISUAL G
Preenchendo uma matriz
⚫ Se quisermos atribuir valores a todas as posições da
matriz, podemos fazer:
S INTAXE NO V ISUAL G
Preenchendo uma matriz
⚫ Entretanto, à medida que a quantidade de elementos
da matriz aumenta, fica complicado fazermos
manualmente para todas as posições.
⚫ O melhor caminho é utilizar laços de repetição!
S INTAXE NO V ISUAL G
Preenchendo uma matriz
⚫ Podemos criar um laço de repetição para variar pelas
linhas, por exemplo:
S INTAXE NO V ISUAL G
Preenchendo uma matriz
⚫ E podemos ainda incluir um laço de repetição para
variar pelas colunas também, por exemplo:
S INTAXE NO V ISUAL G
Preenchendo uma matriz
⚫ Saída:
S INTAXE NO V ISUAL G
Exibindo o conteúdo de uma matriz:
...
escreva(“O valor que está na posição [1,1] é: ”, numeros[1,1])
escreva(“O valor que está na posição [1,2] é: ”, numeros[1,2])
escreva(“O valor que está na posição [2,1] é: ”, numeros[2,1])
escreva(“O valor que está na posição [2,2] é: ”, numeros[2,2])
escreva(“O valor que está na posição [3,1] é: ”, numeros[3,1])
escreva(“O valor que está na posição [3,2] é: ”, numeros[3,2])
fimalgoritmo
S INTAXE NO V ISUAL G
Exibindo o conteúdo de uma matriz
⚫ Ou podemos utilizar um laço de repetição para
facilitar a exibição dos valores de uma matriz
⚫ Criando um laço para percorrer as linhas:
Exemplo:
S INTAXE NO V ISUAL G
Exibindo o conteúdo de uma matriz
⚫ E podemos ainda incluir um laço de repetição para
variar pelas colunas também, por exemplo:
EXEMPLO 1
Criar um algoritmo que leia uma matriz 3x3 e
exiba a matriz preenchida:
EXEMPLO 1
Saída:
EXEMPLO 2
Criar um algoritmo que leia uma matrizes 3x3.
Em seguida, exiba a soma dos elementos de cada
uma das linhas. Ex:
1 2 2 Soma Linha 1 = 5
3 2 3 Soma Linha 2 = 8
4 1 1 Soma Linha 3 = 6
EXEMPLO 2
Resolução:
EXEMPLO 2
Saída:
EXEMPLO 3
Escreva um algoritmo que leia uma matriz 4x3.
Em seguida, receba um novo valor do usuário e
verifique se este valor se encontra na matriz.
Caso o valor se encontre na matriz, escreva a
mensagem “O valor se encontra na matriz”. Caso
contrário, escreva a mensagem “O valor N Ã O se
encontra na matriz”.
EXEMPLO 3
EXEMPLO 3
Saída:
E XERCÍCIOS
1. Crie um algoritmo que leia uma matriz 5x5. Em seguida,
conte quantos números pares existem na matriz.
2. Crie um algoritmo que leia uma matriz 3x3 e calcule a
soma dos valores das colunas da matriz. Ex:
1 2 2
3 2 3
4 1 1
Soma Coluna 1 = 8
Soma Coluna 2 = 5
Soma Coluna 3 = 6
E XERCÍCIOS
3. Crie um algoritmo que calcule a média dos elementos de
uma matriz 5x2.
4. Crie um algoritmo informe qual o maior e qual o menor
elemento existente em uma matriz 6x3.
5. Crie um algoritmo que leia uma matriz 3x3 e crie uma
nova matriz que seja a matriz transposta da primeira
(troque as linhas por colunas) Ex:
Matriz Matriz Transposta
1 2 3 1 4 7
4 5 6 2 5 8
7 8 9 3 6 9
E XERCÍCIOS
7. Crie um algoritmo que leia duas matrizes 2x5 e crie uma
terceira matriz também 2x5 com o valor da soma dos
elementos de mesmo índice. Ex:
Matriz1 + Matriz2 = Matriz3
1 2 2 4 3 6
3 2 5 3 8 5
4 1 7 7 11 8
5 5 4 4 9 9
1 2 1 9 2 11