Construcao de Algoritmos - Aula 08
-
Upload
facema-faculdade-de-ciencias-e-tecnologia-do-maranhao -
Category
Education
-
view
44 -
download
5
Transcript of Construcao de Algoritmos - Aula 08
![Page 1: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/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 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/2.jpg)
2
Link Drive
bit.ly/ads-algoritmos
![Page 3: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/3.jpg)
3
Algoritmos
![Page 4: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/4.jpg)
4
Controle de Fluxo
<Comandos de Repetições>
![Page 5: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/5.jpg)
5
• Algoritmos• Comandos de Repetições• Introdução• Na aula anterior, vimos como realizar desvios
condicionais em um algoritmo. Criamos algoritmos onde um bloco de comandos é
executado somente se determinada condição for atendida.
• Há casos em que um bloco de comandos deve ser executado "mais de uma vez".
• Tal repetição ocorrerá enquanto (ou até que) uma dada condição seja satisfazível.
![Page 6: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/6.jpg)
6
O objetivo de tais comandos é executar uma instrução (ou conjunto de instruções) repetidas vezes,
enquanto (ou até que) uma dada condição seja satisfeita.
![Page 7: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/7.jpg)
7
• Algoritmos• Exemplo:• Algoritmo que escreva cinco vezes a frase:
"Programação", de que forma você faria?
algoritmo "Repete Frase"var inicio escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação")fimalgoritmo
![Page 8: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/8.jpg)
8
• Algoritmos• Comandos de Repetições• Exemplo:• Parece simples, não? Mas, e se
mudássemos o número de repetições?
• Se, ao invés de cinco mensagens, tivéssemos que imprimir cem mensagens? Ou cinco mil mensagens?
• Seria um tanto exaustivo ficar digitando tantas vezes o mesmo comando.
![Page 9: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/9.jpg)
9
A solução para esse impasse é a utilização dos comandos de
repetições.
![Page 10: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/10.jpg)
10
• Algoritmos• Comandos de Repetições• Introdução• Os comandos de repetição classificam-se
em: Comando com teste condicional no início;
• <comandos ENQUANTO ... FAÇA>
Comando com variável de controle. • <comandos PARA>
Comando com teste condicional no final; e• <comandos REPITA ... ATÉ>
![Page 11: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/11.jpg)
11
Comandos de Repetições<enquanto>
![Page 12: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/12.jpg)
12
• Algoritmos• Comandos de Repetições• Comando enquanto
Sintaxe
enquanto ([expressão]) faca // Instruções lógicas abaixo. [bloco de instruções]fimenquanto
É obrigatório o espaço existente entre a expressão e os comandos enquanto e faca.
![Page 13: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/13.jpg)
13
• Algoritmos• Comandos de Repetições• Comando enquanto• Se a expressão for considerada
verdadeira, a sequência de comandos será executada. O "teste" volta a ser realizado sempre que os
blocos de comandos definidos no enquanto são executados.
• Se a expressão for considerada falsa, a sequência de comandos não será executada. O que significa que ela jamais pode ser
executada.
![Page 14: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/14.jpg)
14
Enquanto (eu for estudante) faca escreval("Sou liso!")fimenquanto
![Page 15: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/15.jpg)
15
• Algoritmos• Exemplo:• Faça um algoritmo que escreva cinco
vezes a frase: "Programação".algoritmo "Repete Frase"var contador: inteiroinicio contador ← 1 enquanto (contador <= 5) faca escreval("Programação") contador ← contador + 1 fimenquantofimalgoritmo
![Page 16: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/16.jpg)
16
Problema IFaça um algoritmo que imprima os números no intervalo de 1 à 10 na
tela.
![Page 17: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/17.jpg)
17
• Algoritmos• Comandos de Repetições
Resolução do Problema I
algoritmo "Problema 01"var contador: inteiroinicio contador ← 1 enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1 fimenquantofimalgoritmo
![Page 18: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/18.jpg)
18
Problema IIFaça um algoritmo que
apresente os valores contidos no intervalo de 1 até onde o
usuário "desejar".
![Page 19: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/19.jpg)
19
• Algoritmos• Comandos de Repetições
Resolução do Problema IIalgoritmo "Problema 02"var contador, valor: inteiroinicio contador ← 1 escreva("Quer contar até quanto? ") leia(valor)
enquanto (contador <= valor) faca escreval(contador) contador ← contador + 1 fimenquantofimalgoritmo
![Page 20: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/20.jpg)
20
Problema IIIFaça um algoritmo que realize a soma dos valores contidos
no intervalo de 1 à 5.
![Page 21: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/21.jpg)
21
• Algoritmos• Comandos de Repetições
Resolução do Problema IIIalgoritmo "Problema 03"var contador, soma: inteiroinicio contador ← 1 soma ← 0
enquanto (contador <= 5) faca soma ← soma + contador contador ← contador + 1 fimenquanto
escreval(soma)fimalgoritmo
![Page 22: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/22.jpg)
22
Problema IVFaça um algoritmo que dados
cinco valores "fornecidos" pelo usuário, apresente o maior valor
digitado.
![Page 23: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/23.jpg)
23
• Algoritmos
algoritmo "Problema 04"var // mv → maior valor contador, valor, mv: inteiroinicio escreva("Digite um valor: ") leia(valor) mv ← valor
contador ← 2 enquanto (contador <= 5) faca escreva("Digite um valor: ") leia(valor) se (valor > mv) entao mv ← valor fimse contador ← contador + 1 fimenquanto escreval(mv)fimalgoritmo
Reso
luçã
o do
Pro
blem
a IV
![Page 24: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/24.jpg)
24
O comando ENQUANTO testa uma condição e, enquanto essa
condição for verdadeira, as instruções associadas ao comando
serão executadas.
![Page 25: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/25.jpg)
25
Comandos de Repetições
<Para>
![Page 26: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/26.jpg)
26
• Algoritmos• Comandos de Repetições• Comando para• O comando para é muito similar ao
comando enquanto, visto anteriormente.
• Basicamente, o comando para é usado para repetir um comando ou uma sequência de comandos diversas vezes.
![Page 27: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/27.jpg)
27
• Algoritmos• Comandos de Repetições• Comando para • A quantidade de execuções (repetições)
que o comando irá repetir é conhecida previamente. Há uma variável que funciona como contador
para essas repetições.
Esta variável deve cessar a repetição no momento em que a contagem chegar ao final.
Há, também, um valor de incremento, que define de quantas em quantas unidades a repetição executará.
![Page 28: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/28.jpg)
28
• Algoritmos• Comandos de Repetições• Comando para
Sintaxes: VInt ← variável inteiro, VI ← valor inicial, VF ← valor
final e VInc ← valor de incremento.
para <VInt> de <VI> ate <VF> [passo <VInc>] faca <bloco de instruções>fimpara
OU
para <VInt> de <VI> ate <VF> faca <bloco de instruções>fimpara
"Opcional"
![Page 29: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/29.jpg)
29
• Algoritmos• Comandos de Repetições• Exemplo:• Faça um algoritmo que escreva cinco
vezes a frase: "Programação".
algoritmo "Repete Frase"var contador: inteiroinicio para contador de 1 ate 5 faca escreval("Programação") fimparafimalgoritmo
![Page 30: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/30.jpg)
30
• Algoritmos• Comandos de Repetições• Comando para
A variável de controle deve ser uma variável numérica do tipo inteiro.
O valor inicial corresponde ao valor de inicialização da variável antes da primeira repetição.
O valor final corresponde ao valor máximo que a variável pode alcançar.
Se o valor de incremento NÃO for definido, assume-se o valor = 1.
Pode ser atribuído um valor negativo ao valor de incremento.
![Page 31: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/31.jpg)
31
Problema VFaça um algoritmo que imprima os números no intervalo de 1 à 10 na
tela.
![Page 32: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/32.jpg)
32
• Algoritmos• Comandos de Repetições
Resolução do Problema V
// Utilizando enquanto...
// Utilizando o "Enquanto"contador ← 1enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1fimenquanto
![Page 33: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/33.jpg)
33
• Algoritmos• Comandos de Repetições
Resolução do Problema V
Saída: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
algoritmo "Problema 05"var contador: inteiroinicio para contador de 1 ate 10 faca escreval(contador) fimparafimalgoritmo
![Page 34: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/34.jpg)
34
Problema VIFaça um algoritmo que
apresente os valores contidos no intervalo de 1 até onde o
usuário "desejar".
![Page 35: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/35.jpg)
35
• Algoritmos• Comandos de Repetições
Resolução do Problema VI
algoritmo "Problema 06"var contador, valor: inteiroinicio escreva("Deseja contar até quanto? ") leia(valor)
para contador de 1 ate valor faca escreval(contador) fimparafimalgoritmo
![Page 36: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/36.jpg)
36
Problema VIIFaça um algoritmo que realize a soma dos valores contidos
no intervalo de 1 à 5.
![Page 37: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/37.jpg)
37
• Algoritmos• Comandos de Repetições
Resolução do Problema VII
algoritmo "Problema 07"var contador, soma: inteiroinicio soma ← 0
para contador de 1 ate 5 faca soma ← soma + contador fimpara
escreval(soma)fimalgoritmo
![Page 38: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/38.jpg)
38
Problema VIIIFaça um algoritmo que dados
cinco valores "fornecidos" pelo usuário, apresente o maior valor
digitado.
![Page 39: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/39.jpg)
39
• Algoritmos
algoritmo "Problema 08"Var // mv → maior valor contador, valor, mv: inteiroinicio escreva("Digite um valor: ") leia(valor) mv ← valor
para contador de 2 ate 5 faca escreva("Digite um valor: ") leia(valor)
se (valor > mv) entao mv ← valor fimse fimpara escreval(mv)fimalgoritmoRe
solu
ção
do P
robl
ema
VIII
![Page 40: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/40.jpg)
40
Comandos de Repetições
<Repita>
![Page 41: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/41.jpg)
41
• Algoritmos• Comandos de Repetições• Comando repita
Sintaxe
repita // Instruções lógicas abaixo. [bloco de instruções]ate ([expressão])
Esta expressão será avaliada após a execução das instruções contidas no laço. Caso a expressão seja
VERDADEIRA, então o laço terá sua execução INTERROMPIDA.
![Page 42: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/42.jpg)
42
• Algoritmos• Comandos de Repetições• ER com teste condicional no final• Este tipo de laço executa o bloco de
comandos e em seguida avalia a expressão condicional.
• A repetição ocorre se o valor dessa expressão for falso.
• Se esse valor for verdadeiro, a execução prossegue adiante (encerra).
![Page 43: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/43.jpg)
43
Enquanto (eu for estudante) faca escreval("Sou liso!")fimenquanto
Repita escreval("É liso!")ate (você é analista?)
![Page 44: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/44.jpg)
44
Problema IXFaça um algoritmo que faça a
leitura de vários números digitados pelo usuário, até que se digite um número negativo.
![Page 45: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/45.jpg)
45
• Algoritmos• Comandos de Repetições
Resolução do Problema IX
algoritmo "Problema 09"var valor: inteiroinicio repita escreva("Digite um valor: ") leia(valor) ate(valor < 0)fimalgoritmo
![Page 46: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/46.jpg)
46
Problema XDadas várias idades digitadas pelo usuário diga quantas idades são "maiores do que 18 anos e quantas são menores do que 18". O algoritmo encerra quando for digitada uma
idade NEGATIVA.
![Page 47: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/47.jpg)
47
• Algoritmos• Comandos de Repetições
algoritmo "Problema 10"var idade, menores, maiores: inteiroinicio repita escreva("Digite uma idade: ") leia(idade) se (idade >= 18) entao maiores ← maiores + 1 senão se (idade > 0) entao menores ← menores + 1 fimse fimse ate(idade < 0) // resultado finalfimalgoritmoRe
solu
ção
do P
robl
ema
X
![Page 48: Construcao de Algoritmos - Aula 08](https://reader034.fdocuments.net/reader034/viewer/2022042706/58a53c621a28ab4f088b4929/html5/thumbnails/48.jpg)
48
O comando REPITA executa as instruções até que a condição seja
verdadeira. Ou seja, se a condição for falsa, o ciclo continua, caso contrário, a
repetição é encerrada.