Introdução à Lógica Estruturas de Repetição Regis Pires Magalhães [email_address] Última atualização em 14/05/2008
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 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 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> fimenquanto
Fluxograma
Diagrama de Chapin
Laços condicionais (enquanto ... faca) algoritmo   &quot;numeros&quot; var num_inicial, num_final, i : inteiro inicio escreva ( &quot;Digite o número inicial: &quot; ) leia (num_inicial) escreva ( &quot;Digite o número final: &quot; ) leia (num_final) i <- num_inicial enquanto  (i <= num_final)  faca escreval (i) i <- i + 1 fimenquanto escreva ( &quot;fim&quot; ) fimalgoritmo
Exemplo algoritmo   &quot;exemplo_enquanto&quot; var  soma, num : inteiro inicio num <- 1 soma <- num enquanto  soma < 1000  faca escreval( num,  &quot; - &quot; , soma) num <- num + 1 soma <- soma + num fimenquanto fimalgoritmo
Exemplo
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 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   &quot;numeros&quot; var num_inicial, num_final, i : inteiro inicio escreva (&quot;Digite o número inicial: &quot; ) leia (num_inicial) escreva ( &quot;Digite o número final: &quot; ) leia (num_final) i <- num_inicial repita escreval (i) i <- i + 1 ate  (i > num_final) escreva ( &quot;fim&quot; ) fimalgoritmo
Fluxograma
Diagrama de Chapin
Exemplo algoritmo   &quot;exemplo_repita&quot; var  num : inteiro inicio repita leia (num) escreval (num,  &quot; - &quot; , num * num) ate  num % 2 = 0 fimalgoritmo
Fluxograma
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. para  <variável>  de  <início>  ate  <final>  faca <comando_composto> fimpara
Laços contados (para ... de ... ate ... faca)  algoritmo   &quot;numeros&quot; var num_inicial, num_final, i : inteiro inicio escreva ( &quot;Digite o número inicial: &quot; ) leia (num_inicial) escreva ( &quot;Digite o número final: &quot; ) leia (num_final) para  i  de  num_inicial  ate  num_final  faca escreval (i) fimpara escreva ( &quot;fim&quot; ) 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
Fluxograma
Diagrama de Chapin
Exemplo algoritmo   &quot;tabuada&quot; var  i, tab, num : inteiro inicio escreva( &quot;Tabuada: &quot; ) leia( tab) escreva( &quot;Até que número: &quot; ) leia( num) para  i  de  1  ate  num  faca escreva( i,  &quot; x &quot; , tab,  &quot; = &quot; , i * tab) fimpara fimalgoritmo
Fluxograma
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. Aninhamento inválido Aninhamento válido

Logica Algoritmo 05 Repeticao

  • 1.
    Introdução à LógicaEstruturas de Repetição Regis Pires Magalhães [email_address] Última atualização em 14/05/2008
  • 2.
    Estruturas de RepetiçãoSã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 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.
  • 3.
    Laços condicionais Oconjunto 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 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”.
  • 4.
    Laços Condicionais comTeste 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> fimenquanto
  • 5.
  • 6.
  • 7.
    Laços condicionais (enquanto... faca) algoritmo &quot;numeros&quot; var num_inicial, num_final, i : inteiro inicio escreva ( &quot;Digite o número inicial: &quot; ) leia (num_inicial) escreva ( &quot;Digite o número final: &quot; ) leia (num_final) i <- num_inicial enquanto (i <= num_final) faca escreval (i) i <- i + 1 fimenquanto escreva ( &quot;fim&quot; ) fimalgoritmo
  • 8.
    Exemplo algoritmo &quot;exemplo_enquanto&quot; var soma, num : inteiro inicio num <- 1 soma <- num enquanto soma < 1000 faca escreval( num, &quot; - &quot; , soma) num <- num + 1 soma <- soma + num fimenquanto fimalgoritmo
  • 9.
  • 10.
    Laços Condicionais comTeste 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 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>
  • 11.
    Laços condicionais (repita... ate) algoritmo &quot;numeros&quot; var num_inicial, num_final, i : inteiro inicio escreva (&quot;Digite o número inicial: &quot; ) leia (num_inicial) escreva ( &quot;Digite o número final: &quot; ) leia (num_final) i <- num_inicial repita escreval (i) i <- i + 1 ate (i > num_final) escreva ( &quot;fim&quot; ) fimalgoritmo
  • 12.
  • 13.
  • 14.
    Exemplo algoritmo &quot;exemplo_repita&quot; var num : inteiro inicio repita leia (num) escreval (num, &quot; - &quot; , num * num) ate num % 2 = 0 fimalgoritmo
  • 15.
  • 16.
    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. para <variável> de <início> ate <final> faca <comando_composto> fimpara
  • 17.
    Laços contados (para... de ... ate ... faca) algoritmo &quot;numeros&quot; var num_inicial, num_final, i : inteiro inicio escreva ( &quot;Digite o número inicial: &quot; ) leia (num_inicial) escreva ( &quot;Digite o número final: &quot; ) leia (num_final) para i de num_inicial ate num_final faca escreval (i) fimpara escreva ( &quot;fim&quot; ) fimalgoritmo
  • 18.
    Laços contados Existeuma 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
  • 19.
  • 20.
  • 21.
    Exemplo algoritmo &quot;tabuada&quot; var i, tab, num : inteiro inicio escreva( &quot;Tabuada: &quot; ) leia( tab) escreva( &quot;Até que número: &quot; ) leia( num) para i de 1 ate num faca escreva( i, &quot; x &quot; , tab, &quot; = &quot; , i * tab) fimpara fimalgoritmo
  • 22.
  • 23.
    Estruturas de ControleEncadeadas 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. Aninhamento inválido Aninhamento válido