Buscar

Aula 10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estrutura de Repetição Repita...Até 
(pseudocódigo)
Apresentação
A estrutura de repetição repita...até é utilizada em algoritmos (programas) que necessitem que 
determinado trecho de código seja executado no mínimo uma vez. Essa estrutura define que um 
bloco de comandos será executado e que, ao final dele, será realizado um teste (condição). Se o 
resultado do teste for verdadeiro, a repetição termina; caso contrário, o bloco é repetido. Nesta 
Unidade de Aprendizagem, estudaremos a construção de pseudocódigos com repetições 
construídas com a estrutura repita...até. 
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Identificar problemas que precisem de repetição (laços) para construção da solução 
algorítmica.
•
Construir pseudocódigos que utilizem a estrutura de repetição repita...até.•
Resolver problemas através de sua especificação com algoritmos.•
Desafio
Muitos procedimentos que realizamos precisam ser repetidos para cada elemento de um conjunto 
de objetos/dados/informações. Por exemplo, na Serra Gaúcha, na época da colheita da uva (que 
ocorre normalmente entre os meses de janeiro e março), os produtores de uva colhem a fruta, 
armazenam em caixas e entregam nas vinícolas para a produção de vinhos. Na vinícola, a cada 
caminhão carregado que chega, é realizado o seguinte processo: a uva é pesada e calcula-se o valor 
a ser pago ao produtor multiplicando-se o total em quilogramas que foi entregue pelo valor do 
quilo da uva do dia. Assim, uma vinícola precisa de um programa que, ao ser executado, solicite o 
valor do quilo da uva do dia, leia a quantidade de quilos que o produtor entregou e informe o valor 
a ser pago ao produtor. Ao final do dia, a vinícola irá digitar o valor 0 (zero) para o peso, finalizando 
as atividades, e o programa deverá informar quantos produtores foram atendidos.
O pseudocódigo a seguir apresenta uma possível solução para esse problema utilizando o comando 
repita...até para implementação do laço de repetição.
algoritmo "uvas"
var
 quilo, peso, valor, conta :numerico
inicio
escreval("Digite o valor de um quilo de uva")
leia(quilo)
conta <- 0
repita
 escreval("Digite o peso das uvas:")
 leia(peso)
 valor <-quilo*peso
 escreval("Pagar ao produtor: ",valor)
 conta <- conta + 1
ate peso = 0
escreval("Produtores atendidos: ", conta-1)
fimalgoritmo
Agora é sua vez!
A auxiliar financeira de uma loja precisa calcular os descontos concedidos nas compras dos clientes. 
Para compras com valores superiores a R$ 500,00, a gerência autoriza o desconto de 5% no valor 
da compra; para valores superiores a R$ 1.000,00, a gerência autoriza o desconto de 10%.
Ao final do dia, a auxiliar financeira precisa informar quantos clientes receberam descontos e qual o 
valor total em descontos que foram concedidos. Para auxiliar seu trabalho, ela deseja que seja 
construído um programa que realize esse processo.
Você deve construir um algoritmo em pseudocódigo que leia o valor de cada compra, um por vez (o 
programa termina quando for digitado o valor 0 [zero] para a compra). Quando for maior que R$ 
1.000,00, que conceda o desconto de 10%; se for maior que R$ 500,00 (e menor que R$ 1.000,00), 
conceda o desconto de 5% e mostre o valor do desconto. O programa também deve contar para 
quantos clientes foram concedidos os descontos, além de realizar o somatório dos descontos 
concedidos, mostrando ao final essas duas informações. Para a implementação do laço de 
repetição, você deve utilizar a estrutura repita...até.
Infográfico
Trechos de códigos em algoritmos são constituídos por comandos de entrada e saída de dados, 
comandos de decisão e de repetição. O foco desta Unidade é a construção de pseudocódigos que 
utilizem o comando repita...até.
 
Conteúdo do Livro
A estrutura de repetição repita...até permite a construção de laços.
Conheça um pouco mais sobre a estrutura lendo o conteúdo das páginas 141 e 142 do seguinte 
livro: EDELWEISS, N.; LIVI, M.A.C. Algoritmos e programação com exemplos em Pascal e C - Vol. 
23.
Série Livros Didáticos Informática UFRGS. Porto Alegre: Bookman, 2014.
Boa leitura.
23
s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s
algoritmos
e programação 
com exemplos em Pascal e C
nina edelweiss
maria aparecida castro livi
E22a Edelweiss, Nina.
 Algoritmos e programação com exemplos em Pascal e C 
 [recurso eletrônico] / Nina Edelweiss, Maria Aparecida Castro 
 Livi. – Dados eletrônicos. – Porto Alegre : Bookman, 2014.
 Editado também como livro impresso em 2014.
 ISBN 978-85-8260-190-7
 1. Informática. 2. Algoritmos – Programação. I. Livi, 
 Maria Aparecida Castro. II. Título. 
CDU 004.421
 as autoras
Nina Edelweiss é engenheira eletricista e doutora em Ciência da Computação pela Uni-
versidade Federal do Rio Grande do Sul. Durante muitos anos, lecionou em cursos de Enge-
nharia e de Ciência da Computação na UFRGS, na UFSC e na PUCRS. Foi, ainda, orientadora 
do Programa de Pós-Graduação em Ciência da Computação da UFRGS. É coautora de três 
livros, tendo publicado diversos artigos em periódicos e em anais de congressos nacionais 
e internacionais. Participou de diversos projetos de pesquisa financiados por agências de 
fomento como CNPq e FAPERGS, desenvolvendo pesquisas nas áreas de bancos de dados e 
desenvolvimento de software.
Maria Aparecida Castro Livi é licenciada e bacharel em Letras, e mestre em Ciência da 
Computação pela Universidade Federal do Rio Grande do Sul. Desenvolveu sua carreira pro-
fissional na UFRGS, onde foi programadora e analista de sistema, antes de ingressar na 
carreira docente. Ministrou por vários anos a disciplina de Algoritmos e Programação para 
alunos dos cursos de Engenharia da Computação e Ciência da Computação. Sua área de 
interesse prioritário é o ensino de Linguagens de Programação, tanto de forma presencial 
quanto a distância.
Catalogação na publicação: Ana Paula M. Magnus – CRB 10/2052
Edelweiss_Iniciais_eletronica.indd ii 14/05/14 16:51
Capítulo 5 Estruturas de Repetição 139
ler(mais_um)
enquanto mais_um ≠ 'N' faça
 início
 ler(lim_sup)
 para i de 1 incr 1 até lim_sup faça
 escrever(i)
 ler(mais_um)
 fim
5.4 comando de repetição condicional repita/até por 
avaliação posterior de condição
O comando de repetição condicional por avaliação posterior repita/até também vin-
cula a execução de um conjunto de comandos ao resultado da avaliação de uma expressão 
lógica. O comando inicia pela execução do laço e, quando essa execução é concluída, a ex-
pressão é avaliada: se o valor lógico obtido for falso, o laço é executado novamente; se for 
verdadeiro, o comando é encerrado. Isso significa que o laço é sempre executado pelo menos 
uma vez, independentemente do valor lógico inicial resultante da avaliação da expressão de 
controle. Observar que, normalmente, o valor inicial da expressão lógica será falso, pois se 
deseja repetir o laço mais de uma vez. Portanto, é necessário que, em algum momento, o 
conteúdo de alguma variável utilizada nesta expressão lógica tenha o valor alterado dentro do 
laço, de forma a modificar o valor resultante de sua avaliação para verdadeiro, evitando assim 
a ocorrência de um laço – loop – infinito.
A sintaxe de um comando de repetição condicional repita/até é a seguinte:
repita
 <comandos>
até <expressão lógica>
Observar que, diferentemente dos comandos anteriores, aqui não é necessário um comando 
composto, pois a sintaxe aceita múltiplos comandos, delimitados pela cláusula até.
O fluxograma representado na Figura 5.5 mostra o funcionamento desse comando, em que 
o laço de repetição é sempre executado pelo menos uma vez.
O aninhamento de comandos de repetição também se aplica ao comando repita/até, in-
cluindo os outros comandos de repetição já vistos.
O Algoritmo 5.7, a seguir, adapta o Algoritmo 5.6, utilizando no laço de repetição um co-
mando repita/até em lugar do enquanto/faça. Observar que, comoo laço desse coman-
do é sempre executado pelo menos uma vez, se tornou necessária a inclusão de um comando 
condicional logo no início para condicionar a execução do laço ao valor inicial de nota1.
Edelweiss_05.indd 139 12/03/14 09:02
140 Algoritmos e Programação com Exemplos em Pascal e C
Algoritmo 5.7 – MédiaAlunoETurma_3
{INFORMA MÉDIA DOS ALUNOS DE UMA TURMA E A MÉDIA GERAL DESSA TURMA. 
PARA INDICAR FIM DE PROCESSAMENTO, O CONTEÚDO INFORMADO EM NOTA1 SERÁ 
NEGATIVO}
 Entradas: nota1, nota2, nota3 (real)
 Saídas: média (real)
 soma_médias (real)
 média_turma (real)
 Variável auxiliar:
 cont_al (inteiro) {CONTADOR DE ALUNOS PROCESSADOS}
início
 soma_médias ← 0 {SOMA MÉDIAS INDIVIDUAIS: VALOR INICIAL ZERO}
 cont_al ← 0 {CONTADOR DE ALUNOS: VALOR INICIAL ZERO}
 ler(nota1) {LEITURA DA PRIMEIRA NOTA}
 se nota1 ≥ 0
 então início
 repita
 ler(nota2, nota3) {LEITURA DAS OUTRAS 2 NOTAS}
 cont_al ← cont_al + 1 {CONTA ALUNO LIDO}
 média (nota1 + nota2 + nota3) / 3 {CALCULA MÉDIA}
 escrever (cont_al, média) {INFORMA MÉDIA}
 soma_médias ← soma_médias + média {SOMA DAS MÉDIAS}
 ler(nota1) {LEITURA DA PRIMEIRA NOTA DO PRÓXIMO ALUNO}
<comando>
<expressão lógica> 
verdadeiro
falso
<comando>
…
figura 5.5 Fluxograma do comando de repetição repita/até.
Edelweiss_05.indd 140 12/03/14 09:02
Capítulo 5 Estruturas de Repetição 141
 até nota1 < 0 {FINAL DO COMANDO REPITA}
 fim {DO COMANDO SE/ENTÃO}
 média_turma ← soma_médias / cont_al {MÉDIA DA TURMA}
 escrever(média_turma)
fim
5.5 garantia da consistência de dados através de 
comandos de repetição
Sempre que possível, os valores lidos devem ser verificados quanto à validade antes de seu 
armazenamento em variáveis. Por exemplo, se o intervalo de valores de notas de provas é de 0 
a 10, então qualquer valor de nota informado que não estiver dentro desse intervalo está in-
correto e deve ser descartado e substituído por um novo valor válido. A consistência de dados 
de entrada pode ser implementada através do uso de comandos de repetição condicional. 
No caso dos algoritmos de processamento de notas incluídos neste capítulo, toda a leitura de 
nota deveria incluir a consistência do valor informado. Nos exemplos a seguir, a consistência 
das leituras é garantida através do uso de enquanto/faça e de repita/até, de acordo com 
o funcionamento de cada comando.
{CONSISTÊNCIA COM COMANDO ENQUANTO/FAÇA}
ler (nota1)
enquanto (nota1 < 0 ou nota1 > 10) e nota1 ≠ -1 faça
 início {SÓ EXECUTA SE NOTA INVÁLIDA}
 escrever('Nota inválida! Informe novamente. ')
 ler(nota1)
 fim {ENQUANTO}
{CONSISTÊNCIA DE DADOS COM COMANDO REPITA/ATÉ}
repita {CONSISTÊNCIA DE NOTA2}
 ler(nota2) {SEMPRE EXECUTA 1 VEZ, REPETE SE INVÁLIDA}
 se nota2 < 0 ou nota2 > 10
 então escrever('Nota inválida! Informe novamente.')
até (nota2 ≥ 0 e nota2 ≤ 10)
Apesar das diferenças no modo de funcionamento, os comandos enquanto/faça e 
repita/até podem ser utilizados indistintamente nas situações em que o uso de comandos 
desse tipo for adequado. Entretanto, o comando repita/até, por apresentar a característica 
de sempre executar o conteúdo do laço pelo menos uma vez, é o mais indicado para a consis-
tência de dados de entrada. A leitura dos dados deverá ocorrer obrigatoriamente pelo menos 
uma vez, e a avaliação do resultado da leitura determinará o encerramento (dado lido válido) 
ou a repetição do comando (dado lido inválido).
O trecho a seguir apresenta a utilização do comando repita/até para a consistência da lei-
tura de uma letra minúscula, garantindo que o caractere digitado esteja dentro do intervalo 
“a” a “z”, mas sem emitir mensagem de erro de digitação.
Edelweiss_05.indd 141 12/03/14 09:02
142 Algoritmos e Programação com Exemplos em Pascal e C
repita
 escrever('Informe uma letra minúscula:')
 ler(letra)
até (letra ≥ 'a' e letra ≤ 'z') {SE VALOR VÁLIDO, NÃO REPETE}
5.6 selecionando o comando de repetição mais 
adequado
As normas de bom estilo de programação recomendam que os comandos de repetição te-
nham seu início e fim e suas condições de repetição claramente explicitados.
Havendo mais de um comando de repetição possível para atender uma particular situação, 
a escolha deve recair sobre o comando com as características mais adequadas ao caso em 
análise.
Se a repetição implementada for por contagem ou pela variação de conteúdo de uma variá-
vel, através de incrementos constantes e definidos em um intervalo previamente conhecido, 
então o comando de repetição indicado é o para/faça. Nesse caso, a variável de controle, 
a condição de repetição e o incremento aplicado após cada execução do laço devem estar 
claramente definidos no cabeçalho do comando para/faça e devem ser evitadas alterações 
desses elementos no corpo do laço.
Os comandos de repetição condicional são indicados para a solução de problemas em que o 
encerramento das repetições está relacionado à detecção de uma condição cuja ocorrência 
não pode ser predeterminada.
Se existe a possibilidade do bloco de repetições não precisar ser executado nem uma vez, 
então o uso do comando enquanto/faça é indicado. Um exemplo dessa opção é o processa-
mento de pedidos de uma empresa durante o período comercial: nesse caso, é recomendável 
que o usuário seja informado da eventual inexistência de processamento, caso nenhum pedi-
do ocorra no período em questão.
Se o bloco de repetições for sempre executado pelo menos uma vez, então a opção deve 
recair no comando repita/até. Um exemplo do uso adequado do repita/até é o proces-
samento que inclui menus de opções, uma delas sendo o encerramento da execução: nesse 
caso, sempre ocorrerá a leitura e processamento de pelo menos uma das opções do menu.
5.7 exercícios de fixação
exercício 5.1 A série de Fibonacci é uma sequência de números na qual o primeiro termo é 
0, o segundo é 1 e os demais termos são sempre a soma dos dois anteriores:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 ...
Edelweiss_05.indd 142 12/03/14 09:02
Encerra aqui o trecho do livro disponibilizado para 
esta Unidade de Aprendizagem. Na Biblioteca Virtual 
da Instituição, você encontra a obra na íntegra.
 
Dica do Professor
A estrutura de repetição repita...até é um importante recurso quando a repetição não é controlada 
por um contador, e sim pelo valor de alguma informação que foi lida ou calculada.
Vamos aprender a construir pseudocódigos com essa estrutura? Confira o vídeo!
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
 
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/8b7a1198d5694d7f17aed540c89b5a1a
Exercícios
Uma indústria de tecidos, após o processo de produção, fabrica retalhos que, em cada lote, devem 
ter o mesmo comprimento. Após realizarem os cortes necessários, verificou-se que duas peças 
restantes tinham as seguintes medidas: 156 cm e 234 cm. Assim, o coordenador de produção, 
depois de ser informado das medidas, solicitou que o funcionário cortasse as peças restantes em 
partes iguais e com o maior comprimento possível. Como ele poderá resolver essa situação? ,Esse é 
um problema que pode ser resolvido calculando-se o MDC (máximo divisor comum) entre 156 e 
234, que resulta em 78. Assim, as peças serão cortadas em retalhos de 78 cm cada uma. 
Considerando dois números naturais (inteiros positivos), sempre poderemos definir, no mínimo, um 
divisor comum. Por exemplo: os divisores comuns de 12 e 18 são 1, 2, 3 e 6. O maior, nesse caso, é 
6, então chamamos o 6 de máximo divisor comum de 12 e 18 e indicamos MDC (12,18) = 6.
Existem alguns métodos para calcular o MDC de dois números, como fatores primos, divisões 
sucessivas, entre outros. Os dois algoritmos a seguir foram construídos com base no método das 
divisões sucessivas. Analise as duas implementações. 
1) 
 
B) Implementação com aestrutura de repetição enquanto...faça 
 
Nesse contexto, selecione a alternativa abaixo que seja FALSA.
A) Ambos os algoritmos funcionarão corretamente quando A for maior que B e também quando 
B for maior que A.
B) Considerando os mesmos valores de entrada para as variáveis A e B, os dois algoritmos 
sempre realizarão exatamente a mesma quantidade de iterações de seus respectivos laços de 
repetição.
C) As variáveis A e B foram atribuídas para as variáveis dividendo e divisor, respectivamente, 
para que seus valores fossem preservados e pudessem ser exibidos no final.
D) A condição do laço repita...até é oposta à condição do laço enquanto...faça.
E) A forma de cálculo do MDC é realizar divisões sucessivas, que terminam, em ambas 
implementações, quando o resto da divisão é zero.
2) Números perfeitos são aqueles que são iguais à soma de seus divisores. Por exemplo, o 
número 6 tem como divisores 1, 2 e 3. Somando-se 1 + 2 + 3 = 6, portanto, o número 6 é um 
número perfeito. Alguns números perfeitos conhecidos são: 6, 28, 496 e 8128. 
Analise as alternativas a seguir e assinale a que apresenta um algoritmo correto que leia um 
número e informe se ele é perfeito ou não. 
A) 
 
B) 
 
C) 
 
D) 
 
E) 
 
3) 
Um cientista está estudando determinado material radioativo que possui a característica de perder 
metade de sua massa a cada 50 segundos. Para auxiliar na pesquisa, ele precisa de um programa 
que receba a massa inicial em gramas e informe o tempo necessário para que essa massa se torne 
menor que 0,5 grama. Ao final, o programa deve escrever a massa inicial, a final e o tempo, sendo 
que esse deve ser expresso em horas, minutos e segundos. ,Um programador desenvolveu a 
seguinte solução em pseudocódigo para o problema. 
 
Analise essa solução e selecione abaixo a alternativa correta.
A) O algoritmo está apresentando o tempo em horas, minutos e segundos.
B) Se for digitado um valor inicial de massa menor que 0,5, o algoritmo não irá funcionar.
C) A condição do laço de repetição repita...até está errada.
D) O laço de repetição enquanto...faça poderia substituir o laço repita...até utilizado no 
algoritmo, invertendo o teste da condição.
E) O laço de repetição repita...até poderia ser facilmente substituído pelo para...faça, pois a 
quantidade de repetições que serão realizadas é conhecida.
4) Considerando-se a sintaxe e o funcionamento da estrutura de repetição repita...até, analise 
as alternativas a seguir e selecione aquela que NÃO está relacionada com essa estrutura. 
A) O conjunto de comandos da repetição sempre será executado, no mínimo, uma vez.
B) O conjunto de comandos da repetição será executado enquanto a condição for falsa.
C) O laço de repetição repita...até pode ser substituído pelo laço enquanto...faça utilizando a 
mesma condição.
D) É uma estrutura útil para ser utilizada quando não se conhece a quantidade de repetições que 
serão realizadas.
E) A condição de controle da repetição pode utilizar qualquer expressão com operadores 
relacionais e lógicos, desde que o resultado seja verdadeiro ou falso.
5) Considere o seguinte algoritmo em pseudocódigo: 
 
algoritmo \"oquefaz\" 
var 
 X,Y,Z: inteiro 
inicio 
 escreval(\"O que faz?\") 
 repita 
 escreva(\"digite um número inteiro entre 0 e 1000\") 
 leia(X) 
 ate((X>0)e(X<=1000)) 
 y<-1000 
 repita 
 Z <- X div Y 
 X <- X mod Y 
 Y <- y div 10 
 escreva(Z) 
 ate(Y=0) 
fimalgoritmo 
 
Todo algoritmo tem um objetivo, um problema ou uma necessidade para implementar a 
solução. Assim, selecione a alternativa a seguir que expresse corretamente o que esse 
algoritmo faz. 
A) Converte um numeral expresso na base binária para a base decimal.
B) Lê um número e escreve seus dígitos separadamente, sempre utilizando quatro dígitos para 
expressar o resultado.
C) Converte um numeral expresso na base decimal para a base binária.
D) Lê um número e escreve seus dígitos separadamente, utilizando apenas os dígitos que o 
numeral possui para expressar o resultado.
E) Não tem objetivo, apenas faz contas soltas e não resolve nenhum problema matemático ou 
prático.
Na prática
O desenvolvimento de algoritmos e programas é feito para que o computador nos auxilie a 
realizar processos complexos e repetitivos que envolvam diversas informações e cálculos. É 
possível construir algoritmos para calcular a área de figuras geométricas, IMC (índice de massa 
corpórea), volume de recipientes, média de notas, valor de parcelas, valor de séries numéricas, etc. 
Normalmente, deseja-se executar esses processos para diferentes valores de entrada de dados. 
Nesses casos, o algoritmo/programa deverá ser executado diversas vezes, para que, em cada vez, 
seja possível informar novos dados de entrada. Assim, seria adequado que, após encerrar o 
processo para o qual foi criado, que esse fosse repetido, sem que fosse necessário que o usuário o 
executasse novamente.
Para atingir esse objetivo, pode-se utilizar a estrutura de repetição repita...até, que executa pelo 
menos uma vez um conjunto de comandos e, depois, testa uma condição, até que ela seja 
verdadeira, finalizando a repetição. Enquanto a condição for falsa, o bloco de comandos será 
repetido.
Vamos considerar que desejamos construir um algoritmo que apresente um menu de opções de 
cálculos:
1 - Calcular a área de um quadrado
2 - Calcular a área de um retângulo
3 - Calcular a área de uma circunferência
4 - Sair do programa
O sistema deve pedir que o usuário digite sua opção. Quando o usuário digitar a opção “1”, o 
programa deverá solicitar a medida do lado do quadrado, calcular sua área e mostrá-la. Caso seja 
digitada a opção “2”, solicitar as medidas do comprimento e altura do retângulo, calcular sua área e 
mostrá-la. Já quando for digitada a opção “3”, solicitar a medida do raio da circunferência, calcular 
sua área e mostrá-la. Finalmente, se for digitada a opção “4”, o programa deve ser finalizado. 
Portanto, se a opção digitada não for a opção “4”, o processo deve ser repetido.
Podem-se definir os seguintes passos para resolução do algoritmo:
1. Ler a opção
2. Caso a opção seja “1”
 a. Ler a medida do lado do quadrado
 b. Calcular a área do quadrado: área = lado * lado
 c. Mostrar a área calculada
3. Caso a opção seja “2”
 a. Ler as medidas de comprimento e altura do retângulo
 b. Calcular a área do retângulo: área = comprimento * altura
 c. Mostrar a área calculada
4. Caso a opção seja “3”
 a. Ler a medida do raio da circunferência
 b. Calcular a área da circunferência: área = 3.1416 * raio * raio
 c. Mostrar a área calculada
5. Se a opção for “4” ir para o passo 6; caso contrário, voltar para o passo 1
6. Finalizar o programa
O algoritmo a seguir em pseudocódigo implementa a solução do problema proposto: algoritmo 
"calculos"
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para 
acessar.
 
https://statics-marketplace.plataforma.grupoa.education/sagah/3b855340-8c96-4be3-9957-d4ee975d6302/11158d2a-5c7b-415e-a512-3b48f4cd1609.jpg
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Lógica de Programação - Estruturas de repetição (loop) - 
REPITA ATÉ
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Lógica de Programação com VisualG Estrutura de Repetição - 
Repita
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://www.youtube.com/embed/PZJmfp42k00
https://www.youtube.com/embed/cgfe08eg85o

Continue navegando