Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Repetição Aula 10 Prof: Marcela Ramirez Arenas - marcelaramirez@uit.br * * Toda vez que precisamos repetir determinado número de vezes uma determinada seqüência de comandos, usamos um laço de repetição, que corresponderia repetir o mesmo trecho um número X de vezes sem ter de escrever o mesmo trecho X vezes. * * Imagine fazer um fluxograma para calcular a média das notas de 50 alunos sem repetiçao! Inicio Escrever (‘Entre com as três notas do primeiro aluno’) Ler (A1N1,A1N2,A1N3) A1M1 = (A1N1+A1N2 + A1N3)/3 Escrever (‘ A média do primeiro aluno é’, A1M1) 1 1 Escrever (‘Entre com as três notas do segundo aluno’) Ler (A2N1,A2N2,A2N3) A2M2 = (A2N1+A2N2 + A2N3)/3 Escrever (‘ A média do segundo aluno é’, A2M2) 2 O Trecho do programa teria que ser repetido 50 vezes!! * * Agora o mesmo fluxo utilizando repetição * * Veja que essa estrutura trabalha com a repetição de comandos até que condições se satisfaçam No Exemplo anterior a condição é ter atingido os 50 alunos e o teste está no final do programa, após a execução do trecho de programa. Ou seja os comandos serão executados até que a condição seja verdadeira. * * Porém podemos colocar o teste no início do fluxograma e fazer com que os comandos sejam executados enquanto a condição for verdadeira. Utilizando-se assim a lógica inversa a primeira. * * Agora o mesmo fluxo com o teste no início Inicio Escrever (‘Entre com as três notas do aluno’) Ler (N1,N2,N3) M = (N1+N2 + N3)/3 Escrever ( ‘Aluno’, C, ‘ A média é’, M) C = 0 C ~= 50? C = C + 1 FIM sim não Veja que agora o teste é realizado no inicio, os comandos são executados enquanto a condição é verdadeira. * * TESTE NO FIM TESTE NO INICIO * * Estrutura de repetição com teste no inicio (enquanto...faz) Estrutura de repetição com teste no final ( repete...até) * * Esta estrutura de repetição executa um comando, ou bloco de comandos, enquanto uma determinada condição for verdadeira. Sintaxe: enquanto [condição] faz [comandos] fimenquanto O funcionamento é o seguinte: A condição é avaliada. Se o resultado da condição for falso, a repetição termina e o programa continua no comando imediatamente a seguir ao enquanto. Se o resultado da condição for verdadeiro, são executados os comandos associadas ao enquanto. Volta-se ao ponto inicial. * * TESTE NO INICIO Inicio variavel inteiro c, n1,n2,n3 variavel real m enquanto c =/= 50 faz Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3 c <- c + 1 m <- (n1+n2+n3)/3 Escrever "Aluno \t", c , " a média é \t ", m Fimenquanto fim * * Repete os comandos até que a condição seja verdadeira. Sintaxe: repete [comandos] ate [condição] O funcionamento desta instrução é o seguinte: Na instrução Repete, os [comandos] são sempre executadas pelo menos uma vez. Só depois destes serem executados é que é validada a [condição]. * * TESTE NO FIM Inicio variavel inteiro c, n1,n2,n3 variavel real m repete Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3 c <- c + 1 m <- (n1+n2+n3)/3 Escrever "Aluno \t", c , " a média é \t ", m ate c = 50 fim * * Permite a repetição dos comandos contidos nesta estrutura seja repetida um número específico de vezes. Os Exemplos que vimos até agora são de repetições automáticas. Pode ser feita com teste no início ou no fim. * * Exemplo: Imprima na tela os números de 1 a 100. Inicializar - valor inicial Incremento Testo - valor final INICIO VARIAVEL INTEIRO X <- 1 REPETE ESCREVER X X <- X + 1 ATE X = 100 FIM * * Um acumulador é uma variável que ocorre em ambos os lados de uma atribuição. Ex: X = X + 1 a variável X é um acumulador. Todo acumulador deve ser iniciado com um valor específico, antes de ser usado pela primeira. Como ocorreu no exemplo anterior. * * A estrutura de repetição contada, serve para executar um comando um determinado número de vezes. Para saber quando o total de repetições desejadas já foi atingido, a estrutura de repetição contada usa um contador: primeiramente, o contador é iniciado com um valor específico; depois, o contador é testado para ver se o total de repetições não foi atingido; se o total de repetições não foi atingido, a repetição continua; senão, pára; a cada nova repetição, o contador é alterado. * * Progressiva Elabore um algoritmo que dado um número inteiro exiba sua tabuada. Regressiva Elabore um algoritmo que dado um número n exiba a contagem regressiva de n até 0 * * inicio inteiro x <- 1, n, R escrever "Digite um número para calcular a tabuada \n" ler n Enquanto x <=10 faz R <- n * x escrever R x <- x + 1 Fimenquanto fim LER (N) X <=10 ? ESCREVER (R) X = X +1 sim não X = 1 INICIO ESCREVER (‘Entre com o número que deseja imprimir a tabuada’) FIM * * Inicio Varivel inteiro n Escrever “Entre com um numero” Ler n Enquanto n >= 0 faz escrever n n <- n – 1 Fimenquanto fim LER (N) N > =0 ? ESCREVER (N) N = N - 1 sim não INICIO ESCREVER(‘Entre com um número’) FIM * * Faça um algoritmo em fluxograma e Portugol que mostre todos os números pares até 500 (inclusive o 500). Utilizando teste no início e teste no fim. * * Existem quatro tipos básicos de estruturas de repetição: A estrutura Enquanto possibilita repetir a execução de uma ou vários comandos, enquanto uma determinada condição/expressão, do tipo lógico, tiver valor verdadeiro. A estrutura Repete permite repetir uma ou mais instruções, até que uma determinada condição/expressão, do tipo lógico, tenha um valor verdadeiro. A estrutura Para é utilizada para efectuar ciclos incondicionais. A estrutura Faz repete as instruções até que a condição seja falsa. Estruturas de Repetição Enquanto Repete Para Faz * * Esta instrução é utilizada em situações na qual o número de repetições é conhecido desde o início. Esta instrução percorre os valores desde o valor inicial até ao valor final com passo no valor de separação. Sintaxe: para [variável] de [valor inicial] ate [valor final] passo [valor de separação] [instruções] proximo Ou : para [variável] de [valor inicial] ate [valor final] [instruções] proximo * * O funcionamento desta instrução é o seguinte: Quando é encontrada uma estrutura para a variável utilizada como contador é inicializada com o primeiro valor da sequência (valor inicial). Em seguida, são executados os comandos dentro da estrutura de repetição e o contador é incrementado/decrementado com o próximo valor da sequência (passo). A execução da repetição pára com o último valor da sequência (ate). Caso o passo não seja definido, o passo é de mais ou menos uma unidade de forma a poder percorrer o intervalo entre o valor inicial e o final de forma crescente ou decrescente. * * Exemplo 1: Todos os números pares ate 500 inicio inteiro i para i de 0 ate 500 passo 2 escrever i , "\t" proximo fim * * Exemplo 2: Escrever o algoritmo que escreve no monitor os múltiplos de 4 até 100. inicio inteiro i para i de 4 ate 100 passo 4 escrever i , "\t" proximo fim * * Exemplo 3: Escrever os números entre 10 e 30. inicio inteiro i <-0 para i de 10 ate 30 escrever "\t" ,i proximo fim * * Exemplo 4: Tabuada inicio inteiro i inteiro num escrever "Digite um número para calcular a tabuada \n" ler num escrever "\n Tabuada do ", num, "\n" para i de 1 até 10 escrever i, "*", num, " = ", i*num, "\n" proximo fim * * Repete as instruções até que a condição seja falsa. Nesta repetição, a instrução é executada pelo menos uma vez. Esta instrução é muito semelhante à instrução Repete. Sintaxe: faz [instruções] enquanto [condição] O seu funcionamento pode ser descrito da seguinte forma: A instrução ou bloco de comandos é executaoa. A condição é avaliada; Se o resultado da condição for verdade, volta-se ao ponto 1. Se o resultado da condição for falso, termina a repetiçãoe o programa continua na instrução seguinte a estrutura de repetição. * * Exemplo 1: Inicio variavel inteiro c, n1,n2,n3 variavel real m faz Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3 c <- c + 1 m <- (n1+n2+n3)/3 Escrever "Aluno \t", c , " a média é \t ", m Enquanto c =/= 50 fim Com Enquanto Inicio variavel inteiro c, n1,n2,n3 variavel real m enquanto c =/= 50 faz Escrever "Entre com as tres notas do aluno " Ler n1,n2,n3 c <- c + 1 m <- (n1+n2+n3)/3 Escrever "Aluno \t", c , " a média é \t ", m Fimenquanto fim * * Exemplo 2: Pedir um número ao usuário até que o número introduzido pertença ao intervalo entre 10 e 20. inicio inteiro num faz escrever "introduza um numero:" ler num enquanto num < 10 ou num > 20 escrever "\n O numero introduzido foi :" , num fim * * Posso elaborar repetições que eu não saiba antecipadamente o número de vezes, elas repetem de acordo com uma determinada condição. Neste tipo de repetição o teste no início é mais indicado. * * Enquanto (condição verdadeira) a estrutura ira executar os comandos contidos nela, e este se repetirá até que a condição for falsa, somente assim poderemos sair da estrutura de repetição. Os comandos contidos neste tipo de estrutura podem não ser executados nenhuma vez, já que o mesmo testa a condição no início da estrutura. * * Faça um algoritmo que leia varios numeros inteiros e calcule o somatorio dos numeros negativos. O fim da leitura sera indicado pelo numero 0. inicio variavel inteiro num <- 1, soma enquanto num =/= 0 faz Escrever "Digite um numero e digite 0 para finalizar \n" ler num se num < 0 entao soma <- soma + num fimse fimenquanto Escrever "A Soma dos números negativos digitados é ", soma fim * * Elaborar um algoritmo em Portugol que fique sorteando números para um bingo (números de 0 a 100), ao apertar qualquer tecla ele sorteia outro número quanto digitado bingo, para o sorteio (Informe isso ao usuário). inicio real num1 texto palavra Escrever "Digite qualquer tecla para sortear um número ou a palavra bingo para parar \n" ler palavra enquanto palavra =/= "bingo" faz escrever "Numero Sorteado : \t" num1 <- aleatorio ( ) * 100 escrever arred ( num1 ) , "\n" Escrever "Digite qualquer tecla para sortear um número ou a palavra bingo para parar" ler palavra fimenquanto fim * * Operadores lógicos diferentes. Teste no início enquanto a condição for verdadeira repete, quando falsa fim. Teste no fim enquanto a condição for falsa repete, quando verdadeira fim. * * Operadores lógicos diferentes. Teste no início enquanto a condição for verdadeira repete, quando falsa fim. Teste no fim enquanto a condição for falsa repete, quando verdadeira fim. * * * *
Compartilhar