Post on 30-Sep-2020
VisuALG – Estruturas de Repetição
Professora:
Ana Paula Caçãof1415@ferreiradias.pt
VisuALG: Introdução a
ESTRUTURAS DE REPETIÇÃO
Estruturas de Repetição
• Executar tarefas repetitivas;
• Três principais opções:
– enquanto <condição> faca
fimenquanto
– repita ... ate < condição >
– para <contagem> faca
fimpara
enquanto – faca
• Verifica primeiro, executadepois;
• Repete apenas enquanto <condição> = verdade;
enquanto <condição> faca
...
fimenquanto x: inteiro
x < - 1
enquanto (x <= 10) faca
escreval(x)
x <- x+ 1 fimenquanto
Exemplo –Contagem até10
enquanto – faca
repita –ate
• Executa primeiro, verifica depois:
• Repete apenas enquanto: <condição> =falso;
repita
...
ate <clausula> x: inteiro
x < - 1
repita
escreval(x)
x <- x+ 1 ate (x > 10)
Exemplo –Contagem até10
repita –ate
• Exemplo:opcao: inteiro
repita
escreval("1 - Dizer olá!")
escreval("2 – Dizer oi! ")
escreval("0 - Sair do programa")
leia(opcao)
se (opcao = 1) entao
escreval("Olá!")
fimse
se (opcao = 2) entaoescreval("Oi!")
fimse
ate (opcao =0)
para – faca
x: inteiro
para x de 1 ate 10 passo 1 faca
escreval(x)fimpara
• Repetição condicionada a uma contagem:
Opcional
x: inteiro
para x de 1 ate 10 faca
escreval(x)fimpara
para <variável> de <valor inicial> ate <valor final> [passo <incremento>]faca
...
fimpara
Exemplo –Contagematé 10 Exemplo –Contagem até 10 c/passo
Atenção: a <variável> utilizada nesta estrutura terá o seu valor
alterado.
para – faca
• Exemplo: soma, num: real
i, n: inteiro
escreva("Digite o número de elementos:")
leia(n)
soma <- 0
para i de 1 ate n faca
escreva("Digite um número: ")
leia(num)
soma <- soma + num
fimpara
escreval("Total dos ", n, " elementos: ", soma)
Exemplo Prático
Estruturas de Repetição
Como terminam as
CONDIÇÕES
Fim das Condições
• Se uma estrutura de repetição serve para
executar uma determinada tarefa váriasvezes,
é necessário indicar quando é que as
repetições devem parar:
– Pode ser feita por um número pré-determinado
de vezes;
– Pode ser feita até que um evento ocorra;
– Pode ser feita até a solicitação do utilizador;
Fim das Condições
• Para Faca é mais simples e adequada para ser
usada nos casos de um número pré
determinado de repetições;
– Principalmente em intervalos numéricos, contadorese
outros do género;
• Repita Ate() e Enquanto () Faca são mais
adequadas para repetir até que “algo” aconteça:
– Algo pode ser um comando do utilizador ou atése
obter uma informação ou valor esperado;
Fim das Condições
• Caso a condição não tenha fim, em qualquer
estrutura de repetição, teremos um problema
de repetição infinita ou ciclo infinito;
• A repetição infinita irá bloquear o software,
que não será capaz de terminar aoperação.
Fim das Condições
• Exemplo de ciclo infinito com EnquantoFaca:
cont: inteiro
cont <-1
enquanto (cont < 10) faca
escreva(cont)fimenquanto
Variáveis de Controlo
• Exemplos de variáveis de controle comEnquanto:
cont: inteiro
cont <-1
enquanto (cont < 10) faca
escreva(cont)
cont <- cont +1
fimenquanto
• Exemplos de variáveis de controle com Para Faca:
cont: inteiro
para cont de 1 ate 10faca
escreva(cont)
fimpara
Estruturas de Repetição
ACUMULADORES ECONTADORES
Acumuladores e Contadores
• Contagens, somas e multiplicações:
– São utilizadas com frequência emalgoritmos;
– Geralmente associadas à repetições;
– São representadas por variáveisnuméricas;
– E são incrementadas/alteradas de acordo com a
ocorrência de alguns padrões.
Contadores
• Contagem:
– É usada para, por exemplo:
• contabilizar o número de execuções de umarepetição;
• determinar o número de vezes que um particular valor (ouação)
ocorre numa determinadasequência;
• entre outros;
– A variável associada geralmente começa no valor
zero (elemento neutro dasoma);
– Sempre que conveniente, acrescenta-se 1 ao contador.
Acumuladores e Contadores
• Somas ou Produtos Acumulativos:
– São frequêntes em cálculos de somatórios, produtos ou consolidações de resultados (totais, médias,...);
– Somatório:• Geralmente são inicializadas no valor zero (elemento neutro da
soma);
• Sempre que apropriado, soma-se outros valores à própria variável;
– Produto:• São inicializadas usualmente com o valor um (elemento neutro da
multiplicação);
• Sempre quando necessário, são atualizadas com o resultado doseu valor corrente multiplicado por um novo termo.
Estruturas deRepetição
EXEMPLOS
Exemplo (repita –ate)
Escrever a tabuada de um número:1.x, y: inteiro
2.escreva(“Digite um número para a tabuada:”)
3.leia(x) 4.
y <-0
5.repita
6.escreval(x, “x”, y, “=“, x*y) 7. y
<- y +1
8. ate(y >10)
Contador
Exemplo (enquanto – faca)
Ler números introduzidos pelo utilizador até que ele digite 0(zero);
Mostrar a soma dos números e a média;
1. dig, soma, qtdade: inteiro
2. media: real
3. soma <- 0
4. qtdade <-0
5. escreva("Informe um número(0 para sair): ")
6. leia(dig)
7. enquanto (dig <> 0) faca
8. soma <- soma + dig
9. qtdade <- qtdade +1
10. escreva("Informe um número(0 para sair): ")
11. leia(dig)
12. fimenquanto
13. media <- soma / qtdade
14. escreva("Qtdade: ", qtdade, " Soma: ", soma, " Média: ", media)
Contador
Somatório
Exemplo (para – faca)
1. x, y, z, multi: inteiro
2. escreva("Escreva x: ")
3. leia(x)
4. escreva("Escreva y: ")
5. leia(y)
6. multi <-0
7. para z de y ate 1 passo -1faca
8. multi <-multi +x
9. fimpara
Multiplicar dois números apenas com somas:
10. escreva("A Multiplicação de x por y é : ",multi)
Somatório