Escolar Documentos
Profissional Documentos
Cultura Documentos
Lógica de Programação
Capítulo: Matrizes
http://educandoweb.com.br
Prof. Dr. Nelio Alves
Matrizes
http://educandoweb.com.br
Prof. Dr. Nelio Alves
2
Matrizes
Uma matriz corresponde a uma coleção de 0 1 2
dados indexada, bidimensional, homogênea, e
de tamanho fixo. 0
1
• Indexada: os elementos são acessados por
meio de índices 2
3
• Bidimensional: duas dimensões (linhas e
colunas) 4
A
• Homogênea: todos dados são do mesmo tipo
Matrizes
4
Memória RAM
Memória RAM
Como acessar os elementos
de uma matriz? 0 1 2 3
0
1 10
A[1, 2] <- 10 2
A
LÊ-SE:
"Matriz A, na linha 1,
coluna 2, recebe 10"
6
Problema exemplo
Exemplo:
Fazer um programa para ler dois Quantas linhas vai ter a matriz? 2
números inteiros positivos M e N Quantas colunas vai ter a matriz? 3
(máximo = 5), depois ler uma Elemento [0,0]: 6
matriz de M linhas e N colunas Elemento [0,1]: 3
contendo números inteiros. Em Elemento [0,2]: 10
seguida, mostrar na tela a matriz Elemento [1,0]: 8
lida conforme exemplo. Elemento [1,1]: 12
Elemento [1,2]: 5
MATRIZ DIGITADA:
6 3 10
8 12 5
8
Algoritmo "teste_matriz"
Var
mat: vetor [0..4, 0..4] de inteiro
M, N, i, j : inteiro
Inicio
escreval
escreval("MATRIZ DIGITADA:")
para i de 0 ate M-1 faca
para j de 0 ate N-1 faca
escreva(mat[i, j])
fimpara
escreval
fimpara
Fimalgoritmo
Resumo da aula 0 1 2 3
0
• Matriz: coleção de dados 1 10
• Tamanho fixo 2
• Arranjo bidimensional
• Indexada A
• Homogênea
10
Exercícios propostos PARTE 1 -
testes de mesa com matrizes
http://educandoweb.com.br
Prof. Dr. Nelio Alves
11
n <- 3 m <- 2 1
para i de 0 ate n-1 faca n <- 4 3
para j de 0 ate n-1 faca x <- 0
mat[i, j] <- 1 + i + j para i de 0 ate m-1 faca
fimpara x <- x + i
fimpara para j de 0 ate n-1 faca
x <- x + j
mat[i, j] <- x
fimpara
fimpara
2 2 4
1 2 3 0 1 3 6
2 3 4 7 8 10 13
012 012 3 4 5 01 0123
0136
7 8 10
13
12
m <- 54 n <- 3 2
para i de 0 ate m-1 faca para i de 0 ate n-1 faca
mat[3, i] <- 10 x <- 0
fimpara para j de 0 ate n-1 faca
para i de 0 ate m-1 faca mat[i, j] <- i + j
mat[i, 4] <- 10 * i x <- x + mat[i, j]
mat[i, i] <- 50 fimpara
fimpara v[i] <- x
fimpara
5 3
50 0 0 1 2
50 10 1 2 3 6
0123 50 20 012 012 2 3 4 9
4
10 10 10 50 30
50 0259
13
m <- 5 4 n <- 4 3
para i de 0 ate m-1 faca para i de 0 ate n-1 faca
v[i] <- 10 - i para j de 0 ate i-1 faca
fimpara mat[i, j] <- (i + 1) * 10
para i de 0 ate m-1 faca fimpara
mat[i, i] <- v[i] / 10 fimpara
fimpara
5 4
1 10 10
0,9 9 20 20
0123 0,8 8 0123 30 30
4
0,7 7 40 40
0,6 6
14
15
16
Solução dos exercícios:
github.com/acenelio/curso-algoritmos
17
0 1 2
0 5 -3 10
1 15 8 2
2 7 9 -4
mat
18
0 1 2
0 7.0 8.0 10.0
1 2.0 3.0 5.0
mat
19