









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Material sobre Lógica de Programação
Tipologia: Notas de aula
1 / 17
Esta página não é visível na pré-visualização
Não perca as partes importantes!










Material Didático do Instituto Metrópole Digital - IMD Versão 2.0 - Todos os Direitos reservados
Na aula anterior, introduzimos os conceitos de estruturas de repetição. Vimos que, algumas vezes, nos algoritmos, há a necessidade de executar comandos emloop, de acordo com uma condição específica. Conhecemos a sintaxe da estrutura de repetição com variável de controle (o comando PARA) e construimos alguns algoritmos com essa estrutura. Nesta aula, encerraremos o estudo das estruturas de repetição, contemplando o comando ENQUANTO, que é utilizado em repetições que testam a condição no início da estrutura, e o comando REPITA, em que a condição é testada no final da estrutura. Nesta aula, conheceremos a sintaxe e identificaremos quando utilizar esses comandos, a fim de construir algoritmos eficazes dentro das estruturas de repetição.
Vídeo 01 - Apresentação
Ao final da aula, você deverá ser capaz de:
Definir a sintaxe para o comando ENQUANTO em estruturas de repetição com teste condicional no início.
Definir a sintaxe para o comando REPITA em estruturas de repetição com teste condicional no final.
Construir algoritmos completos utilizando essas estruturas.
media <- (nota1+nota2)/
escreval("O aluno ",contador," teve média igual a: ",media)
contador <- contador + 1
fimenquanto
fimalgoritmo
Veja que o algoritmo anterior, utilizando o comando ENQUANTO, faz a mesma coisa que o algoritmo que vimos na aula anterior, com os comandos PARA...FACA.
No algoritmo da média, sabemos previamente a quantidade de repetições, que equivale ao número de alunos da turma. Por isso, esse algoritmo pode ser resolvido com qualquer uma das duas estruturas de repetição: o PARA ou o ENQUANTO.
É importante, porém, observar um detalhe. Já vimos que o comando PARA define o valor de incremento do contador antes do início da execução. Essa definição não é feita na sintaxe do comando ENQUANTO. Por isso, é de extrema importância que você lembre de incrementar o contador, antes de finalizar a estrutura.
Veja que antes do comando fimenquanto, temos a seguinte expressão:
contador <- contador + 1
Declaramos, no início do algoritmo, a variável contador, do tipo inteiro, mas não atribuimos a ela valor algum. Sabemos que, quando não atribuímos valor a uma variável do tipo inteiro, o valor default assumido é
Vimos também, anteriormente, que o valor de incremento não pode ser nulo e só pode ser negativo, se quisermos percorrer o laço na ordem inversa. Assumimos, no algoritmo demonstrado anteriormente, que o valor de incremento é positivo e igual a 1 (sabemos que quando não definimos o valor de incremento, assume-se esse valor, na estrutura PARA).
A cada repetição, o valor do contador deve ser incrementado em 1. É isso que o algoritmo faz quando chega à linha "contador <- contador + 1‟. Veja, no Quadro 1, como ocorre esse incremento.
Execuções Valor do contador Expressão de incremento
Início 0 Contador <- contador + 1
Primeira execução contador = 0 contador = 0 + 1
Segunda execução execução contador = 1 contador = 1 + 1
Terceira execução execução contador = 2 contador = 2 + 1
Quinquagésima execução
execução contador = 49 contador = 49 + 1
Fim da execução execução contador = 50 Contador atingiu valorlimite
Quadro 1 - Incremento do contador ao longo das repetições
enquanto <condição>
faca
<instruções>
fimenquanto
estrutura encerra e aparece a mensagem de que o número digitado é negativo.
O comando ENQUANTO testa uma condição e, enquanto essa condição for verdadeira, as instruções da estrutura de repetição são executadas. No momento em que a condição deixar de ser verdadeira, a estrutura encerrará.
Como não podemos prever qual será o momento em que o usuário irá digitar um número negativo, não há como saber previamente a quantidade de repetições.
O comando ENQUANTO é utilizado em estruturas de repetição nas quais não sabemos previamente a quantidade de repetições do comando ou grupo de comandos da estrutura.
Veja a sintaxe dessa estrutura:
Atenção: Se houver alguma situação em que seja possível a condição ser sempre verdadeira, as instruções da estrutura executarão para sempre. É o que chamamos de loop infinito. É importante que você tenha o cuidado de evitar situações como essa.
Quer ver um exemplo de algoritmo que resulta em loop infinito? Retorne ao algoritmo da média no início desta aula e tente executá-lo no VisuAlg removendo a linha em que o contador é incrementado (contador <- contador + 1). Veja o que acontece.
Como o contador não está sendo incrementado, terá sempre o valor inicial (zero). Dessa forma, a condição (contador < 50) será sempre verdadeira, causando, portanto, a situação deloop infinito.
Vídeo 02 - Estrutura de Repetição Enquanto...Faça
media <- (nota1 + nota2)/
escreval ("O aluno ",contador," teve média igual a: ",media)
contador <- contador + 1
ate contador > 50
Fimalgoritmo
Na estrutura REPITA...ATE, a repetição continua ATE que a condição (contador > 50) se torne verdadeira.
Veja que o problema da média pôde ser resolvido com qualquer uma das estruturas de repetição, alterando-se somente a sintaxe.
Apesar disso, nem sempre um problema, em algoritmos, poderá ser solucionado com qualquer uma das estruturas. Sempre haverá uma das estruturas que se enquadre melhor na solução de determinado problema.
Ao contrário do ENQUANTO, o teste da condição verifica, na estrutura REPITA...ATE, se a condição é falsa. O loop termina quando a condição é verdadeira. Além disso, a estrutura REPITA...ATE sempre executa, pelo menos uma vez, os comandos, pois o teste da condição é realizado no final.
Essa estrutura pode ser utilizada, também, em menus. Veja o exemplo a seguir:
algoritmo "menu sorvetes"
var
op:caracter
inicio
repita
escreval ("Escolha um sabor de sorvete:")
escreval ("1- Morango")
escreval ("2- Abacaxi")
escreval ("3- Chocolate")
escreval ("4- Caramelo")
escreval ("5- Salada de Frutas")
leia (op)
ate (op = "1") ou (op = "2") ou (op = "3") ou (op = "4") ou (op = "5")
Estrutura REPITA...ATE
escolha op
caso "1"
escreval ("Você escolheu Morango.")
caso "2"
escreval ("Você escolheu Abacaxi.")
caso "3"
repita
<instruções>
ate <condição>
O comando REPITA executa as instruções até que a condição seja verdadeira. Ou seja, se a condição for falsa, o ciclo continua. Quando a condição é verdadeira, a estrutura encerra.
Bom, concluímos por aqui o estudo das estruturas de repetição, mas ainda temos mais duas aulas. Na próxima aula, você vai conhecer as estruturas de dados homogêneas e aprenderá a construir algoritmos com vetores e matrizes. Faça a autoavaliação com atenção e veja se precisa parar e refletir mais um pouco sobre o que estudamos até aqui, pois daqui pra frente vamos abordar assuntos diferentes e estamos nos aproximando do final da nossa disciplina. Bons estudos!
Nesta aula, vimos os conceitos referentes às estruturas de repetição com teste da condição no início (que utilizam o comando ENQUANTO) e com teste da condição no final (que utilizam o comando REPITA). Vimos quando esses comandos são utilizados e conhecemos a sintaxe e semântica de cada uma dessas estruturas. Estudamos, também, a respeito do cuidado que devemos ter com loops infinitos, pois, caso a condição seja sempre verdadeira (ou falsa no caso do REPITA), há o risco do programa permanecer executando para sempre.
a. Não há diferenças. b. Uma testa a condição no início e a outra testa a condição no final. c. Em uma delas, o incremento é definido antes do início da execução. Na outra, essa definição é realizada ao final da execução.
ASCENCIO, Ana F. Gomes; CAMPOS, Edilene A. V. de. Fundamentos de programação de computadores: algoritmos, Pascal e C/C++. São Paulo: Prentice Hall, 2002. 355p.
SOUZA, Cláudio M de. VISUALG: editor e interpretador de algoritmos. Disponível em: http://apoioinformatica.inf.br/produtos/visualg/item/31-objetivos. Acesso em: 22 mai. 2015.