construcao de algoritmos - aula 08
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
Controle de Fluxo
<Comandos de Repetições>
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.
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.
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
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.
9
A solução para esse impasse é a utilização dos comandos de
repetições.
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É>
11
Comandos de Repetições<enquanto>
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.
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.
14
Enquanto (eu for estudante) faca escreval("Sou liso!")fimenquanto
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
16
Problema IFaça um algoritmo que imprima os números no intervalo de 1 à 10 na
tela.
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
18
Problema IIFaça um algoritmo que
apresente os valores contidos no intervalo de 1 até onde o
usuário "desejar".
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
20
Problema IIIFaça um algoritmo que realize a soma dos valores contidos
no intervalo de 1 à 5.
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
22
Problema IVFaça um algoritmo que dados
cinco valores "fornecidos" pelo usuário, apresente o maior valor
digitado.
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
24
O comando ENQUANTO testa uma condição e, enquanto essa
condição for verdadeira, as instruções associadas ao comando
serão executadas.
25
Comandos de Repetições
<Para>
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.
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á.
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"
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
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.
31
Problema VFaça um algoritmo que imprima os números no intervalo de 1 à 10 na
tela.
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
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
34
Problema VIFaça um algoritmo que
apresente os valores contidos no intervalo de 1 até onde o
usuário "desejar".
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
36
Problema VIIFaça um algoritmo que realize a soma dos valores contidos
no intervalo de 1 à 5.
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
38
Problema VIIIFaça um algoritmo que dados
cinco valores "fornecidos" pelo usuário, apresente o maior valor
digitado.
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
40
Comandos de Repetições
<Repita>
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.
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).
43
Enquanto (eu for estudante) faca escreval("Sou liso!")fimenquanto
Repita escreval("É liso!")ate (você é analista?)
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.
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
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.
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
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.