Documente Academic
Documente Profesional
Documente Cultură
1
MATRIZES
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
2
MATRIZES
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:
Vetores: a
quantidade de linhas
é sempre 1!
3
MATRIZES
Notação
Como referenciar um elemento específico da
matriz?
Exemplo: Matriz 3x2 (três linhas e duas colunas)
1 2
1 As colunas
variam de 1
até 2
2
As linhas 3
variam de 1
até 3
4
MATRIZES
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
5
MATRIZES
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
6
MATRIZES
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
Coluna 1 2,1
7
MATRIZES
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
8
MATRIZES
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
9
SINTAXE NO VISUALG
Declaração:
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
10
SINTAXE NO VISUALG
Exemplo:
Paradeclarar uma matriz 3x2 de
inteiro
algoritmo “exemplo_matriz”
var
exMatriz: vetor [1..3, 1..2] de inteiro
inicio
...
11
SINTAXE NO VISUALG
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>])
12
SINTAXE NO VISUALG
Exemplo
var
:
algoritmo “exemplo_matriz”
1 2
1
exMatriz 13
SINTAXE NO VISUALG
Exemplo
var
:
algoritmo “exemplo_matriz”
1 2
1 10
exMatriz 14
SINTAXE NO VISUALG
Exemplo
var
:
algoritmo “exemplo_matriz”
1 2
1 10 7
exMatriz 15
SINTAXE NO VISUALG
Exemplo
var
:
algoritmo “exemplo_matriz”
1 2
1 10 7
3 4
exMatriz 16
SINTAXE NO VISUALG
Preenchendo uma matriz
Se quisermos atribuir valores a todas as posições
da matriz, podemos fazer:
algoritmo “preencher_matrizes”
var
numeros: vetor[1..3, 1..2] de inteiro
i: inteiro
inicio
para i de 1 ate 3 faca //fazer o para as linhas
laço ovalor para a posicao ”, i, “,
escreva(“Digite 1]) 1”:)
ovalor para
leia(numeros[i, 2]) a posicao ”, i, “, 2”:)
fimpara
fimalgoritmo escreva(“Digite
leia(numeros[i,
17
SINTAXE NO VISUALG
Preenchendo uma matriz
Se quisermos atribuir valores a todas as posições
da matriz, podemos fazer:
18
SINTAXE NO VISUALG
Preenchendo uma matriz
Entretanto,à medida que a quantidade de elementos
da matriz aumenta, fica complicado fazermos
manualmente para todas as posições.
19
SINTAXE NO VISUALG
Preenchendo uma matriz
Podemos criar um laço de repetição para variar
pelas linhas, por exemplo:
20
SINTAXE NO VISUALG
Preenchendo uma matriz
E podemos ainda incluir um laço de
repetição para variar pelas colunas também, por
exemplo:
21
SINTAXE NO VISUALG
Preenchendo uma matriz
Saída:
22
SINTAXE NO VISUALG
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
23
SINTAXE NO VISUALG
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:
24
SINTAXE NO VISUALG
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:
25
EXEMPLO 1
Criar um algoritmo que leia uma matriz 3x3 e exiba
a matriz preenchida:
26
EXEMPLO 1
Criar um algoritmo que leia uma matriz 3x3 e exiba
a matriz preenchida:
27
EXEMPLO 1
Saída
:
28
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
29
EXEMPLO 2
Resolução
:
30
EXEMPLO 2
Saída
:
31
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”.
32
EXEMPLO 3
33
EXEMPLO 3
Saída
:
34
Para quem Matriz e Vetor?
Vetores e Matrizes são estruturas de dados muito
simples que podem nos ajudar muito quando temos
muitas variáveis do mesmo tipo em um algoritmo.
Imagine o seguinte problema:
-> Você precisa criar um algoritmo que lê o nome e as 4 notas de 50
alunos, calcular a média de cada aluno e informar quais foram
aprovados e quais foram reprovados. Conseguiu imaginar quantas
variáveis você vai precisar?
-> Vamos fazer uma conta rápida: 50 variáveis para armazenar os
nomes dos alunos, (4 * 50 = ) 200 variáveis para armazenar as 4
notas de cada aluno e por fim, 50 variáveis para armazenar as
médias de cada aluno. 300 variáveis no total, sem contar a
quantidade de linhas de código que você vai precisar para ler todos
os dados do usuário, calcular as médias e apresentar os resultados.
35
Resumo (Matrizes e Vetores)
Vetor (array uni-dimensional) é uma variável que
armazena várias variáveis do mesmo tipo. No problema
apresentado anteriormente, nós podemos utilizar um
vetor de 50 posições para armazenar os nomes dos 50
alunos.
Matriz (array multi-dimensional) é um vetor de vetores.
No nosso problema, imagine uma matriz para
armazenar as 4 notas de cada um dos 50 alunos. Ou
seja, um vetor de 50 posições, e em cada posição do
vetor, há outro vetor com 4 posições. Isso é uma matriz.
36
Resumo (Matrizes e Vetores)
37
EXERCÍCIOS
1. Crie um algoritmo que leia uma matriz 5x5. Em
seguida, conte quantos números pares existem na
matriz.
Soma Coluna 1 = 8
Soma Coluna 2 = 5
Soma Coluna 3 = 6
38
EXERCÍCIOS
3. Crie um algoritmo que calcule a média dos elementos
de uma matriz 5x2.
40
EXERCÍCIOS
7. Uma cooperativa de agricultores coletou a temperatura
mínima diária de 05 locais de uma região ao longo do
mês de maio de 2017. Digitar esses valores (números
reais). Valores válidos: entre –10 e 40. Mostrar para cada
um dos 05 locais: as temperaturas fornecidas, a
temperatura mínima, a máxima e a média das
temperaturas do local. Mostrar também a temperatura
mínima geral, a máxima geral e a média geral da região.
41
EXERCÍCIOS
8. Nofinal do semestre, um professor está preparando os
conceitos de uma turma com 20 alunos. Foram realizadas
duas provas e um trabalho extra-classe, com notas entre
0 e 10, podendo ter decimais. Cada uma das provas vale
40% e o trabalho 20% da nota final. Fornecer: as 3 notas,
a nota final e o conceito de cada um dos alunos da turma.
Fornecer também a média de cada uma das provas e do
trabalho.
Tabela para conversão da nota final em conceito:
42
VETORES E MATRIZES
46