ET51D - INFORMÁTICA Algoritmos

Propaganda
ET51D - INFORMÁTICA
Algoritmos - Estruturas de Repetição
Professor: Glauber G. O. Brante
[email protected]
UTFPR – Universidade Tecnológica Federal do Paraná
DAELT – Departamento Acadêmico de Eletrotécnica
Brante, G.
Informática - Algoritmos
1 / 17
Estruturas de Repetição
Estrutura de Decisão: realiza desvios condicionais, criando
programas em que um bloco de comandos é executado somente se
uma determinada condição é verdadeira.
Entretanto, há casos em que é preciso que um bloco de comandos seja
executado mais de uma vez se uma determinada condição for
verdadeira.
Estrutura de Repetição (ou loop/laço): permite executar um
conjunto de comandos quantas vezes forem necessárias.
Brante, G.
Informática - Algoritmos
2 / 17
Exemplo: Imprimir os números de 1 a 100
Este fluxograma está correto?
Brante, G.
Informática - Algoritmos
3 / 17
Exemplo: Imprimir os números de 1 a 100
Este fluxograma está correto?
NÃO!
Brante, G.
Informática - Algoritmos
3 / 17
Exemplo: Imprimir os números de 1 a 100
Este fluxograma está correto?
SIM!
Solução:
Repetição por condição!
Brante, G.
Informática - Algoritmos
3 / 17
Estruturas de Repetição
Tipos de estruturas de repetição:
Estrutura enquanto-faça
Estrutura repita até ou faça enquanto
Estrutura para-passo
Brante, G.
Informática - Algoritmos
4 / 17
Estrutura “enquanto-faça”
enquanto-faça (while)
Repete a execução de um bloco de
sentenças enquanto uma condição
permanecer verdadeira.
Brante, G.
Informática - Algoritmos
5 / 17
Estrutura “enquanto-faça”
enquanto ( condição for verdadeira ) faca
conjunto de comandos;
fimenquanto
Brante, G.
Informática - Algoritmos
6 / 17
Exemplo:
algoritmo “Imprimir os números de 1 a 1000”
var
num : inteiro
inicio
num <- 1
enquanto (num <= 1000) faca
escreval(“Número: ”, num)
num <- num + 1
fimenquanto
fimalgoritmo
Brante, G.
Informática - Algoritmos
7 / 17
Estrutura “repita até” ou “faça enquanto”
faça...enquanto (do...while)
Semelhante ao while.
Diferença crucial: a condição é
verificada após executar o bloco de
instruções correspondente.
A escolha dependerá do bom senso do
programador, que optará pela estrutura
que deixar o algoritmo mais simples e
legível.
Brante, G.
Informática - Algoritmos
8 / 17
Estrutura “repita até” ou “faça enquanto”
repita
conjunto de comandos;
até ( condição ser verdadeira )
faça
conjunto de comandos;
enquanto ( condição for verdadeira )
Brante, G.
Informática - Algoritmos
9 / 17
Estrutura “repita até” ou “faça enquanto”
repita
conjunto de comandos;
até ( condição ser verdadeira )
Algoritmos
VisuAlg
faça
conjunto de comandos;
Ling. C
enquanto ( condição for verdadeira )
Brante, G.
Informática - Algoritmos
9 / 17
Exemplo: repita-até
algoritmo “Imprimir os números de 1 a 1000”
var
num : inteiro
inicio
num <- 1
repita
escreval(“Número: ”, num)
num <- num + 1
ate (num > 1000)
fimalgoritmo
Brante, G.
Informática - Algoritmos
10 / 17
Exemplo: faça-enquanto
algoritmo “Imprimir os números de 1 a 1000”
var
num : inteiro
inicio
num <- 1
faça
escreval(“Número: ”, num)
num <- num + 1
enquanto (num <= 1000)
fimalgoritmo
Brante, G.
Informática - Algoritmos
11 / 17
repita-até × enquanto-faça
algoritmo “Imprimir números de 1 a 1000”
var
num : inteiro
algoritmo “Imprimir números de 1 a 1000”
var
num : inteiro
inicio
inicio
num <- 1
num <- 1
repita
escreval(“Número: ”, num)
num <- num + 1
ate (num > 1000)
faça
escreval(“Número: ”, num)
num <- num + 1
enquanto (num <= 1000)
fimalgoritmo
fimalgoritmo
As condições são diferentes porque a semântica do repita-até é diferente da
semântica do enquanto-faça.
Brante, G.
Informática - Algoritmos
12 / 17
Estrutura “para-passo”
para-passo (for)
Executa um bloco de sentenças por um
número específico de vezes
Apresenta, de forma compacta, as
etapas de inicialização, do teste e da
atualização
Brante, G.
Informática - Algoritmos
13 / 17
Estrutura “para-passo”
para Variável de ValorInicial ate ValorFinal passo P faca
conjunto de comandos;
fimpara
Brante, G.
Informática - Algoritmos
14 / 17
Exemplo: para-passo
algoritmo “Imprimir os números de 1 a 1000”
var
num : inteiro
inicio
para num de 1 ate 1000 passo 1 faca
escreval(“Número: ”, num)
fimpara
fimalgoritmo
Obs.: A variável num é inicializada de forma implícita e o incremento
desta variável também é implícito.
Brante, G.
Informática - Algoritmos
15 / 17
Exercício
Brante, G.
Informática - Algoritmos
16 / 17
Exercício: Faça um algoritmo que leia um número de 1 a 5 e escreva
por extenso. Caso o usuário digite um número que não esteja neste
intervalo, exibir mensagem: número inválido. O algoritmo deve dar a
opção ao usuário de digitar um número quantas vezes quiser.
Brante, G.
Informática - Algoritmos
17 / 17
Download