1
Estruturas CompostasEstruturas Compostas
HomogêneasHomogêneas
(Matrizes)(Matrizes)
Programação I
ALG
2
Matrizes
Vimos que vetores são utilizados para armazenar dados de uma
única “fileira”.
Porém, existem situações em que a natureza dos dados exige uma
forma de armazenamento em mais de uma dimensão.
Para estas situações, existem as matrizes, que podem ser vistas
como vetores que possuem mais de uma dimensão (normalmente
duas).
Por ser bidimensional, uma matriz representa uma tabela de valores
colocados em linhas e colunas.
Para identificar um valor é necessário informar a linha e a coluna
Conhecidas como tabelas, ou variáveis indexadas bidimensionais
Um vetor pode ser visto como uma matriz com uma única linha.
3
Matrizes
Sintaxe para declaração de uma matriz:
Sintaxe para referenciação de uma posição:
Exemplos:
Declaração:
Referenciação:
<var> : vetor[<inicio1>..<fim1>,<inicio2>..<fim2>,...] de <tipo>;
valor : vetor[1..3,1..4] de real;
valor[1,1] <- 8.50;
<nome_vetor>[<posicao1>,<posicao2>,...];
valor[2,3] <- 7.3;
4
Matrizes
Exemplo
Um distribuidor de refrigerantes vende seu produto em todo o
país. Em cada trimestre do ano passado ele vendeu uma certa
quantidade de garrafas em cada região do Brasil. Faça um
algoritmo para ler as quantidades vendidas e escrever a
quantidade total vendida em todo o país.
Solução
Pelo enunciado do problema, vimos que existem 20 dados de
entrada, pois temos 4 trimestres no ano e cada trimestre teve
uma venda para cada uma das cinco regiões do Brasil.
O enunciado do problema também no leva a concluir que
devemos utilizar uma estrutura matricial ao invés de vetorial.
Temos vendas para regiões por trimestre.
5
Matrizes
Solução (cont.)
A tabela abaixo mostra uma representação possível para os dados do
problema:
840260014001600210
50021009501000140
65023001100980180
40015009001150150
1 - Norte 2 - Nordeste 3 - Sul 4 - Sudeste 5 – Centro-
Oeste
1º Trimestre
2º Trimestre
3º Trimestre
4º Trimestre
6
Matrizes
Solução (cont.):
Então o algoritmo fica assim:
Variáveis
quant : vetor[1..4,1..5] de inteiro;
i, j, soma : inteiro;
Início
para i de 1 até 4 faça
para j de 1 até 5 faça [[
escrever “Informe a quantidade do “, i, “º trimestre e “, j, “ª região: “;
ler quant[i,j];
]];
soma = 0;
para i de 1 até 4 faça
para j de 1 até 5 faça
soma = soma + quant[i,j];
escrever “O total das quantidades vendidas é ”, soma;
Fim.
2
7
Matrizes em VisuAlg
Acessando os elementos de um array multidimensional:
var
i , j : inteiro
a : vetor [1..3, 1..2] de inteiro
inicio
para i de 1 ate 3 faca
para j de 1 ate 2 faca
escrevaL(a[ i , j ] )
fimpara
fimpara
fimalgoritmo
8
Solução Exemplo em VisuAlg
algoritmo "matriz_vendas"
var
quant : vetor [1..4, 1..5] de inteiro
i , j , soma : inteiro
inicio
para i de 1 ate 4 faca
para j de 1 ate 5 faca
escreva("Informe a quantidade do ", i,"º trimestre e ", j, "ª região: ")
leia(quant[ i , j ])
fimpara
fimpara
soma <- 0
para i de 1 ate 4 faca
para j de 1 ate 5 faca
soma <- soma + quant[ i , j ]
fimpara
fimpara
escrevaL("O total das quantidades vendidas é ", soma)
fimalgoritmo
9
Matrizes
Exercício
Faça um programa que solicite ao usuário os dados de uma
matriz com 3 linhas e 4 colunas de números inteiros. Em
seguida, exiba a matriz digitada pelo usuário, colocando todos
os elementos de cada linha em uma mesma linha da tela.
10
Solução
algoritmo "matriz"
var
i , j : inteiro
a : vetor [1..3, 1..4] de inteiro
inicio
para i de 1 ate 3 faca
para j de 1 ate 4 faca
escreva("digite o valor do elemento da ",i,"º linha e ",j,"º coluna: ")
leia(a[ i , j ])
fimpara
fimpara
escrevaL("A matriz digitada foi:")
para i de 1 ate 3 faca
para j de 1 ate 4 faca
escreva(a[ i , j ] )
fimpara
escrevaL()
fimpara
fimalgoritmo
11
Matrizes
Exercícios
Faça um programa que leia uma matriz e exiba o menor valor, o
maior valor e a média dos elementos presentes nesta matriz.
Crie uma matriz 7x8 onde cada elemento é a soma dos índices
de sua posição dentro da matriz.
DÚVIDAS ?DÚVIDAS ?
Programação I
ALG

Alg aula 07 - matrizes tp1

  • 1.
    1 Estruturas CompostasEstruturas Compostas HomogêneasHomogêneas (Matrizes)(Matrizes) ProgramaçãoI ALG 2 Matrizes Vimos que vetores são utilizados para armazenar dados de uma única “fileira”. Porém, existem situações em que a natureza dos dados exige uma forma de armazenamento em mais de uma dimensão. Para estas situações, existem as matrizes, que podem ser vistas como vetores que possuem mais de uma dimensão (normalmente duas). Por ser bidimensional, uma matriz representa uma tabela de valores colocados em linhas e colunas. Para identificar um valor é necessário informar a linha e a coluna Conhecidas como tabelas, ou variáveis indexadas bidimensionais Um vetor pode ser visto como uma matriz com uma única linha. 3 Matrizes Sintaxe para declaração de uma matriz: Sintaxe para referenciação de uma posição: Exemplos: Declaração: Referenciação: <var> : vetor[<inicio1>..<fim1>,<inicio2>..<fim2>,...] de <tipo>; valor : vetor[1..3,1..4] de real; valor[1,1] <- 8.50; <nome_vetor>[<posicao1>,<posicao2>,...]; valor[2,3] <- 7.3; 4 Matrizes Exemplo Um distribuidor de refrigerantes vende seu produto em todo o país. Em cada trimestre do ano passado ele vendeu uma certa quantidade de garrafas em cada região do Brasil. Faça um algoritmo para ler as quantidades vendidas e escrever a quantidade total vendida em todo o país. Solução Pelo enunciado do problema, vimos que existem 20 dados de entrada, pois temos 4 trimestres no ano e cada trimestre teve uma venda para cada uma das cinco regiões do Brasil. O enunciado do problema também no leva a concluir que devemos utilizar uma estrutura matricial ao invés de vetorial. Temos vendas para regiões por trimestre. 5 Matrizes Solução (cont.) A tabela abaixo mostra uma representação possível para os dados do problema: 840260014001600210 50021009501000140 65023001100980180 40015009001150150 1 - Norte 2 - Nordeste 3 - Sul 4 - Sudeste 5 – Centro- Oeste 1º Trimestre 2º Trimestre 3º Trimestre 4º Trimestre 6 Matrizes Solução (cont.): Então o algoritmo fica assim: Variáveis quant : vetor[1..4,1..5] de inteiro; i, j, soma : inteiro; Início para i de 1 até 4 faça para j de 1 até 5 faça [[ escrever “Informe a quantidade do “, i, “º trimestre e “, j, “ª região: “; ler quant[i,j]; ]]; soma = 0; para i de 1 até 4 faça para j de 1 até 5 faça soma = soma + quant[i,j]; escrever “O total das quantidades vendidas é ”, soma; Fim.
  • 2.
    2 7 Matrizes em VisuAlg Acessandoos elementos de um array multidimensional: var i , j : inteiro a : vetor [1..3, 1..2] de inteiro inicio para i de 1 ate 3 faca para j de 1 ate 2 faca escrevaL(a[ i , j ] ) fimpara fimpara fimalgoritmo 8 Solução Exemplo em VisuAlg algoritmo "matriz_vendas" var quant : vetor [1..4, 1..5] de inteiro i , j , soma : inteiro inicio para i de 1 ate 4 faca para j de 1 ate 5 faca escreva("Informe a quantidade do ", i,"º trimestre e ", j, "ª região: ") leia(quant[ i , j ]) fimpara fimpara soma <- 0 para i de 1 ate 4 faca para j de 1 ate 5 faca soma <- soma + quant[ i , j ] fimpara fimpara escrevaL("O total das quantidades vendidas é ", soma) fimalgoritmo 9 Matrizes Exercício Faça um programa que solicite ao usuário os dados de uma matriz com 3 linhas e 4 colunas de números inteiros. Em seguida, exiba a matriz digitada pelo usuário, colocando todos os elementos de cada linha em uma mesma linha da tela. 10 Solução algoritmo "matriz" var i , j : inteiro a : vetor [1..3, 1..4] de inteiro inicio para i de 1 ate 3 faca para j de 1 ate 4 faca escreva("digite o valor do elemento da ",i,"º linha e ",j,"º coluna: ") leia(a[ i , j ]) fimpara fimpara escrevaL("A matriz digitada foi:") para i de 1 ate 3 faca para j de 1 ate 4 faca escreva(a[ i , j ] ) fimpara escrevaL() fimpara fimalgoritmo 11 Matrizes Exercícios Faça um programa que leia uma matriz e exiba o menor valor, o maior valor e a média dos elementos presentes nesta matriz. Crie uma matriz 7x8 onde cada elemento é a soma dos índices de sua posição dentro da matriz. DÚVIDAS ?DÚVIDAS ? Programação I ALG