foi teoricamente impossível trabalhar essa semana. tudo que eu precisava para realizar uma tarefa precisa de outra coisa que precisava de outra, em um loop infinito como um Möbius Strip. talvez você pudesse como se fazer uma eu tivesse lista de uma tarefas. caneta… Algoritmos Estruturas de Repetição Thiago Leite <[email protected]> Francisco Barretto <[email protected]> Estruturas de Repetição • Quando há a necessidade de repetir a mesma estrutura é possível fazer uso de mecanismos diferentes para auxiliar na codificação Exemplo em Português Estruturado 1. programa PEDE_NUMERO 12. 2. var 13. 3. X: inteiro 14. 4. R: inteiro 15. 5. início 16. 6. leia X 17. 7. R <-­‐ X * 3 18. 8. escreva R 19. 9. leia X 20. 10. R <-­‐ X * 3 21.fim 11. escreva R leia X R <-­‐ X * 3 escreva R leia X R <-­‐ X * 3 escreva R leia X R <-­‐ X * 3 escreva R Estruturas de Repetição • Com o uso de estruturas de repetição, é possível realizar inúmeras repetições de um código sem que seja necessário escrever todo o algoritmo • A repetição também é chamada de um “loop” dentro do código Estruturas de Repetição • Repetição com teste lógico no início do loop • enquanto… faça… fim_enquanto • realiza um teste lógico antes do início do loop • no momento que a operação lógica se tornar falsa o loop será encerrado • se a operação lógica for falsa desde o início o código contido dentro do loop será ignorado Teste de Repetição no Início Estrutura de Repetição Exemplo em Português Estruturado programa LOOPING_1A var X, R: inteiro CONT: inteiro início CONT <-­‐ 1 enquanto (CONT <= 5) faça leia X R <-­‐ X * 3 escreva R CONT <-­‐ CONT +1 fim_equanto fim Exemplo em Linguagem C Estruturas de Repetição Estruturas de Repetição • Exercício: 1. Criar uma variável para ser utilizada como resposta 2. Enquanto a resposta for “s”, executar os passos 3, 4 e 5 3. Ler um valor para a variável “x” 4. Efetuar a multiplicação do valor de “x” por 3, armazenando o resultado em “r” 5. Apresentar o valor calculado contido em “r” 6. Quando a resposta for diferente de “s”, finalizar o programa Diagrama de Repetição e Teste no Início Estruturas de Repetição “Enquanto” em Português Estruturado programa LOOPING_1B var x, r: inteiro resp: caracter início resp <-­‐ “s” enquanto (resp == “s”) faça leia x r <-­‐ x * 3 escreva r escreva “Deseja continuar?” leia resp fim_enquanto fim “While” em Linguagem C Estruturas de Repetição Estruturas de Repetição • Repetição com teste lógico ao final do loop • repita… até que • realiza um teste lógico ao final do loop • no momento que a operação lógica se tornar falsa o loop será encerrado • se a operação lógica for falsa desde o início o código contido dentro do loop será executado pelo menos uma vez Diagrama de Repetição com Teste ao Final Estruturas de Repetição “Repita" em Português Estruturado programa LOOPING_2A var X, R: inteiro CONT: inteiro início CONT <-­‐ 1 repita leia X R <-­‐ X * 3 escreva R CONT <-­‐ CONT + 1 até_que (CONT > 5) fim “Do-While” em Linguagem C Estruturas de Repetição Estruturas de Repetição • Repetição com variável de controle • para… de… até… passo… faça… fim_para • loop controlado por uma variável de controle (contador) • no momento que a expressão lógica for falsa, o loop é finalizado • se a condição lógica sempre for falsa, não executa o loop • estrutura mais compacta para realizar loops com o uso de um contador incremental Diagrama de Repetição com Variável de Controle Estruturas de Repetição Repetição com Variável de Controle Estruturas de Repetição Exemplo de “para” com Diagrama de Blocos Estruturas de Repetição Exemplo de “para” em Português Estruturado Estruturas de Repetição Exemplo de “for” em Linguagem C Estruturas de Repetição Estruturas de Repetição • Exercício: elaborar algoritmo em Português Estruturado e em Linguagem C que efetue o cálculo de fatorial do número 5. • Exemplo: o fatorial de 5! é igual a 1 * 2 * 3 * 4 * 5 = 120. Estruturas de Repetição • Algoritmo 1. inicializar as variáveis FATORIAL e CONTADOR com 1 2. multiplicar sucessivamente (5 vezes) a variável FATORIAL pela variável CONTADOR 3. incrementar 1 a variável CONTADOR, efetuando o controle até 5 4. apresentar o valor final obtido. Português Estruturado utilizando “enquanto" Estruturas de Repetição Código em Linguagem C utilizando “while" Estruturas de Repetição Português Estruturado utilizando “repita" Estruturas de Repetição Código em Linguagem C utilizando “do-while” Estruturas de Repetição Português Estruturado utilizando “para" Estruturas de Repetição Código em Linguagem C utilizando “for” Estruturas de Repetição Estruturas de Repetição • Exercício: Elaborar código em Português Estruturado e em Linguagem C para o cálculo de toda a tabuada • Exemplo: dado como entrada o número 2 Português estruturado programa Cap05_Ex1b_Pg131 var N, I, R : inteiro início leia N I ← 1 enquanto (I <= 10) faça R ← N * I escreva N, " X ", I, " = ", R I ← I + 1 fim_enquanto fim Tabuada em Português Estruturado Estruturas de Repetição Tabuada em Linguagem C Estruturas de Repetição Estruturas de Repetição • Exercício: Elaborar algoritmo em Português Estruturado e em Linguagem C para o cálculo de todas as tabuadas de 1 até 10 e exibi-las na tela. • será necessário o uso de uma estrutura de repetição dentro de outra estrutura de repetição Tabuada Completa em Português Estruturado programa TABUADA_COMPLETA var num, mult: inteiro início repita para mult de 1 até 10 passo 1 faça escreva num, “ x “, mult,” = “, num*mult fim_para num = num + 1 até_que (num > 10) fim Tabuada Completa em Linguagem C Estruturas de Repetição Exercício de Fixação • Elaborar algoritmo em Português Estruturado e em Linguagem C para o cálculo do fatorial de qualquer número dado de entrada Exercício de Fixação • Elaborar algoritmo em Linguagem C para o cálculo dos números primos existentes até 500 • em Linguagem C poderá ser utilizada a função aritmética % para obter o resto de uma divisão Número Primo em Linguagem C Estruturas de Repetição Exercício de Fixação • Codifique todos os exercícios realizados até o momento utilizando outras estruturas de repetição • Exemplo: se o exercício fez uso da estrutura “enquanto”, crie novamente o algoritmo utilizando “repita” e “para”.