Cdigo: DCC 105 Carga-horria: 60 horas-aula Estrutura de Repetio Roteiro Estrutura de Repetio Conceito Com verificao no incio Com verificao no fim Com contagem Estrutura de Repetio Permitem que uma seqncia de comandos seja executada repetidamente, at que determinada condio de interrupo seja satisfeita. So tambm conhecidas como laos ou malhas. Cada repetio do conjunto de comandos chamada iterao. Estrutura de Repetio A repetio de comandos em um lao pode seguir um dos seguintes critrios: Por Condio (Verificao no incio) Por Condio (Verificao no fim) Por Contagem Com verificao no incio Permite que comandos sejam repetidos enquanto uma condio no atendida. Sintaxe: enquanto <expresso-lgica> faca <seqncia-de-comandos> fimenquanto Estrutura de Repetio Estrutura de Repetio Exemplo: Exibe os nmeros de 1 a 10 em ordem crescente. algoritmo com_enquanto_faca var j: inteiro inicio j <- 1 enquanto j <= 10 faca escreva (j:3) //escreve o valor de j em 3 espaos j <- j + 1 fimenquanto fimalgoritmo Com verificao no fim Permite que comandos sejam repetidos at que uma condio seja atendida. Sintaxe: repita <seqncia-de-comandos> ate <expresso-lgica> Estrutura de Repetio Exemplo: Exibe os nmeros de 1 a 10 em ordem crescente. algoritmo com_repita var j: inteiro inicio j <- 1 repita escreva (j:3) j <- j + 1 ate j > 10 fimalgoritmo Estrutura de Repetio Com contagem Permite que comandos sejam repetidos um determinado nmero de vezes. Sintaxe: para <varivel> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca <seqncia-de-comandos> fimpara Estrutura de Repetio Exemplo: Exibir os nmeros de 1 a 10 em ordem crescente. Estrutura de Repetio algoritmo com_para" var j: inteiro inicio para j de 1 ate 10 faca escreva (j:3) fimpara fimalgoritmo algoritmo com_para_passo" var j: inteiro inicio para j de 10 ate 1 passo -1 faca escreva (j:3) fimpara fimalgoritmo Observaes da estrutura para O identificador tem de ser do tipo inteiro; Os valores inicial e final podero ser constantes numricas inteiras, funes que retornem nmeros inteiros ou expresses que retornem nmeros inteiros; O valor que incrementado ou decrementado da varivel poder ser constante ou uma outra varivel; Esta estrutura a prpria expresso de uma PA. Estrutura de Repetio Observaes da estrutura para O nmero de repeties do bloco de comandos ser igual ao NMEROS DE TERMOS DA SRIE, portanto, na maioria das vezes, no importam os valores que a varivel que controla a repetio assumir. A varivel que controla a repetio dever ser declarada e poder ser impressa se precisarmos dela para numerar uma lista, posicionar etc. A varivel que controla a repetio JAMAIS aparecer num comando de leitura dentro do bloco de repetio. Estrutura de Repetio Para dentro de Para Imagine voc dando uma volta no Parque Anau: passa uma vez pela lagoa principal, uma vez pela entrada do parque, uma vez pelo Palco, uma pela ponte; esse trajeto representa seus algoritmos feitos at agora com os comandos apresentados. Imagine que seu preparo fsico melhorou e agora voc consegue dar trs ou cinco voltas ou, quem sabe, at dez voltas no parque; isso significa que voc passar dez vezes pelos mesmos lugares. Esse exemplo representa a estrutura do para. Imagine agora que voc passou a dar trs voltas no parque mas em frente ao Palco voc far cinco abdominais. Se, em cada volta voc faz cinco abdominais, ao final, voc ter feito 15 abdominais e ter dado trs voltas no parque. Isso representa um Para dentro de um Para. Estrutura de Repetio Para dentro de Para Estrutura de Repetio Para dentro de Para Estrutura de Repetio Consideraes Finais Nmero de repeties pode ser indeterminado, mas no deve ser infinito (loop). As formas de laos de repetio so equivalentes entre si. A escolha entre uma e outra arbitrria. Estrutura de Repetio Dicas No use enquanto no lugar do para, s se no tiver alternativa Na dvida entre enquanto e repita at (faa enquanto), use enquanto Para simular a estrutura do repita at (faa enquanto), usando a estrutura do enquanto, basta iniciar a varivel da condio com qualquer valor vlido Estrutura de Repetio Elabore um algoritmo que leia N nmeros, calcule a soma e mostre-a no final. Ex: Lista de nmeros: 3,5,7,4,3,2,1,9,12,15,9 Soma dos nmeros = 70 Elabore um algoritmo que leia N nmeros, calcule a soma e a mdia dos nmeros lidos, mostrando no final. Ex: Lista de nmeros: 3,5,7,4,3,2,1,9,12,15,9 Soma dos nmeros = 70 Mdia = 70 / 11 = 6,3636 Faa um algoritmo que leia um nmero inteiro e imprima o seu fatorial . Faa um algoritmo que imprima os 50 primeiros termos da seqncia de Fibonacci: 1,1,2,3,5,8,13,21,... Exerccios Exerccios Calcular a soma dos 30 primeiros termos das seqncias: 1 1 / 2 + 1 / 4 1 / 6 + 1 / 8 . . . 63 + 61 + 59 / 2 + 57 / 3 + . . . 480/10 475 / 11 + 470 / 12 .... Leia m e n e calcule a soma de todos os nmeros mpares entre n e m Leia duas datas no formato DD/MM/AAAA e calcule a diferena entre elas em anos, meses e dias Leia n nmeros e imprima o maior, o menor e mdia dos pares entre 4 e 20. Faa um algoritmo que imprima os 50 primeiros termos da seqncia: 4/1, 12/5 , 36/9, -108/13, . Referncias Bibliogrficas LOPES, A.: Introduo Programao: 500 algoritmos resolvidos, Campus, 2002. Manual do VisuAlg