Lógica de programação Estruturas de repetição 1 Estruturas de Repetição São aquelas que permitem executar mais de uma vez (repetir) um determinado trecho do algoritmo; O trecho do algoritmo em repetição é também chamado de laço (ou “loop”); As repetições devem ser sempre finitas; 2 Estruturas de Repetição Quanto a quantidade de repetições, os laços podem ser Pré-determinados: Sabe-se antes a quantidade de execuções; Indeterminados: Não se conhece a quantidade de execuções; Quanto ao critério de parada, os laços podem utilizar Teste no início Teste no final Variável de controle 3 Estruturas de Repetição Repetição com teste no início Laço que verifica antes de cada execução, se é “permitido” executar o trecho do algoritmo; Trata-se de um laço que se mantém repetindo enquanto uma dada condição permanecer verdadeira; enquanto <condição> faça comando 1; comando 2; ... comando n; fim enquanto; 4 Estruturas de Repetição Repetição com teste no início Contador: Variável que reproduz o processo de contagem; início inteiro: CON; CON := 0; enquanto CON < 3 faça CON := CON + 1; fim enquanto; fim. 5 Estruturas de Repetição Repetição com teste no início: Média Aritmética para 50 alunos início real: N1, N2, N3, N4, MA; inteiro: CON; // contador CON := 0; // inicialização do contador enquanto (CON < 50) faça // teste da condição de parada leia (N1, N2, N3, N4); MA := (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado. Parabéns !”); senão escreva (“Aluno Reprovado. Estude mais !”); fim se; CON := CON + 1; // incremento do contador fim enquanto; fim. 6 Estruturas de Repetição Repetição com teste no final Laço que verifica depois de cada execução, se é “permitido” continuar executando o trecho do algoritmo; Trata-se de um laço que se mantém repetindo até que uma dada condição se torne verdadeira; repita comando 1; comando 2; ... comando n; até <condição>; 7 Estruturas de Repetição Repetição com teste no final: Média Aritmética da turma com Repita início real: MA, //Média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: CON; // contador CON := 0; // inicialização do contador ACM := 0; // inicialização do acumulador repita leia (MA); ACM := ACM + MA; // soma em ACM os valores lidos em MA CON := CON + 1; // incremento do contador até (CON = 50); // teste da condição de parada MAT := ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); fim. 8 Estruturas de Repetição Repetição com variável de controle Laço simplificado para utilização em repetições de quantidade pré-determinada; Incorpora internamente o funcionamento de um contador de repetições; para V de vi até vf passo p faça comando 1; comando 2; ... comando n; fim para; 9 Estruturas de Repetição Repetição com variável de controle início real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: V; // contador ACM := 0; // inicialização do acumulador para V de 1 até 50 passo 1 faça leia (MA); ACM := ACM + MA; // soma em ACM os valores lidos em MA fim para; MAT := ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); fim. 10 Estruturas de Repetição Comparação entre estruturas de repetição Aprendemos 3 maneiras de construir laços de repetição; É importante perceber que existem laços mais adequados ou convenientes para cada situação; 11 Exercícios 1) Desenvolva um algoritmo que receba 5 números e mostra a soma desses números. 2)Desenvolva um algoritmo que receba um dia da semana e mostra suas tarefas nesses dias. 3) Desenvolva um algoritmo que recebe um mês e verifica se ele corresponde ao primeiro, segundo, terceiro ou quarto trimestre. 4) Desenvolva um algoritmo que recebe uma opção inteira e sai da repetição somente quando o usuário digitar 0 (zero). 5) Desenvolva um algoritmo que mostra o produto dos vinte números de 1 a 20. 12 Exercícios 1) Algoritmo Soma Inicio Var i, s, n: inteiro; s := 0; Para i de 1 até 5 faça informe um número; leia esse número (n); s := s + n; Fim para; Escreva (“A soma é: “,s); Fim. 13 Exercícios 2) Algoritmo dias da semana Inicio Var dia : string; Informe um dia da semana (dia); Leia (dia); Caso dia (“segunda-feira”, “sexta-feira”) : escrever (“Estudar Algoritmos”); Caso dia (“terça-feira”) : escrever (“Estudar Matemática”); Caso dia (“quarta-feira”) : escrever (“Estudar Lógica”); Caso dia (“quinta-feira”) : escrever (“Estudar Inglês”); Caso dia (“sábado”) : escrever (“Limpar a casa”); Caso dia (“domingo”) : escrever (“Descansar”); Caso contrário : escrever (“dia inválido”); Fim case; Fim. 14 Exercícios 3) Algoritmo trimestre Inicio Var m : inteiro; Informe um mês (m); Leia (m); Caso 1, 2, 3 : escrever (“Primeiro trimestre”); Caso 4, 5, 6 : escrever (“Segundo trimestre”); Caso 7, 8, 9 : escrever (“Terceiro trimestre”); Caso 10, 11, 12 : escrever (“Quarto trimestre”); Caso contrário : escrever (“Mês inválido”); Fim case; Fim. 15 Exercícios 4) Algoritmo Opção Inicio Var op : inteiro; Informe uma opção (op); Leia (op); Enquanto (op <> 0) faça; Informe uma opção (op); Leia (op); Fim enquanto; Fim. 16 Exercícios 5) Algoritmo Produto Inicio var p, i, n : inteiro; p, i := 1; enquanto (i ≤ 20) faça; p := p * i; i := i + 1; fim enquanto; escreva (“O produto é: “,p); Fim. 17 Exercícios 18