construcao de algoritmos - aula 11
TRANSCRIPT
Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges
Caxias – MA2016
ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
2
Link Drive
bit.ly/ads-algoritmos
3
Algoritmos
4
Estruturas Homogêneas<Matrizes>
5
• Algoritmos• Estruturas Homogêneas• Matrizes• Os tipos de dados simples nem sempre
são suficientes para resolver certos problemas.
• Alguns problemas necessitam de estruturas que comportem-se como uma "lista" (vetores).
• Porém, os vetores são unidimensionais, e alguns problemas são resolvidos apenas com estruturas multidimensionais.
6
Uma matriz é uma estrutura de dados homogênea de duas (ou mais) dimensões. Uma matriz utiliza
variáveis indexadas de mais de um índice.
7
• Algoritmos• Estruturas Homogêneas• Matrizes
Matriz 3 x 3
M =
Linhas
Colunas
8
• Algoritmos• Estruturas Homogêneas• Matrizes
Matriz 3 x 3
Matriz M Coluna 1 Coluna 2 Coluna 3
Linha 1 M[1,1] M[1,2] M[1,3]
Linha 2 M[2,1] M[2,2] M[2,3]
Linha 3 M[3,1] M[3,2] M[3,3]
Nome da Matriz
Índice da linha Índice da coluna
9
• Algoritmos• Estruturas Homogêneas• Matrizes
M[?,?]=?Linha (i)
Coluna (j)
10
• Algoritmos• Estruturas Homogêneas• Matrizes
Acessando os valores da matriz 3 x 3:M[1,1] = 1M[1,2] = ?M[1,3] = ?M[2,1] = ?M[2,2] = ?M[2,3] = ?M[3,1] = ?M[3,2] = ?M[3,3] = ?
M =
1 2 31
2
3
11
• Algoritmos• Estruturas Homogêneas• Matrizes
Acessando os valores da matriz 3 x 3:M[1,1] = 1M[1,2] = 2M[1,3] = 3M[2,1] = 4M[2,2] = 5M[2,3] = 6M[3,1] = 7M[3,2] = 8M[3,3] = 9
M =
1 2 31
2
3
12
• Algoritmos• Estruturas Homogêneas• Matrizes
Sintaxe:
• Tam1 e Tam2 <tamanho> = [Vi..Vf], Vi = valor inicial; e Vf = valor final.
<identificador>: vetor [tam1, tam2] de <tipo>
13
• Algoritmos• Estruturas Homogêneas• Matrizes
Exemplo:
// 1..3 = 3 linhas// 1..2 = 2 colunas
nomes : vetor [1..3, 1..2] de literal
Números de colunas
Números de linhas
14
Matrizes (Atribuição de valores)
15
• Algoritmos• Estruturas Homogêneas• Matrizes → Atribuição de valores• Assim como com os vetores, os elementos
de uma matriz também podem ser inicializados.
• Sintaxe:<identificador>[pos1, pos2] ← <valor>
Linha
Coluna
16
• Algoritmos• Estruturas Homogêneas• Matrizes → Atribuição de valores
Exemplo: {1}
algoritmo "ExMatrizes"var nomes: vetor [1..2, 1..2] de literalinicio nomes[1,1] ← "Pedro" nomes[1,2] ← "João" nomes[2,1] ← "Maria" nomes[2,2] ← "Francisca"fimalgoritmo
17
• Algoritmos• Estruturas Homogêneas• Matrizes → Atribuição de valores
Exemplo: {1} // nomes[1,1] ← "Pedro" // nomes[1,2] ← "João" // nomes[2,1] ← "Maria" // nomes[2,2] ← "Francisca"
1
2
1 2
Pedro João
Maria Francisca
18
• Algoritmos• Estruturas Homogêneas
para i de 1 ate 2 faca
para j de 1 ate 2 faca
1. Indica a partir de qual linha será iniciado o acesso.
2. Indica até qual linha será acessada.
3. Indica a partir de qual coluna será iniciado o acesso.
4. Indica até que coluna será acessada.
21
43
19
• Algoritmos• Estruturas Homogêneas• Matrizes → Atribuição de valores
Exemplo: {2}
algoritmo "ExMatrizes"var nomes: vetor [1..2, 1..2] de literal i, j: inteiroinicio para i de 1 ate 2 faca para j de 1 ate 2 faca escreva("Digite um nome: ") leia(nomes[i,j]) fimpara fimparafimalgoritmo
LinhasColunas
20
Matrizes (Acessando valores)
21
• Algoritmos• Estruturas Homogêneas
Matriz 3 x 3
M =
// Para resolver os próximos problemas parta do principio que essa matriz está preenchida.
22
• Algoritmos• Estruturas Homogêneas
Exemplo: {1}algoritmo "ExMatrizes"var M: vetor [1..3, 1..3] de inteiroinicio escreval("M{1,1}: ", M[1,1]) escreval("M{1,2}: ", M[1,2]) escreval("M{1,3}: ", M[1,3]) escreval("M{2,1}: ", M[2,1]) escreval("M{2,2}: ", M[2,2]) escreval("M{2,3}: ", M[2,3]) escreval("M{3,1}: ", M[3,1]) escreval("M{3,2}: ", M[3,2]) escreval("M{3,3}: ", M[3,3])fimalgoritmo
23
• Algoritmos• Estruturas Homogêneas
Exemplo: {2}
algoritmo "ExMatrizes"var M: vetor [1..3, 1..3] de inteiro i, j: inteiroinicio para i de 1 ate 3 faca para j de 1 ate 3 faca escreva(M[i,j]) fimpara escreval() fimparafimalgoritmo
24
Exemplos Resolvidos
<Matrizes>
25
Faça um algoritmo que leia os elementos de uma "matriz inteira 3 x 3" e imprima os
elementos da diagonal principal e abaixo.
Problema I
26
M =
1 2 31
2
3
M[1,1] = 1M[2,1] = 4
M[2,2] = 5M[3,1] = 7M[3,2] = 8
M[3,3] = 9
Problema IAnalisando o
27
• Algoritmos• Estruturas Homogêneas
Problema I
algoritmo "Problema 01"var M: vetor [1..3, 1..3] de inteiro i, j: inteiroinicio para i de 1 ate 3 faca para j de 1 ate i faca escreva(M[i,j]) fimpara escreval() fimparafimalgoritmo
28
Problema IFaça um algoritmo que leia os elementos de
uma "matriz inteira 3 x 3" e imprima os elementos abaixo da diagonal principal.
Problema II
29
M =
1 2 31
2
3
M[2,1] = 4M[3,1] = 7
M[3,2] = 8
Problema IIAnalisando o
30
• Algoritmos• Estruturas Homogêneas
Problema II
algoritmo "Problema 02"var M: vetor [1..3, 1..3] de inteiro i, j: inteiroinicio para i de 2 ate 3 faca para j de 1 ate (i – 1) faca escreva(M[i,j]) fimpara escreval() fimparafimalgoritmo
31
Problema IFaça um algoritmo que leia os elementos de
uma "matriz inteira 3 x 3" e imprima os elementos da diagonal principal e acima.
Problema III
32
M =
M[1,1] = 1M[1,2] = 2
M[1,3] = 3M[2,2] = 5M[2,3] = 6
M[3,3] = 9
1 2 31
2
3
Problema IIIAnalisando o
33
• Algoritmos• Estruturas Homogêneas
Problema III
algoritmo "Problema 03"var M: vetor [1..3, 1..3] de inteiro i, j: inteiroinicio para i de 2 ate 3 faca para j de i ate 3 faca escreva(M[i,j]) fimpara escreval() fimparafimalgoritmo
34
Problema ICriar um algoritmo que leia os elementos de
uma "matriz inteira 3 x 3" e imprima os elementos acima da diagonal principal.
Problema IV
35
M = M[1,2] = 2M[1,3] = 3
M[2,3] = 6
1 2 31
2
3
Problema IVAnalisando o
36
• Algoritmos• Estruturas Homogêneas
Problema IV
algoritmo "Problema 04"var M: vetor [1..3, 1..3] de inteiro i, j: inteiroinicio para i de 1 ate 2 faca para j de (i + 1) ate 3 faca escreva(M[i,j]) fimpara escreval() fimparafimalgoritmo
37
IFaça um algoritmo que leia os elementos de
uma "matriz inteira 3 x 3" e imprima os elementos da diagonal principal.
Problema V
38
Problema VAnalisando o
M =
1 2 31
2
3
M[1,1] = 1M[2,2] = 5
M[3,3] = 9
39
• Algoritmos• Estruturas Homogêneas
Problema V
algoritmo "Problema 05"var M: vetor [1..3, 1..3] de inteiro i, j: inteiroinicio para i de 1 ate 3 faca para j de i ate i faca escreva(M[i,j]) fimpara escreval() fimparafimalgoritmo