Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Logica Algoritmo 05 Repeticao

47,253 views

Published on

Published in: Technology, Education

Logica Algoritmo 05 Repeticao

  1. 1. Introdução à Lógica Estruturas de Repetição <ul><ul><li>Regis Pires Magalhães </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>Última atualização em 14/05/2008 </li></ul></ul>
  2. 2. Estruturas de Repetição <ul><li>São muito comuns as situações em que se deseja repetir um determinado trecho de um programa um certo número de vezes. </li></ul><ul><li>As estruturas de repetição são muitas vezes chamadas de Laços ou também de Loops. </li></ul><ul><li>Classificação: </li></ul><ul><ul><li>Laços Contados </li></ul></ul><ul><ul><ul><li>Conhecimento previo de quantas vezes o comando no interior da construção será executado; </li></ul></ul></ul><ul><ul><li>Laços Condicionais </li></ul></ul><ul><ul><ul><li>Não se conhece de antemão o número de vezes que o conjunto de comandos no interior do laço será repetido. </li></ul></ul></ul><ul><ul><ul><li>Amarrado a uma condição sujeita à modificação pelas instruções do interior do laço. </li></ul></ul></ul>
  3. 3. Laços condicionais <ul><li>O conjunto de comandos em seu interior é executado até que uma determinada condição seja satisfeita. </li></ul><ul><li>Laços condicionais mais comuns nas linguagens de programação modernas: </li></ul><ul><ul><li>Enquanto - laço condicional com teste no início </li></ul></ul><ul><ul><li>Repita - laço condicional com teste no final </li></ul></ul><ul><li>A variável que é testada dever sempre estar associada a um comando que a atualize no interior do laço. </li></ul><ul><ul><li>Caso isso não ocorra, o programa ficará repetindo indefinidamente este laço, gerando um “laço infinito”. </li></ul></ul>
  4. 4. Laços Condicionais com Teste no Início (enquanto ... faca) <ul><li>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. </li></ul><ul><ul><li>enquanto <condição> faca </li></ul></ul><ul><ul><li><comando_composto> </li></ul></ul><ul><ul><li>fimenquanto </li></ul></ul>
  5. 5. Fluxograma
  6. 6. Diagrama de Chapin
  7. 7. Laços condicionais (enquanto ... faca) <ul><li>algoritmo &quot;numeros&quot; </li></ul><ul><li>var </li></ul><ul><li>num_inicial, num_final, i : inteiro </li></ul><ul><li>inicio </li></ul><ul><li>escreva ( &quot;Digite o número inicial: &quot; ) </li></ul><ul><li>leia (num_inicial) </li></ul><ul><li>escreva ( &quot;Digite o número final: &quot; ) </li></ul><ul><li>leia (num_final) </li></ul><ul><li>i <- num_inicial </li></ul><ul><li>enquanto (i <= num_final) faca </li></ul><ul><li>escreval (i) </li></ul><ul><li>i <- i + 1 </li></ul><ul><li>fimenquanto </li></ul><ul><li>escreva ( &quot;fim&quot; ) </li></ul><ul><li>fimalgoritmo </li></ul>
  8. 8. Exemplo <ul><li>algoritmo &quot;exemplo_enquanto&quot; </li></ul><ul><li>var soma, num : inteiro </li></ul><ul><li>inicio </li></ul><ul><li>num <- 1 </li></ul><ul><li>soma <- num </li></ul><ul><li>enquanto soma < 1000 faca </li></ul><ul><li>escreval( num, &quot; - &quot; , soma) </li></ul><ul><li>num <- num + 1 </li></ul><ul><li>soma <- soma + num </li></ul><ul><li>fimenquanto </li></ul><ul><li>fimalgoritmo </li></ul>
  9. 9. Exemplo
  10. 10. Laços Condicionais com Teste no Final ( repita ... ate ) <ul><li>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. </li></ul><ul><li>Na construção Repita o comando é executado uma ou mais vezes (pelo menos uma vez). Além disso, a variável pode ser inicializada ou lida dentro do laço. </li></ul><ul><li>Na construção Enquanto o comando é executado zero ou mais vezes. </li></ul><ul><ul><li>repita </li></ul></ul><ul><ul><li><comando_composto> </li></ul></ul><ul><ul><li>ate <condição> </li></ul></ul>
  11. 11. Laços condicionais (repita ... ate) <ul><li>algoritmo &quot;numeros&quot; </li></ul><ul><li>var </li></ul><ul><li>num_inicial, num_final, i : inteiro </li></ul><ul><li>inicio </li></ul><ul><li>escreva (&quot;Digite o número inicial: &quot; ) </li></ul><ul><li>leia (num_inicial) </li></ul><ul><li>escreva ( &quot;Digite o número final: &quot; ) </li></ul><ul><li>leia (num_final) </li></ul><ul><li>i <- num_inicial </li></ul><ul><li>repita </li></ul><ul><li>escreval (i) </li></ul><ul><li>i <- i + 1 </li></ul><ul><li>ate (i > num_final) </li></ul><ul><li>escreva ( &quot;fim&quot; ) </li></ul><ul><li>fimalgoritmo </li></ul>
  12. 12. Fluxograma
  13. 13. Diagrama de Chapin
  14. 14. Exemplo <ul><li>algoritmo &quot;exemplo_repita&quot; </li></ul><ul><li>var num : inteiro </li></ul><ul><li>inicio </li></ul><ul><li>repita </li></ul><ul><li>leia (num) </li></ul><ul><li>escreval (num, &quot; - &quot; , num * num) </li></ul><ul><li>ate num % 2 = 0 </li></ul><ul><li>fimalgoritmo </li></ul>
  15. 15. Fluxograma
  16. 16. Laços contados <ul><li>São úteis quando se conhece previamente o número exato de vezes que se deseja executar um determinado conjunto de comandos. </li></ul><ul><li>Estrutura dotada de mecanismos para contar o número de vezes que o corpo do laço é executado. </li></ul><ul><ul><li>para <variável> de <início> ate <final> faca </li></ul></ul><ul><ul><li><comando_composto> </li></ul></ul><ul><ul><li>fimpara </li></ul></ul>
  17. 17. Laços contados (para ... de ... ate ... faca) <ul><li>algoritmo &quot;numeros&quot; </li></ul><ul><li>var </li></ul><ul><li>num_inicial, num_final, i : inteiro </li></ul><ul><li>inicio </li></ul><ul><li>escreva ( &quot;Digite o número inicial: &quot; ) </li></ul><ul><li>leia (num_inicial) </li></ul><ul><li>escreva ( &quot;Digite o número final: &quot; ) </li></ul><ul><li>leia (num_final) </li></ul><ul><li>para i de num_inicial ate num_final faca </li></ul><ul><li>escreval (i) </li></ul><ul><li>fimpara </li></ul><ul><li>escreva ( &quot;fim&quot; ) </li></ul><ul><li>fimalgoritmo </li></ul>
  18. 18. Laços contados <ul><li>Existe uma condição especial em que a contagem pode ser de forma decrescente, onde o valor da variável é decrementado. </li></ul><ul><ul><li>para <variável> de <início> ate <final> passo –1 faca </li></ul></ul><ul><ul><li><comando_composto> </li></ul></ul><ul><ul><li>fimpara </li></ul></ul>
  19. 19. Fluxograma
  20. 20. Diagrama de Chapin
  21. 21. Exemplo <ul><li>algoritmo &quot;tabuada&quot; </li></ul><ul><li>var i, tab, num : inteiro </li></ul><ul><li>inicio </li></ul><ul><li>escreva( &quot;Tabuada: &quot; ) </li></ul><ul><li>leia( tab) </li></ul><ul><li>escreva( &quot;Até que número: &quot; ) </li></ul><ul><li>leia( num) </li></ul><ul><li>para i de 1 ate num faca </li></ul><ul><li>escreva( i, &quot; x &quot; , tab, &quot; = &quot; , i * tab) </li></ul><ul><li>fimpara </li></ul><ul><li>fimalgoritmo </li></ul>
  22. 22. Fluxograma
  23. 23. Estruturas de Controle Encadeadas ou aninhadas <ul><li>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. </li></ul><ul><li>Em qualquer tipo de aninhamento é necessário que a construção interna esteja completamente embutida na construção externa. </li></ul>Aninhamento inválido Aninhamento válido

×