Construcao de Algoritmos - Aula 08

44 visualizações

Publicada em

Estruturas de decisão:
- Se e senao
- Escolha ... caso
Estruturas de repetição:
- Enquanto
- Repita ... ate
- Para

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
44
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Construcao de Algoritmos - Aula 08

  1. 1. Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
  2. 2. Link Drive bit.ly/ads-algoritmos 2
  3. 3. 3 Algoritmos
  4. 4. 4 Controle de Fluxo <Comandos de Repetições>
  5. 5. • Algoritmos • Comandos de Repetições • Introdução • Na aula anterior, vimos como realizar desvios condicionais em um algoritmo.  Criamos algoritmos onde um bloco de comandos é executado somente se determinada condição for atendida. • Há casos em que um bloco de comandos deve ser executado "mais de uma vez". • Tal repetição ocorrerá enquanto (ou até que) uma dada condição seja satisfazível. 5
  6. 6. 6 O objetivo de tais comandos é executar uma instrução (ou conjunto de instruções) repetidas vezes, enquanto (ou até que) uma dada condição seja satisfeita.
  7. 7. • Algoritmos • Exemplo: • Algoritmo que escreva cinco vezes a frase: "Programação", de que forma você faria? 7 algoritmo "Repete Frase" var inicio escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação") fimalgoritmo
  8. 8. • Algoritmos • Comandos de Repetições • Exemplo: • Parece simples, não? Mas, e se mudássemos o número de repetições? • Se, ao invés de cinco mensagens, tivéssemos que imprimir cem mensagens? Ou cinco mil mensagens? • Seria um tanto exaustivo ficar digitando tantas vezes o mesmo comando. 8
  9. 9. 9 A solução para esse impasse é a utilização dos comandos de repetições.
  10. 10. • Algoritmos • Comandos de Repetições • Introdução • Os comandos de repetição classificam-se em:  Comando com teste condicional no início; • <comandos ENQUANTO ... FAÇA>  Comando com variável de controle. • <comandos PARA>  Comando com teste condicional no final; e • <comandos REPITA ... ATÉ> 10
  11. 11. 11 Comandos de Repetições <enquanto>
  12. 12. • Algoritmos • Comandos de Repetições • Comando enquanto  Sintaxe 12 enquanto ([expressão]) faca // Instruções lógicas abaixo. [bloco de instruções] fimenquanto É obrigatório o espaço existente entre a expressão e os comandos enquanto e faca.
  13. 13. • Algoritmos • Comandos de Repetições • Comando enquanto • Se a expressão for considerada verdadeira, a sequência de comandos será executada.  O "teste" volta a ser realizado sempre que os blocos de comandos definidos no enquanto são executados. • Se a expressão for considerada falsa, a sequência de comandos não será executada.  O que significa que ela jamais pode ser executada. 13
  14. 14. 14 Enquanto (eu for estudante) faca escreval("Sou liso!") fimenquanto
  15. 15. • Algoritmos • Exemplo: • Faça um algoritmo que escreva cinco vezes a frase: "Programação". 15 algoritmo "Repete Frase" var contador: inteiro inicio contador ← 1 enquanto (contador <= 5) faca escreval("Programação") contador ← contador + 1 fimenquanto fimalgoritmo
  16. 16. 16 Problema I Faça um algoritmo que imprima os números no intervalo de 1 à 10 na tela.
  17. 17. • Algoritmos • Comandos de Repetições  Resolução do Problema I 17 algoritmo "Problema 01" var contador: inteiro inicio contador ← 1 enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1 fimenquanto fimalgoritmo
  18. 18. 18 Problema II Faça um algoritmo que apresente os valores contidos no intervalo de 1 até onde o usuário "desejar".
  19. 19. • Algoritmos • Comandos de Repetições  Resolução do Problema II 19 algoritmo "Problema 02" var contador, valor: inteiro inicio contador ← 1 escreva("Quer contar até quanto? ") leia(valor) enquanto (contador <= valor) faca escreval(contador) contador ← contador + 1 fimenquanto fimalgoritmo
  20. 20. 20 Problema III Faça um algoritmo que realize a soma dos valores contidos no intervalo de 1 à 5.
  21. 21. • Algoritmos • Comandos de Repetições  Resolução do Problema III 21 algoritmo "Problema 03" var contador, soma: inteiro inicio contador ← 1 soma ← 0 enquanto (contador <= 5) faca soma ← soma + contador contador ← contador + 1 fimenquanto escreval(soma) fimalgoritmo
  22. 22. 22 Problema IV Faça um algoritmo que dados cinco valores "fornecidos" pelo usuário, apresente o maior valor digitado.
  23. 23. • Algoritmos 23 algoritmo "Problema 04" var // mv → maior valor contador, valor, mv: inteiro inicio escreva("Digite um valor: ") leia(valor) mv ← valor contador ← 2 enquanto (contador <= 5) faca escreva("Digite um valor: ") leia(valor) se (valor > mv) entao mv ← valor fimse contador ← contador + 1 fimenquanto escreval(mv) fimalgoritmo ResoluçãodoProblemaIV
  24. 24. 24 O comando ENQUANTO testa uma condição e, enquanto essa condição for verdadeira, as instruções associadas ao comando serão executadas.
  25. 25. 25 Comandos de Repetições <Para>
  26. 26. • Algoritmos • Comandos de Repetições • Comando para • O comando para é muito similar ao comando enquanto, visto anteriormente. • Basicamente, o comando para é usado para repetir um comando ou uma sequência de comandos diversas vezes. 26
  27. 27. • Algoritmos • Comandos de Repetições • Comando para • A quantidade de execuções (repetições) que o comando irá repetir é conhecida previamente.  Há uma variável que funciona como contador para essas repetições.  Esta variável deve cessar a repetição no momento em que a contagem chegar ao final.  Há, também, um valor de incremento, que define de quantas em quantas unidades a repetição executará. 27
  28. 28. • Algoritmos • Comandos de Repetições • Comando para  Sintaxes:  VInt ← variável inteiro, VI ← valor inicial, VF ← valor final e VInc ← valor de incremento. 28 para <VInt> de <VI> ate <VF> [passo <VInc>] faca <bloco de instruções> fimpara OU para <VInt> de <VI> ate <VF> faca <bloco de instruções> fimpara "Opcional"
  29. 29. • Algoritmos • Comandos de Repetições • Exemplo: • Faça um algoritmo que escreva cinco vezes a frase: "Programação". 29 algoritmo "Repete Frase" var contador: inteiro inicio para contador de 1 ate 5 faca escreval("Programação") fimpara fimalgoritmo
  30. 30. • Algoritmos • Comandos de Repetições • Comando para  A variável de controle deve ser uma variável numérica do tipo inteiro.  O valor inicial corresponde ao valor de inicialização da variável antes da primeira repetição.  O valor final corresponde ao valor máximo que a variável pode alcançar.  Se o valor de incremento NÃO for definido, assume-se o valor = 1.  Pode ser atribuído um valor negativo ao valor de incremento. 30
  31. 31. 31 Problema V Faça um algoritmo que imprima os números no intervalo de 1 à 10 na tela.
  32. 32. • Algoritmos • Comandos de Repetições  Resolução do Problema V // Utilizando enquanto... 32 // Utilizando o "Enquanto" contador ← 1 enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1 fimenquanto
  33. 33. • Algoritmos • Comandos de Repetições  Resolução do Problema V  Saída: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 33 algoritmo "Problema 05" var contador: inteiro inicio para contador de 1 ate 10 faca escreval(contador) fimpara fimalgoritmo
  34. 34. 34 Problema VI Faça um algoritmo que apresente os valores contidos no intervalo de 1 até onde o usuário "desejar".
  35. 35. • Algoritmos • Comandos de Repetições  Resolução do Problema VI 35 algoritmo "Problema 06" var contador, valor: inteiro inicio escreva("Deseja contar até quanto? ") leia(valor) para contador de 1 ate valor faca escreval(contador) fimpara fimalgoritmo
  36. 36. 36 Problema VII Faça um algoritmo que realize a soma dos valores contidos no intervalo de 1 à 5.
  37. 37. • Algoritmos • Comandos de Repetições  Resolução do Problema VII 37 algoritmo "Problema 07" var contador, soma: inteiro inicio soma ← 0 para contador de 1 ate 5 faca soma ← soma + contador fimpara escreval(soma) fimalgoritmo
  38. 38. 38 Problema VIII Faça um algoritmo que dados cinco valores "fornecidos" pelo usuário, apresente o maior valor digitado.
  39. 39. • Algoritmos 39 algoritmo "Problema 08" Var // mv → maior valor contador, valor, mv: inteiro inicio escreva("Digite um valor: ") leia(valor) mv ← valor para contador de 2 ate 5 faca escreva("Digite um valor: ") leia(valor) se (valor > mv) entao mv ← valor fimse fimpara escreval(mv) fimalgoritmo ResoluçãodoProblemaVIII
  40. 40. 40 Comandos de Repetições <Repita>
  41. 41. • Algoritmos • Comandos de Repetições • Comando repita  Sintaxe 41 repita // Instruções lógicas abaixo. [bloco de instruções] ate ([expressão]) Esta expressão será avaliada após a execução das instruções contidas no laço. Caso a expressão seja VERDADEIRA, então o laço terá sua execução INTERROMPIDA.
  42. 42. • Algoritmos • Comandos de Repetições • ER com teste condicional no final • Este tipo de laço executa o bloco de comandos e em seguida avalia a expressão condicional. • A repetição ocorre se o valor dessa expressão for falso. • Se esse valor for verdadeiro, a execução prossegue adiante (encerra). 42
  43. 43. 43 Enquanto (eu for estudante) faca escreval("Sou liso!") fimenquanto Repita escreval("É liso!") ate (você é analista?)
  44. 44. 44 Problema IX Faça um algoritmo que faça a leitura de vários números digitados pelo usuário, até que se digite um número negativo.
  45. 45. • Algoritmos • Comandos de Repetições  Resolução do Problema IX 45 algoritmo "Problema 09" var valor: inteiro inicio repita escreva("Digite um valor: ") leia(valor) ate(valor < 0) fimalgoritmo
  46. 46. 46 Problema X Dadas várias idades digitadas pelo usuário diga quantas idades são "maiores do que 18 anos e quantas são menores do que 18". O algoritmo encerra quando for digitada uma idade NEGATIVA.
  47. 47. • Algoritmos • Comandos de Repetições 47 algoritmo "Problema 10" var idade, menores, maiores: inteiro inicio repita escreva("Digite uma idade: ") leia(idade) se (idade >= 18) entao maiores ← maiores + 1 senão se (idade > 0) entao menores ← menores + 1 fimse fimse ate(idade < 0) // resultado final fimalgoritmo ResoluçãodoProblemaX
  48. 48. 48 O comando REPITA executa as instruções até que a condição seja verdadeira. Ou seja, se a condição for falsa, o ciclo continua, caso contrário, a repetição é encerrada.

×