ESTRUTURAS DE REPETIÇÃO Amanda Gondim de Oliveira
ESTRUTURAS DE REPETIÇÃO É comum a repetição de procedimentos para se realizar tarefas. Esse procedimentos não são repetidos eternamente, mas se encerram quando o objetivo é atingido.
EXEMPLOS DE REPETIÇÃO Uma pessoa apertando o parafuso, gira a chave de fenda até que o parafuso esteja apertado o suficiente. A cada volta, é verificado se já está bem firme. A chamada feita pelo professor continua enquanto ele não terminar a lista. O aluno de castigo precisa escrever 100 vezes: Não faço mais bagunça. Ou seja,executa a mesma instrução 100 vezes.
EXEMPLOS DE REPETIÇÃO Um algoritmo para ler os nomes e as notas das provas de três alunos da UFERSA e calcular suas médias finais. Uma possível solução seria repetir o trecho de código do algoritmo três vezes.
ESTRUTURAS DE REPETIÇÃO Todas as Repetições têm uma característica comum: O fato de haver uma verificação de condição para determinar se a repetição prossegue ou não. Em vez de fazermos um trabalho braçal, escrevendo a mesma instrução várias vezes, podemos utilizar uma estrutura que indique que tal instrução será executada quantas vezes for necessária.
ESTRUTURA DE REPETIÇÃO O Algoritmo possui três estruturas de repetição: enquanto... faca repita... Ate para... faca
COMANDO ENQUANTO Na estrutura enquanto... faca, a expressão lógica é avaliada e, se ela for verdadeira, a lista de comandos é executada. Isso se repete até que a condição seja falsa. Caracteriza-se por uma verificação de encerramento de atividades antes de se iniciar (ou reiniciar) a execução de seu bloco de instruções. enquanto (teste lógico) faça lista de comandos fimenquanto
EXEMPLO 1 ALUNO DE CASTIGO Algoritmo Castigo_1 Inicio escreva( Não faço mais bagunça ) escreva( Não faço mais bagunça ) escreva( Não faço mais bagunça ) escreva( Não faço mais bagunça )... fimalgoritmo
EXEMPLO 1 ALUNO DE CASTIGO Algoritmo Castigo_2 Inicio enquanto (não executar 100 vezes) faca escreva( Não faço mais bagunça ) fimenquanto fimalgoritmo Problema: Como implementar essa verificação?
ESTRUTURAS DE REPETIÇÃO Estratégia: Acompanhar a execução das repetições contando cada vez que o bloco é executado. Cada execução do bloco de instruções é chamada iteração. Para que tenhamos informação de quantas iterações já foram realizadas, necessitaremos de uma variável que fará o papel de contador. Essa variável conterá o número de iterações já realizadas, sendo atualizada a cada nova iteração.
EXEMPLO 1 ALUNO DE CASTIGO Algoritmo Castigo_3 var contador : inteiro Inicio contador <- 0 Nenhuma iteração foi feita enquanto ( contador< 100) faca escreval ( Não faço mais bagunça ) contador<- contador + 1 fimenquanto Fimalgoritmo O bloco será repetido 100 vezes Atualiza o contador de mais 1
CUIDADO LAÇOS INFINITOS Algoritmo Castigo_3 var contador : inteiro Inicio enquanto ( contador< 100) faca contador <- 0 escreval ( Não faço mais bagunça ) contador<- contador + 1 fimenquanto Fimalgoritmo O CONTADOR NOVAMENTE RECEBE 0 Atualiza o contador de mais 1
EXEMPLO 2 SOMA DE 3 NÚMEROS Algoritmo Soma var num,soma,contador: inteiro Inicio Contador <-0 enquanto (contador<3) faca escreval ( Digite 1 número: ) leia(num) soma<-soma + num contador <- contador + 1 Fimenquanto escreval( A soma é:, soma) fimalgoritmo
COMANDO REPITA Funciona de forma similar ao comando enquanto exceto pelo fato de que a condição de controle só é testada após a execução do bloco de instruções. Isso garante que os comandos serão executados pelo menos uma vez. Repita lista de comandos ate expressão lógica ou relacional
COMANDO REPITA Na estrutura enquanto, a expressão é avaliada no início e se o resultado for FALSO no primeiro teste, a lista de comandos não é executada nenhuma vez. Essa diferença faz com que em determinadas situações o uso de uma estrutura seja mais vantajoso que o uso da outra. enquanto (teste lógico) faça lista de comandos fimenquanto
EXEMPLO 1 ALUNO DE CASTIGO Algoritmo Soma var num,soma,contador: inteiro Inicio Contador <-0 repita escreval ( Digite 1 número ) leia(num) soma<-soma + num contador <- contador + 1 ate (contador = 3) escreva( A soma é:, soma) fimalgoritmo
COMANDO PARA O comando para... faca também permite a descrição, dentro de um algoritmo, de uma estrutura de repetição. Sua forma geral é: para variável de controle de valor inicial ate valor final passo incremento faca lista de comandos fimpara
COMANDO PARA... FACA Na estrutura para... faca, a variável de controle é inicializada com valor inicial e no início de cada iteração, seu valor é comparado com valor final. Se o valor da variável for menor ou igual a valor final, a lista de comandos é executada e após ser executado o último comando da lista, a variável de controle é incrementada.
COMANDO PARA... FACA Isto repete-se até que o valor da variável de controle seja maior que valor final, quando então é executado o comando imediatamente após a palavra fimpara. A instrução passo é necessária se o incremento for diferente de 1.
COMANDO PARA Algoritmo Soma_3_numeros var num,soma,contador: inteiro Inicio soma <- 0 para contador de 0 ate 2 passo 1 faca escreva ( Digite 1 número ) leia (num) soma <- soma + num Fimpara Escreva ( A soma é:, soma) fimalgoritmo
EXEMPLO Algoritmo numero_par var num: inteiro Inicio para contador de 0 ate 2 faca escreva ( Digite 1 número ) leia (num) se num mod 2 = 0 entao escreva( o numero é par ) senao escreva( o numero é impar ) Fimpara fimalgoritmo
EXERCÍCIOS Faça um algoritmo para Imprimir a tabuada do número 4. Faça um algoritmo que leia um numero inteiro e mostre o seu dobro na tela. O programa deve executar até o usuário digitar 0. Faça um algoritmo que leia um número inteiro e diga se este é positivo, negativo ou zero. O programa deve executar 3 vezes consecutivas.