estrutura de repetição · estruturas de repetição são muito comuns as situações em que se...
TRANSCRIPT
Componente Lógica de Programação
Estrutura de Repetição
Programação
Prof. Esp. MBA Heuber G. F. Lima
Aula 4
Estruturas de Repetição
� São muito comuns as situações em que se deseja repetir um determinado trecho de um programa um certo número de vezes.
� As estruturas de repetição são muitas vezes chamadas de Laços ou também de Loops.
� Classificação:
– Laços Contados
Page � 2
– Laços Contados
• Conhecimento previo de quantas vezes o comando no interior da construção será executado;
– Laços Condicionais
• Não se conhece de antemão o número de vezes que o conjunto de comandos no interior do laço será repetido.
• Amarrado a uma condição sujeita à modificação pelas instruções do interior do laço.
Laços condicionais
� O conjunto de comandos em seu interior é executado até que uma determinada condição seja satisfeita.
� Laços condicionais mais comuns nas linguagens de programação modernas:
– Enquanto - laço condicional com teste no início
– Repita - laço condicional com teste no final
Page � 3
– Repita - laço condicional com teste no final
� A variável que é testada dever sempre estar associada a um comando que a atualize no interior do laço.
– Caso isso não ocorra, o programa ficará repetindo indefinidamente este laço, gerando um “laço infinito”.
Laços Condicionais com Teste no Início (enquanto .. . faca)
�Caracteriza-se por uma estrutura que efetua um teste lógico no início de um laço, verificando se é permitido ou não executar o conjunto de comandos no interior do laço.
enquanto <condição> faca
<comando_composto>
Page � 4
fimenquanto
Fluxograma
Page � 5
Diagrama de Chapin
Page � 6
Laços condicionais (enquanto ... faca)
algoritmo "numeros“Inicio
declare
num_inicial, num_final, i numérico
escreva ( "Digite o número inicial: " )
leia (num_inicial)
escreva ( "Digite o número final: " )
leia (num_final)
Page � 7
leia (num_final)
i <- num_inicial
enquanto (i <= num_final) faca
escreva (i)
i <- i + 1
Fim enquanto
escreva ( "fim" )
fimalgoritmo
Exemplo
algoritmo "exemplo_enquanto"
var soma, num : inteiro
inicio
num <- 1
soma <- num
enquanto soma < 1000 faca
Page � 8
enquanto soma < 1000 faca
escreval( num, " - " , soma)
num <- num + 1
soma <- soma + num
fimenquanto
fimalgoritmo
Exemplo
Page � 9
Laços Condicionais com Teste no Final ( repita ... ate )
�Efetua um teste lógico no final de um laço, verificando se é permitido ou não executar novamente o conjunto de comandos no interior do mesmo.
�Na construção Repita o comando é executado uma ou mais vezes (pelo menos uma vez). Além disso, a variável
Page � 10
mais vezes (pelo menos uma vez). Além disso, a variável pode ser inicializada ou lida dentro do laço.
�Na construção Enquanto o comando é executado zero ou mais vezes.
repita
<comando_composto>
ate <condição>
Laços condicionais (repita ... ate)algoritmo "numeros"
var
num_inicial, num_final, i : inteiro
inicio
escreva ("Digite o número inicial: " )
leia (num_inicial)
escreva ( "Digite o número final: " )
Page � 11
leia (num_final)
i <- num_inicial
repita
escreval (i)
i <- i + 1
ate (i > num_final)
escreva ( "fim" )
fimalgoritmo
Fluxograma
Page � 12
Diagrama de Chapin
Page � 13
Exemplo
algoritmo "exemplo_repita"
var num : inteiro
inicio
repita
leia (num)
escreva (num, " - " , num * num)
Page � 14
ate num % 2 = 0
fimalgoritmo
Fluxograma
Page � 15
Laços contados
�São úteis quando se conhece previamente o número exato de vezes que se deseja executar um determinado conjunto de comandos.
�Estrutura dotada de mecanismos para contar o número de vezes que o corpo do laço é executado.
Page � 16
para <variável> de <início> ate <final> faca
<comando_composto>
fimpara
Laços contados (para ... de ... ate ... faca)
algoritmo "numeros"
var
num_inicial, num_final, i : inteiro
inicio
escreva ( "Digite o número inicial: " )
leia (num_inicial)
escreva ( "Digite o número final: " )
Page � 17
escreva ( "Digite o número final: " )
leia (num_final)
para i de num_inicial ate num_final faca
escreval (i)
fimpara
escreva ( "fim" )
fimalgoritmo
Laços contados
� Existe uma condição especial em que a contagem pode ser de forma decrescente, onde o valor da variável é decrementado.
para <variável> de <início> ate <final> passo –1 faca
<comando_composto>
fimpara
Page � 18
Fluxograma
Page � 19
Diagrama de Chapin
Page � 20
Exemplo
algoritmo "tabuada"
var i, tab, num : inteiro
inicio
escreva( "Tabuada: " )
leia( tab)
escreva( "Até que número: " )
leia( num)
Page � 21
leia( num)
para i de 1 ate num faca
escreva( i, " x " , tab, " = " , i * tab)
fimpara
fimalgoritmo
Fluxograma
Page � 22
Estruturas de Controle Encadeadas ou aninhadas
�Um aninhamento ou encadeamento é o fato de se ter qualquer um dos tipos de construção apresentados anteriormente dentro do conjunto de comandos (comando composto) de uma outra construção.
�Em qualquer tipo de aninhamento é necessário que a construção interna esteja completamente embutida na construção externa.
Page � 23
construção externa.
Aninhamento inválidoAninhamento válido
Obrigado!Obrigado!