Disciplina: Constr. de Algoritmos e Prog. de Sistemas
Professor: Jeovane Reges
Caxias – MA
2016
ACULDADE DE CIÊNCIAS
E TECNOLOGIA DO
MARANHÃO
Link Drive
bit.ly/ads-algoritmos
2
3
Algoritmos
4
Estruturas Homogêneas
<Matrizes>
• 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.
5
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.
• Algoritmos
• Estruturas Homogêneas
• Matrizes
 Matriz 3 x 3
7
M =
Linhas
Colunas
• Algoritmos
• Estruturas Homogêneas
• Matrizes
 Matriz 3 x 3
8
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
• Algoritmos
• Estruturas Homogêneas
• Matrizes
9
M[?,?]=?
Linha (i)
Coluna (j)
• Algoritmos
• Estruturas Homogêneas
• Matrizes
 Acessando os valores da matriz 3 x 3:
10
M[1,1] = 1
M[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 3
1
2
3
• Algoritmos
• Estruturas Homogêneas
• Matrizes
 Acessando os valores da matriz 3 x 3:
11
M[1,1] = 1
M[1,2] = 2
M[1,3] = 3
M[2,1] = 4
M[2,2] = 5
M[2,3] = 6
M[3,1] = 7
M[3,2] = 8
M[3,3] = 9
M =
1 2 3
1
2
3
• Algoritmos
• Estruturas Homogêneas
• Matrizes
 Sintaxe:
• Tam1 e Tam2 <tamanho> = [Vi..Vf],
 Vi = valor inicial; e
 Vf = valor final.
12
<identificador>: vetor [tam1, tam2] de <tipo>
• Algoritmos
• Estruturas Homogêneas
• Matrizes
 Exemplo:
// 1..3 = 3 linhas
// 1..2 = 2 colunas
13
nomes : vetor [1..3, 1..2] de literal
Números de colunas
Números de linhas
14
Matrizes
(Atribuição de valores)
• 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:
15
<identificador>[pos1, pos2] ← <valor>
Linha
Coluna
• Algoritmos
• Estruturas Homogêneas
• Matrizes → Atribuição de valores
 Exemplo: {1}
16
algoritmo "ExMatrizes"
var
nomes: vetor [1..2, 1..2] de literal
inicio
nomes[1,1] ← "Pedro"
nomes[1,2] ← "João"
nomes[2,1] ← "Maria"
nomes[2,2] ← "Francisca"
fimalgoritmo
• 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"
17
1
2
1 2
Pedro João
Maria Francisca
• Algoritmos
• Estruturas Homogêneas
18
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
• Algoritmos
• Estruturas Homogêneas
• Matrizes → Atribuição de valores
 Exemplo: {2}
19
algoritmo "ExMatrizes"
var
nomes: vetor [1..2, 1..2] de literal
i, j: inteiro
inicio
para i de 1 ate 2 faca
para j de 1 ate 2 faca
escreva("Digite um nome: ")
leia(nomes[i,j])
fimpara
fimpara
fimalgoritmo
Linhas
Colunas
20
Matrizes
(Acessando valores)
• Algoritmos
• Estruturas Homogêneas
 Matriz 3 x 3
21
M =
// Para resolver os próximos problemas parta do principio que essa
matriz está preenchida.
• Algoritmos
• Estruturas Homogêneas
 Exemplo: {1}
22
algoritmo "ExMatrizes"
var
M: vetor [1..3, 1..3] de inteiro
inicio
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
• Algoritmos
• Estruturas Homogêneas
 Exemplo: {2}
23
algoritmo "ExMatrizes"
var
M: vetor [1..3, 1..3] de inteiro
i, j: inteiro
inicio
para i de 1 ate 3 faca
para j de 1 ate 3 faca
escreva(M[i,j])
fimpara
escreval()
fimpara
fimalgoritmo
24
Exemplos Resolvidos
<Matrizes>
Faça um algoritmo que leia os elementos de uma
"matriz inteira 3 x 3" e imprima os elementos da
diagonal principal e abaixo.
25
Problema I
26
M =
1 2 3
1
2
3
M[1,1] = 1
M[2,1] = 4
M[2,2] = 5
M[3,1] = 7
M[3,2] = 8
M[3,3] = 9
Problema IAnalisando o
• Algoritmos
• Estruturas Homogêneas
 Problema I
27
algoritmo "Problema 01"
var
M: vetor [1..3, 1..3] de inteiro
i, j: inteiro
inicio
para i de 1 ate 3 faca
para j de 1 ate i faca
escreva(M[i,j])
fimpara
escreval()
fimpara
fimalgoritmo
Problema I
Faça um algoritmo que leia os elementos de uma
"matriz inteira 3 x 3" e imprima os elementos
abaixo da diagonal principal.
28
Problema II
29
M =
1 2 3
1
2
3
M[2,1] = 4
M[3,1] = 7
M[3,2] = 8
Problema IIAnalisando o
• Algoritmos
• Estruturas Homogêneas
 Problema II
30
algoritmo "Problema 02"
var
M: vetor [1..3, 1..3] de inteiro
i, j: inteiro
inicio
para i de 2 ate 3 faca
para j de 1 ate (i – 1) faca
escreva(M[i,j])
fimpara
escreval()
fimpara
fimalgoritmo
Problema I
Faça um algoritmo que leia os elementos de uma
"matriz inteira 3 x 3" e imprima os elementos da
diagonal principal e acima.
31
Problema III
32
M =
M[1,1] = 1
M[1,2] = 2
M[1,3] = 3
M[2,2] = 5
M[2,3] = 6
M[3,3] = 9
1 2 3
1
2
3
Problema IIIAnalisando o
• Algoritmos
• Estruturas Homogêneas
 Problema III
33
algoritmo "Problema 03"
var
M: vetor [1..3, 1..3] de inteiro
i, j: inteiro
inicio
para i de 2 ate 3 faca
para j de i ate 3 faca
escreva(M[i,j])
fimpara
escreval()
fimpara
fimalgoritmo
Problema I
Criar um algoritmo que leia os elementos de uma
"matriz inteira 3 x 3" e imprima os elementos
acima da diagonal principal.
34
Problema IV
35
M =
M[1,2] = 2
M[1,3] = 3
M[2,3] = 6
1 2 3
1
2
3
Problema IVAnalisando o
• Algoritmos
• Estruturas Homogêneas
 Problema IV
36
algoritmo "Problema 04"
var
M: vetor [1..3, 1..3] de inteiro
i, j: inteiro
inicio
para i de 1 ate 2 faca
para j de (i + 1) ate 3 faca
escreva(M[i,j])
fimpara
escreval()
fimpara
fimalgoritmo
I
Faça um algoritmo que leia os elementos de uma
"matriz inteira 3 x 3" e imprima os elementos da
diagonal principal.
37
Problema V
38
Problema VAnalisando o
M =
1 2 3
1
2
3
M[1,1] = 1
M[2,2] = 5
M[3,3] = 9
• Algoritmos
• Estruturas Homogêneas
 Problema V
39
algoritmo "Problema 05"
var
M: vetor [1..3, 1..3] de inteiro
i, j: inteiro
inicio
para i de 1 ate 3 faca
para j de i ate i faca
escreva(M[i,j])
fimpara
escreval()
fimpara
fimalgoritmo

Construcao de Algoritmos - Aula 11

  • 1.
    Disciplina: Constr. deAlgoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
  • 2.
  • 3.
  • 4.
  • 5.
    • Algoritmos • EstruturasHomogê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. 5
  • 6.
    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 • EstruturasHomogêneas • Matrizes  Matriz 3 x 3 7 M = Linhas Colunas
  • 8.
    • Algoritmos • EstruturasHomogêneas • Matrizes  Matriz 3 x 3 8 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 • EstruturasHomogêneas • Matrizes 9 M[?,?]=? Linha (i) Coluna (j)
  • 10.
    • Algoritmos • EstruturasHomogêneas • Matrizes  Acessando os valores da matriz 3 x 3: 10 M[1,1] = 1 M[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 3 1 2 3
  • 11.
    • Algoritmos • EstruturasHomogêneas • Matrizes  Acessando os valores da matriz 3 x 3: 11 M[1,1] = 1 M[1,2] = 2 M[1,3] = 3 M[2,1] = 4 M[2,2] = 5 M[2,3] = 6 M[3,1] = 7 M[3,2] = 8 M[3,3] = 9 M = 1 2 3 1 2 3
  • 12.
    • Algoritmos • EstruturasHomogêneas • Matrizes  Sintaxe: • Tam1 e Tam2 <tamanho> = [Vi..Vf],  Vi = valor inicial; e  Vf = valor final. 12 <identificador>: vetor [tam1, tam2] de <tipo>
  • 13.
    • Algoritmos • EstruturasHomogêneas • Matrizes  Exemplo: // 1..3 = 3 linhas // 1..2 = 2 colunas 13 nomes : vetor [1..3, 1..2] de literal Números de colunas Números de linhas
  • 14.
  • 15.
    • Algoritmos • EstruturasHomogêneas • Matrizes → Atribuição de valores • Assim como com os vetores, os elementos de uma matriz também podem ser inicializados. • Sintaxe: 15 <identificador>[pos1, pos2] ← <valor> Linha Coluna
  • 16.
    • Algoritmos • EstruturasHomogêneas • Matrizes → Atribuição de valores  Exemplo: {1} 16 algoritmo "ExMatrizes" var nomes: vetor [1..2, 1..2] de literal inicio nomes[1,1] ← "Pedro" nomes[1,2] ← "João" nomes[2,1] ← "Maria" nomes[2,2] ← "Francisca" fimalgoritmo
  • 17.
    • Algoritmos • EstruturasHomogê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" 17 1 2 1 2 Pedro João Maria Francisca
  • 18.
    • Algoritmos • EstruturasHomogêneas 18 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 • EstruturasHomogêneas • Matrizes → Atribuição de valores  Exemplo: {2} 19 algoritmo "ExMatrizes" var nomes: vetor [1..2, 1..2] de literal i, j: inteiro inicio para i de 1 ate 2 faca para j de 1 ate 2 faca escreva("Digite um nome: ") leia(nomes[i,j]) fimpara fimpara fimalgoritmo Linhas Colunas
  • 20.
  • 21.
    • Algoritmos • EstruturasHomogêneas  Matriz 3 x 3 21 M = // Para resolver os próximos problemas parta do principio que essa matriz está preenchida.
  • 22.
    • Algoritmos • EstruturasHomogêneas  Exemplo: {1} 22 algoritmo "ExMatrizes" var M: vetor [1..3, 1..3] de inteiro inicio 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 • EstruturasHomogêneas  Exemplo: {2} 23 algoritmo "ExMatrizes" var M: vetor [1..3, 1..3] de inteiro i, j: inteiro inicio para i de 1 ate 3 faca para j de 1 ate 3 faca escreva(M[i,j]) fimpara escreval() fimpara fimalgoritmo
  • 24.
  • 25.
    Faça um algoritmoque leia os elementos de uma "matriz inteira 3 x 3" e imprima os elementos da diagonal principal e abaixo. 25 Problema I
  • 26.
    26 M = 1 23 1 2 3 M[1,1] = 1 M[2,1] = 4 M[2,2] = 5 M[3,1] = 7 M[3,2] = 8 M[3,3] = 9 Problema IAnalisando o
  • 27.
    • Algoritmos • EstruturasHomogêneas  Problema I 27 algoritmo "Problema 01" var M: vetor [1..3, 1..3] de inteiro i, j: inteiro inicio para i de 1 ate 3 faca para j de 1 ate i faca escreva(M[i,j]) fimpara escreval() fimpara fimalgoritmo
  • 28.
    Problema I Faça umalgoritmo que leia os elementos de uma "matriz inteira 3 x 3" e imprima os elementos abaixo da diagonal principal. 28 Problema II
  • 29.
    29 M = 1 23 1 2 3 M[2,1] = 4 M[3,1] = 7 M[3,2] = 8 Problema IIAnalisando o
  • 30.
    • Algoritmos • EstruturasHomogêneas  Problema II 30 algoritmo "Problema 02" var M: vetor [1..3, 1..3] de inteiro i, j: inteiro inicio para i de 2 ate 3 faca para j de 1 ate (i – 1) faca escreva(M[i,j]) fimpara escreval() fimpara fimalgoritmo
  • 31.
    Problema I Faça umalgoritmo que leia os elementos de uma "matriz inteira 3 x 3" e imprima os elementos da diagonal principal e acima. 31 Problema III
  • 32.
    32 M = M[1,1] =1 M[1,2] = 2 M[1,3] = 3 M[2,2] = 5 M[2,3] = 6 M[3,3] = 9 1 2 3 1 2 3 Problema IIIAnalisando o
  • 33.
    • Algoritmos • EstruturasHomogêneas  Problema III 33 algoritmo "Problema 03" var M: vetor [1..3, 1..3] de inteiro i, j: inteiro inicio para i de 2 ate 3 faca para j de i ate 3 faca escreva(M[i,j]) fimpara escreval() fimpara fimalgoritmo
  • 34.
    Problema I Criar umalgoritmo que leia os elementos de uma "matriz inteira 3 x 3" e imprima os elementos acima da diagonal principal. 34 Problema IV
  • 35.
    35 M = M[1,2] =2 M[1,3] = 3 M[2,3] = 6 1 2 3 1 2 3 Problema IVAnalisando o
  • 36.
    • Algoritmos • EstruturasHomogêneas  Problema IV 36 algoritmo "Problema 04" var M: vetor [1..3, 1..3] de inteiro i, j: inteiro inicio para i de 1 ate 2 faca para j de (i + 1) ate 3 faca escreva(M[i,j]) fimpara escreval() fimpara fimalgoritmo
  • 37.
    I Faça um algoritmoque leia os elementos de uma "matriz inteira 3 x 3" e imprima os elementos da diagonal principal. 37 Problema V
  • 38.
    38 Problema VAnalisando o M= 1 2 3 1 2 3 M[1,1] = 1 M[2,2] = 5 M[3,3] = 9
  • 39.
    • Algoritmos • EstruturasHomogêneas  Problema V 39 algoritmo "Problema 05" var M: vetor [1..3, 1..3] de inteiro i, j: inteiro inicio para i de 1 ate 3 faca para j de i ate i faca escreva(M[i,j]) fimpara escreval() fimpara fimalgoritmo