ALGORITMOS
Rodrigo Kiyoshi Saito / rodrigok@anchieta.br
Matrizes de duas ou mais
dimensão
• Também conhecidos como vetores
multidimensionais, possuem uma estruturas
de dados homogênea;
• Para cada dimensão da matriz, é necessário
uma variável auxiliar para poder fazer as
devidas manipulações de dados (leitura e
gravação)
Matrizes de duas ou mais
dimensão
• As matrizes podem possuir mais de 3
dimensões, porém, para nós seres humanos, é
um pouco difícil imaginar pois nosso mundo
possui 3 dimensões;
Matrizes de duas ou mais
dimensão
• Um dos exemplos de
utilização de matrizes poderia
ser a representação de um
prédio, a qual possui seus
andares e cada andar possui
apartamentos;
Matrizes de duas ou mais
dimensão
• Poderia ser um escaninho
para correspondências de
cartas
Matrizes de duas ou mais
dimensão
• Desenhos em um único
plano
Matrizes de duas ou mais
dimensão
• Com mais de duas
dimensões, podemos ter
o exemplo de um cubo
mágico e desenhos em
3D
Matrizes de duas ou mais
dimensão
• Em mais de 3 dimensões,
poderíamos ter a
representação da figura
Matrizes de duas ou mais
dimensão
• Ou outras figuras com mais de 3 dimensões:
Matrizes de duas ou mais
dimensão
• Para nossos estudos, estaremos estudando
matrizes de 2 dimensões.
Matrizes de duas ou mais
dimensão
• Exemplo em algoritmo:
• Um vetor multidimencial (matriz) 5 x 5 (linhas x
colunas) de inteiros poderia ter a seguinte
definição e declaração:
• tipo VCLASSE = matriz[1..5][1..5] de inteiros;
//definição do tipo da matriz
• CLASSE : VCLASSE //declaração da variável matriz
Matrizes de duas ou mais
dimensão
• A figura a seguir ilustra como a matriz CLASSE,
do tipo construído VCLASSE, poderia ser
representado. Observamos que a primeira
posição do vetor é 1, que é o limite inicial (LI),
e que a última posição é 5, que é o limite final
(LF);
Matrizes de duas ou mais
dimensão
1 M[1,1] M[1,2] M[1,3] M[1,4] M[1,5]
2 M[2,1] M[2,2] M[2,3] M[2,4] M[2,5]
3 M[3,1] M[3,2] M[3,3] M[3,4] M[3,5]
4 M[4,1] M[4,2] M[4,3] M[4,4] M[4,5]
5 M[5,1] M[5,2] M[5,3] M[5,4] M[5,5]
1 2 3 4 5
Matriz M
Linhas
Colunas
Matrizes de duas ou mais
dimensão
• O nome da matriz é determinada por meio do
identificador utilizado na declaração de
variáveis, e a posição, por meio da constante,
da expressão aritmética ou da variável que
estiver dentro dos colchetes, também
denominada índice;
Matrizes de duas ou mais
dimensão
• É importante não confundir o índice com o
elemento. O índice é a posição do vetor,
enquanto o elemento é o que está contido
naquela posição (valor)
• Após isolar um único elemento da matriz,
poderemos manipulá-la através de qualquer
operação de entrada, saída ou atribuição:
Matrizes de duas ou mais
dimensão
• Exemplo de manipulação:
Classe[1,1]  28
leia (Classe[1,5])
escreva (Classe[2,3])
Exemplo
• 1 - Faça um programa que leia 3 notas
escolares de 4 alunos (cada aluno contendo 3
notas), e mostre a soma de todas as notas:
Exemplo
programa soma_aluno
var
tipo mat = Matriz[1..4][1..3] de reais
mat_notas : mat
soma : real
lin, col : inteiro
inicio
soma  0
//laço para leitura das notas e armazenamento na matriz
para lin de 1 até 4 passo 1 faça
para col de 1 até 3 passo 1 faça
escreva “Digite a nota”, col, “para o aluno”, lin
leia mat_notas[lin][col]
fim_para
fim_para
//laço acumulador
para lin de 1 até 4 passo 1 faça
para col de 1 até 3 passo 1 faça
soma  soma + mat_notas[lin][col]
fim_para
fim_para
escreva “Total de notas de todas as provas é:”, Soma
fim
Exemplo
• 2 - Construa um algoritmo que preencha uma
matriz de 10 x 10, fazendo a leitura de cada
posição e apresente outra matriz com a
mesma estrutura que contenha cada posição
equivalente o valor em triplo, somente dos
elementos que sejam pares;
Exemplo
programa valor_triplo_de_pares
var
tipo mat = Matriz[1..10][1..10] de inteiros
mat_A, mat_B : mat
resto, lin, col : inteiro
inicio
//laço para leitura das notas e armazenamento na matriz
para lin de 1 até 10 passo 1 faça
para col de 1 até 10 passo 1 faça
escreva “Valor coluna[”, col, “] e linha [“, lin, “]”
leia mat_A[lin][col]
fim_para
fim_para
//Fazendo o processamento
para lin de 1 até 10 passo 1 faça
para col de 1 até 10 passo 1 faça
resto  mat_A[lin][col] MOD 2
se (resto = 0) então
mat_B[lin][col]  mat_A[lin][col] * 3
senão
mat_B[lin][col]  mat_A[lin][col]
fim_se
fim_para
fim_para
fim

Algoritmos - Aula 09 A - Matrizes

  • 1.
    ALGORITMOS Rodrigo Kiyoshi Saito/ rodrigok@anchieta.br
  • 2.
    Matrizes de duasou mais dimensão • Também conhecidos como vetores multidimensionais, possuem uma estruturas de dados homogênea; • Para cada dimensão da matriz, é necessário uma variável auxiliar para poder fazer as devidas manipulações de dados (leitura e gravação)
  • 3.
    Matrizes de duasou mais dimensão • As matrizes podem possuir mais de 3 dimensões, porém, para nós seres humanos, é um pouco difícil imaginar pois nosso mundo possui 3 dimensões;
  • 4.
    Matrizes de duasou mais dimensão • Um dos exemplos de utilização de matrizes poderia ser a representação de um prédio, a qual possui seus andares e cada andar possui apartamentos;
  • 5.
    Matrizes de duasou mais dimensão • Poderia ser um escaninho para correspondências de cartas
  • 6.
    Matrizes de duasou mais dimensão • Desenhos em um único plano
  • 7.
    Matrizes de duasou mais dimensão • Com mais de duas dimensões, podemos ter o exemplo de um cubo mágico e desenhos em 3D
  • 8.
    Matrizes de duasou mais dimensão • Em mais de 3 dimensões, poderíamos ter a representação da figura
  • 9.
    Matrizes de duasou mais dimensão • Ou outras figuras com mais de 3 dimensões:
  • 10.
    Matrizes de duasou mais dimensão • Para nossos estudos, estaremos estudando matrizes de 2 dimensões.
  • 11.
    Matrizes de duasou mais dimensão • Exemplo em algoritmo: • Um vetor multidimencial (matriz) 5 x 5 (linhas x colunas) de inteiros poderia ter a seguinte definição e declaração: • tipo VCLASSE = matriz[1..5][1..5] de inteiros; //definição do tipo da matriz • CLASSE : VCLASSE //declaração da variável matriz
  • 12.
    Matrizes de duasou mais dimensão • A figura a seguir ilustra como a matriz CLASSE, do tipo construído VCLASSE, poderia ser representado. Observamos que a primeira posição do vetor é 1, que é o limite inicial (LI), e que a última posição é 5, que é o limite final (LF);
  • 13.
    Matrizes de duasou mais dimensão 1 M[1,1] M[1,2] M[1,3] M[1,4] M[1,5] 2 M[2,1] M[2,2] M[2,3] M[2,4] M[2,5] 3 M[3,1] M[3,2] M[3,3] M[3,4] M[3,5] 4 M[4,1] M[4,2] M[4,3] M[4,4] M[4,5] 5 M[5,1] M[5,2] M[5,3] M[5,4] M[5,5] 1 2 3 4 5 Matriz M Linhas Colunas
  • 14.
    Matrizes de duasou mais dimensão • O nome da matriz é determinada por meio do identificador utilizado na declaração de variáveis, e a posição, por meio da constante, da expressão aritmética ou da variável que estiver dentro dos colchetes, também denominada índice;
  • 15.
    Matrizes de duasou mais dimensão • É importante não confundir o índice com o elemento. O índice é a posição do vetor, enquanto o elemento é o que está contido naquela posição (valor) • Após isolar um único elemento da matriz, poderemos manipulá-la através de qualquer operação de entrada, saída ou atribuição:
  • 16.
    Matrizes de duasou mais dimensão • Exemplo de manipulação: Classe[1,1]  28 leia (Classe[1,5]) escreva (Classe[2,3])
  • 17.
    Exemplo • 1 -Faça um programa que leia 3 notas escolares de 4 alunos (cada aluno contendo 3 notas), e mostre a soma de todas as notas:
  • 18.
    Exemplo programa soma_aluno var tipo mat= Matriz[1..4][1..3] de reais mat_notas : mat soma : real lin, col : inteiro inicio soma  0 //laço para leitura das notas e armazenamento na matriz para lin de 1 até 4 passo 1 faça para col de 1 até 3 passo 1 faça escreva “Digite a nota”, col, “para o aluno”, lin leia mat_notas[lin][col] fim_para fim_para //laço acumulador para lin de 1 até 4 passo 1 faça para col de 1 até 3 passo 1 faça soma  soma + mat_notas[lin][col] fim_para fim_para escreva “Total de notas de todas as provas é:”, Soma fim
  • 19.
    Exemplo • 2 -Construa um algoritmo que preencha uma matriz de 10 x 10, fazendo a leitura de cada posição e apresente outra matriz com a mesma estrutura que contenha cada posição equivalente o valor em triplo, somente dos elementos que sejam pares;
  • 20.
    Exemplo programa valor_triplo_de_pares var tipo mat= Matriz[1..10][1..10] de inteiros mat_A, mat_B : mat resto, lin, col : inteiro inicio //laço para leitura das notas e armazenamento na matriz para lin de 1 até 10 passo 1 faça para col de 1 até 10 passo 1 faça escreva “Valor coluna[”, col, “] e linha [“, lin, “]” leia mat_A[lin][col] fim_para fim_para //Fazendo o processamento para lin de 1 até 10 passo 1 faça para col de 1 até 10 passo 1 faça resto  mat_A[lin][col] MOD 2 se (resto = 0) então mat_B[lin][col]  mat_A[lin][col] * 3 senão mat_B[lin][col]  mat_A[lin][col] fim_se fim_para fim_para fim