Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas de Repetição Curso de Redes de Computadores Faculdade FIB Prof. Rosemary Silveira -2010- Lógica de Programação Estrutura de Repetição • O algoritmo ao lado só é realizado uma vez e para um único aluno. • Se fosse necessário calcular esta mesma média para vários alunos, este trecho de código teria que ser repetido para cada média de aluno a ser calculada. • A esses trechos do algoritmo que são repetidos damos o nome de laços de repetição (o número de repetições pode ser indeterminado, porém necessariamente finito). Ex1.: Exemplo no Visualg algoritmo "Media" var n1, n2, n3, n4, md: real inicio leia(n1, n2, n3, n4) md <- (n1 + n2 + n3 + n4)/4 escreva(md) fimalgoritmo Estrutura de Repetição Repetição com teste no início • Estrutura que permite repetir diversas vezes um mesmo trecho de algoritmo, verificando antes de cada execução se é ‘permitido’ executar o mesmo trecho. Representação: Enquanto <condição> faça c1; c2; : cn fimenquanto Ex2.: Cálculo da Média para 50 alunos Algoritmo “MediaRepeticao” var nt1, nt2, md: real cont: inteiro Inicio cont<- 1 enquanto (cont <= 50) faca leia(nt1, nt2) md <- (nt1 + nt2)/2 escreval(md) cont<- cont + 1 fimenquanto fimalgoritmo Estrutura de Repetição Funcionamento: • Executa comando(s) enquanto uma determinada <condição> for verdadeira. • Quando o resultado da <condição> for falso, o comando de repetição será abandonado. • Se da primeira vez o resultado é falso, os comandos não são executados nenhuma vez (característica principal deste modelo de repetição). Importante: • No exemplo ao lado foi utilizado um contador para controlar a quantidade de alunos lidos. • Contador representa uma variável com um dado valor inicial, o qual é incrementado a cada repetição, este valor adicionado é sempre constante. Ex2.: Cálculo da Média para 50 alunos. Algoritmo “MediaRepeticao” var nt1, nt2, md: real; cont: inteiro; Inicio cont <- 1 enquanto (cont <= 50) faca leia(nt1, nt2) md <- nt1 + nt2/2 escreva(md) cont<- cont + 1 fimenquanto fimalgoritmo Estrutura de Repetição Comentários sobre o exemplo: • Para calcular a média geral da turma teria que se utilizar a expressão gigante abaixo, que na prática é inviável: (m1 + m2 + m3 + ...+ m50)/50 • Para solucionar este problema utilizou-se uma variável do tipo acumulador. • Acumulador é uma variável que acumula os valores somados a cada repetição e estes valores podem variar. • Para o exemplo ao lado foi necessário acumular o valor da média dos alunos lidas. Após o término da repetição, obtém-se a soma de todas as médias nesta variável de acumulação. Ex3.: Cálculo da Média geral de 50 alunos Algoritmo “MediaGeralRepeticao” var mda, mdt, somamd: real cont: inteiro; Inicio cont<- 0 somamd <- 0 enquanto (cont < 50) faca leia(mda) somamd <- somamd + mda cont<- cont + 1 fimenquanto mdt <- somamd/cont escreva(mdt) fimalgoritmo Estrutura de Repetição Comentários sobre o exemplo: • O exemplo no slide anterior utiliza o pré-conhecimento da quantidade de alunos da turma. • Se não tivesse este pré- conhecimento da quantidade de alunos, seria necessário definir outro critério para controlar o laço. • Uma alternativa para isto seria utilizar um valor pré-definido como finalizador, a ser informado após a última média informada. ex.: finalizador com o valor -1 Ex3.: Cálculo da Média geral de 50 Alunos Algoritmo “MediaGeralRepFin” var mda, mdt, somamd: real cont: inteiro Inicio cont<- 0 somamd <- 0 leia(mda) enquanto (mda <> -1) faca somamd <- somamd + mda cont<- cont + 1 leia(mda) fimenquanto se (cont <> 0) entao mdt <- somamd/cont escreva(mdt) fimse fimalgoritmo Estrutura de Repetição Exercício de Fixação: 1) Construa um algoritmo que calcule a média aritmética de um conjunto de números pares informados pelo usuário. O valor de finalização será a entrada do número zero. Observe que nada impede que o usuário forneça quantos números ímpares quiser, com a ressalva de que eles não poderão ser acumulados. Estrutura de Repetição Repetição com teste no final • Estrutura que permite que um bloco de comandos seja repetido até que uma determinada <condição> seja verdadeira. • A inspeção da condição é feita após a execução do bloco. • O bloco de comando(s) é executado pelo menos uma vez, independente da condição. • A condição do repita corresponde a negação do enquanto. Representação: Repita c1; c2; : cn ate <condicao> Ex1.: Cálculo da Média para 50 alunos Algoritmo “MediaRepeticaoFinal” var nt1, nt2, md: real cont: inteiro Inicio cont<- 1 repita leia(nt1, nt2) md <- (nt1 + nt2)/2 escreval(md) cont<- cont + 1 ate (cont > 50) fimalgoritmo Estrutura de Repetição Ex2.: Calcule a soma dos números informados menores que vinte, até que seja informado um valor maior ou igual a 20. No final, informe a soma dos números lidos Algoritmo “SomaValores” var valor, soma: inteiro Inicio soma <- 0 repita leia(valor) se (valor < 20) entao soma<- soma + valor fimse ate (valor >= 20) escreva(soma) fimalgoritmo Estrutura de Repetição Exercício de Fixação: 1) Tem-se um conjunto de dados contendo a altura e sexo (masculino, feminino) de 50 pessoas. Fazer um algoritmo que calcule e escreva: a) A maior e menor altura do grupo; b) A média de altura das mulheres; c) O número de homens. Estrutura de Repetição Exercício de Fixação: 2) Uma pesquisa sobre algumas características físicas da população de uma determinada região coletou os seguintes dados, referentes a cada habitante, para serem analisados: • sexo (masculino, feminino) • cor dos olhos (azuis, verde, castanhos) • cor dos cabelos (louros, castanhos, pretos) • Idade em anos. Para cada habitante, foi digitada uma linha com esses dados e a última linha, que não corresponde a ninguém, conterá o valor de idade igual a -1. Fazer um algoritmo que determine e escreva: • a maior idade dos habitantes; • a porcentagem de indivíduos do sexo feminino cuja idade está entre 18 e 35 inclusive e que tenham olhos verdes e cabelos louros.
Compartilhar