Download - Construcao de Algoritmos - Aula 10
![Page 1: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/1.jpg)
Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges
Caxias – MA2016
ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
![Page 2: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/2.jpg)
2
Link Drive
bit.ly/ads-algoritmos
![Page 3: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/3.jpg)
3
Algoritmos
![Page 4: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/4.jpg)
4
Estruturas Homogêneas<Vetores>
![Page 5: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/5.jpg)
5
• Algoritmos• Estruturas Homogêneas• Introdução• Para resolução dos problemas propostos
até então, utilizamos: Tipos de dados básicos;
• <real, inteiro, literal, caractere e lógico>
Comandos de controle;• <decisão e repetição>
Variáveis simples, que "armazenam um único" valor por vez.
![Page 6: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/6.jpg)
6
• Algoritmos• Estruturas Homogêneas• Sempre que atribuímos um novo valor a
uma variável simples, o valor anterior é perdido.
algoritmo "Problema 01"var x: inteiroinicio x ← 10 escreval("Valor de x: ", x)
x ← 20 escreval("Valor de x: ", x)fimalgoritmo
![Page 7: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/7.jpg)
7
• Algoritmos• Estruturas Homogêneas• Vetores• Representação da memória ao criar uma
variável simples.
X
![Page 8: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/8.jpg)
8
• Algoritmos• Estruturas Homogêneas• Vetores• Representação da memória ao criar uma
variável simples. Atribuição do valor 10 a variável x.
XX ← 10
![Page 9: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/9.jpg)
9
• Algoritmos• Estruturas Homogêneas• Vetores• Representação da memória ao criar uma
variável simples. Atribuição do valor 20 a variável x.
// O valor 20 sobescreve o valor anterior que era 10.
X ← 10X ← 20
![Page 10: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/10.jpg)
10
Isso ocorre porque cada variável está associada a uma única posição de memória, e dentro dela é possível armazenar apenas um único valor.
![Page 11: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/11.jpg)
11
• Algoritmos• Estruturas Homogêneas• Vetores• Existem problemas em que as variáveis
simples NÃO são suficientes.
• Para atingir a solução de tais problemas, utilizamos as estruturas de dados homogêneas. Armazenam diversos dados de um mesmo
tipo em uma única variável. Vetores (unidimensionais); e Matrizes (bidimensionais).
![Page 12: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/12.jpg)
12
• Algoritmos• Estruturas Homogêneas• Exemplo:
Solicitar ao usuário as notas de 5 alunos de uma turma e no "final" apresentar as notas digitadas.
algoritmo "Notas"var notas: real i: inteiroinicio para i de 1 ate 5 faca escreva(i, "a. nota: ") leia(notas) fimpara escreval("Notas: ", notas)fimalgoritmo
![Page 13: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/13.jpg)
13
• Algoritmos• Estruturas Homogêneas• Saída:
![Page 14: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/14.jpg)
14
• Algoritmos• Estruturas Homogêneas• Vetores• Mas, se quisermos "armazenar" todos as
notas em uma única variável?
• Se quiséssemos acessar tais valores individualmente a qualquer momento?
• Com o que foi visto até então, não é possível "alcançar" esse comportamento.
![Page 15: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/15.jpg)
15
• Algoritmos• Estruturas Homogêneas• Vetores• Em casos como esse que é útil a utilização
das estruturas de dados homogêneas (vetores).
• Vetores são variáveis que permitem armazenar vários valores do mesmo tipo.
• Funciona como uma caixa, na qual você pode guardar o conteúdo que desejar.
![Page 16: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/16.jpg)
16
Estruturas de dados homogêneas são estruturas que permitem armazenar um conjuntos de dados do mesmo tipo
em uma única variável.
![Page 17: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/17.jpg)
17
Vetores
![Page 18: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/18.jpg)
18
• Algoritmos• Estruturas Homogêneas• Vetores• Tal como as variáveis simples, os vetores
precisam ser declarados antes de utilizados.
• Por se tratar de uma variável indexada a maneira como a declaramos é diferente.
• A ideia geral é que estamos declarando diversas variáveis dentro de uma só. Diferenciadas por um índice.
![Page 19: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/19.jpg)
19
• Algoritmos• Estruturas Homogêneas• Vetores
Estruturas que armazenam os dados em uma única linha e várias colunas.
1 2 3 4 5
índexes
V[1..5] =
![Page 20: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/20.jpg)
20
• Algoritmos• Estruturas Homogêneas• Vetores
Estruturas que armazenam os dados em uma única linha e várias colunas.
1 2 3 4 5
índexes
V[1..5] =
7 8.5 7.2 9.2 7.1
![Page 21: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/21.jpg)
21
• Algoritmos• Estruturas Homogêneas• Vetores
Sintaxe:
• Tamanho = [Vi..Vf], Vi = valor inicial; e Vf = valor final.
<identificador> : vetor [tamanho] de <tipo>
![Page 22: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/22.jpg)
22
• Algoritmos• Estruturas Homogêneas• Vetores
Exemplo:• Declaração de um vetor com 10 posições.
Devem ser declarados dentro da sessão var.
notas : vetor [1..10] de real
Nome do vetor Tipo de dados
Tamanho do vetor (note que são apenas DOIS PONTOS!)
![Page 23: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/23.jpg)
23
Vetores (Atribuição de valores)
![Page 24: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/24.jpg)
24
• Algoritmos• Estruturas Homogêneas• Vetores• Vimos que vetores são "variáveis".
• A declaração de um vetor apenas reserva espaço na memória e não associa valores a ele.
• Porém, em algumas situações é necessário iniciar os vetores com algum valor predefinido. Ou iniciar todo o vetor, dependendo do
problema.
![Page 25: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/25.jpg)
25
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores• Assim como as variáveis comuns, os
valores de um vetor também podem ser inicializados.
• Sintaxe:<identificador>[posição] ← <valor><identificador>[posição] := <valor>
Índice
![Page 26: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/26.jpg)
26
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores
Exemplo: {1}algoritmo "ExVetores"var notas: vetor [1..5] de realinicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2fimalgoritmo
7
1 2 3 4 5
![Page 27: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/27.jpg)
27
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores
Exemplo: {1}algoritmo "ExVetores"var notas: vetor [1..5] de realinicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2fimalgoritmo
7 8.5
1 2 3 4 5
![Page 28: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/28.jpg)
28
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores
Exemplo: {1}algoritmo "ExVetores"var notas: vetor [1..5] de realinicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2fimalgoritmo
7 8.5 7.2
1 2 3 4 5
![Page 29: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/29.jpg)
29
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores
Exemplo: {1}algoritmo "ExVetores"var notas: vetor [1..5] de realinicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2fimalgoritmo
7 8.5 7.2 0 0
1 2 3 4 5
![Page 30: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/30.jpg)
30
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores
Exemplo: {2}
algoritmo "ExVetores"var notas: vetor [1..5] de realinicio escreva("Nota do 1o. Aluno: ") leia(notas[1]) escreva("Nota do 2o. Aluno: ") leia(notas[2]) escreva("Nota do 3o. Aluno: ") leia(notas[3])fimalgoritmo
![Page 31: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/31.jpg)
31
• Algoritmos• Estruturas Homogêneas• Vetores → Atribuição de valores
Exemplo: {3}
algoritmo "ExVetores"var notas: vetor [1..5] de real i: inteiroinicio para i de 1 ate 5 faca escreva("Notas: ") leia(notas[i]) fimparafimalgoritmo
![Page 32: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/32.jpg)
32
Vetores (Acessando valores)
![Page 33: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/33.jpg)
33
• Algoritmos• Estruturas Homogêneas• Vetores → Acessando valores
Exemplo: {1}algoritmo "ExVetores"var notas: vetor [1..5] de realinicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2
escreval("1a. nota: ", notas[1]) escreval("2a. nota: ", notas[2]) escreval("3a. nota: ", notas[3])fimalgoritmo
![Page 34: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/34.jpg)
34
• Algoritmos• Estruturas Homogêneas• Vetores → Acessando valores
Exemplo: {2}
algoritmo "ExVetores"var notas: vetor [1..5] de real i: inteiroinicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 para i de 1 ate 5 faca escreval(i, "a. nota: ", notas[i]) fimparafimalgoritmo
![Page 35: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/35.jpg)
35
• Algoritmos• Estruturas Homogêneas• Vetores → Acessando valores
Saída: {2}
![Page 36: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/36.jpg)
36
Exemplos Resolvidos
<Vetores>
![Page 37: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/37.jpg)
37
Problema IFaça um algoritmo que leia 5 números
inteiro fornecidos pelo teclado e "armazene-os" em um vetor. Em seguida,
imprima-os na ordem em que foram "digitados".
![Page 38: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/38.jpg)
38
• Algoritmos
Resolução do Problema I
algoritmo "Problema 01"var numeros: vetor [1..5] de inteiro i, j: inteiroinicio para i de 1 ate 5 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara
para j de 1 ate 5 faca escreva(numeros[j]) fimparafimalgoritmo
![Page 39: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/39.jpg)
39
Problema IIFaça um algoritmo que dado um vetor inicializado com 5 valores, some estes valores e em seguida
imprima a soma.
![Page 40: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/40.jpg)
40
• Algoritmos
algoritmo "Problema 02"var numeros: vetor [1..5] de inteiro i, soma: inteiroinicio numeros[1] ← 7 numeros[2] ← 8 numeros[3] ← 2 numeros[4] ← 5 numeros[5] ← 3
para i de 1 ate 5 faca soma ← soma + numeros[i] fimpara escreval("Soma: ", soma)fimalgoritmo
Reso
luçã
o do
Pro
blem
a II
![Page 41: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/41.jpg)
41
Problema IIIFaça um algoritmo que dado um vetor inicializado com 5 valores, apresente a média dos valores
contidos no vetor.
![Page 42: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/42.jpg)
42
• Algoritmos
algoritmo "Problema 03"var numeros: vetor [1..5] de inteiro i, soma: inteiro media: realinicio numeros[1] ← 7 numeros[2] ← 8 numeros[3] ← 2 numeros[4] ← 5 numeros[5] ← 3
para i de 1 ate 5 faca soma ← soma + numeros[i] fimpara media ← soma / 5 escreval("Media: ", media)fimalgoritmoRe
solu
ção
do P
robl
ema
III
![Page 43: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/43.jpg)
43
Problema IVFaça um algoritmo que leia 5
números inteiros e "armazene-os" em um vetor. Em seguida, "imprima" somente os números pares que se
encontram no vetor.
![Page 44: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/44.jpg)
44
• Algoritmos
algoritmo "Problema 04"var numeros: vetor [1..5] de inteiro i, j: inteiroinicio para i de 1 ate 5 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara
para j de 1 ate 5 faca se (numeros[j] % 2 = 0) entao escreval(numeros[j]) fimse fimparafimalgoritmo
Reso
luçã
o do
Pro
blem
a IV
![Page 45: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/45.jpg)
45
Problema VFaça um algoritmo que leia um vetor com 5 posições de números inteiros. Em seguida, "imprima" a quantidade
de números pares existentes no vetor.
![Page 46: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/46.jpg)
46
• Algoritmos
algoritmo "Problema 05"var numeros: vetor [1..5] de inteiro i, j, conta_par: inteiroinicio para i de 1 ate 5 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara
para j de 1 ate 5 faca se (numeros[j] % 2 = 0) entao conta_par ← conta_par + 1 fimse fimpara escreval(conta_par)fimalgoritmo
Reso
luçã
o do
Pro
blem
a V
![Page 47: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/47.jpg)
47
Problema VIFaça um algoritmo que dado um vetor de inteiro com 10 elementos, retorne o
"maior" valor que se encontra no vetor.
![Page 48: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/48.jpg)
48
• Algoritmos
Resolução do Problema VI
algoritmo "Problema 06"var numeros: vetor [1..10] de inteiro i, mv: inteiroinicio // Suponha que o vetor já preenchido mv ← numeros[1]
para i de 2 ate 10 faca se (numeros[i] > mv) entao mv ← números[i] fimse fimpara escreval(mv)fimalgoritmo
![Page 49: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/49.jpg)
49
Problema VIIFaça um algoritmo que dado um
vetor de números inteiros e positivos com 10 elementos,
apresente os índices dos "números ímpares".
![Page 50: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/50.jpg)
50
• Algoritmos
Resolução do Problema VIIalgoritmo "Problema 07"var numeros: vetor [1..10] de inteiro i, j: inteiroinicio para i de 1 ate 10 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara
para j de 1 ate 10 faca se (numeros[j] % 2 <> 0) entao escreval("Valor ímpar na posição: ", i) fimse fimparafimalgoritmo
![Page 51: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/51.jpg)
51
Problema VIIIFaça um algoritmo que dados um conjunto
de valores inteiros armazene os seis primeiros números maiores do que
ZERO em um vetor.
![Page 52: Construcao de Algoritmos - Aula 10](https://reader035.vdocuments.net/reader035/viewer/2022062316/58a53c621a28ab4f088b492d/html5/thumbnails/52.jpg)
52
• Algoritmos
Resolução do Problema VIII
algoritmo "Problema 08"var numeros: vetor [1..6] de inteiro i, valor: inteiroinicio repita escreva("Digite um valor: ") leia(valor)
se (valor > 0) entao numeros[i] ← valor i ← i + 1 fimse ate(i > 6)fimalgoritmo