Buscar

UNIDADE 21 Estrutura de Repetição Repita Até (fluxograma)

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 22 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 22 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 22 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é 
(fluxograma)
APRESENTAÇÃO
A repetição de trechos de programas exige, frequentemente, a execução de um determinado 
trecho de código no mínimo uma vez. Para estas situações, utiliza-se a Estrutura de repetição 
"Repita...Até". Esta estrutura define que um bloco de comandos será executado e que, ao final 
deste, será realizado um teste (condição). Se o resultado do teste for verdadeiro, a repetição 
termina; caso contrário, o bloco é repetido. Desta forma, nesta unidade de aprendizagem, será 
feito estudo sobre a construção de fluxogramas para representar esta estrutura de repetição. 
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 fluxogramas que utilizem a Estrutura de repetição "Repita...Até".•
Resolver problemas por meio de sua especificação com algoritmos.•
DESAFIO
A repetição de processos é muito comum em programação, e é um dos benefícios da 
computação: a realização de atividades repetitivas com precisão. Assim, a compreensão das 
Estruturas de repetição e de sua adequada utilização é uma importante competência dos 
programadores. A Estrutura de repetição “Repita...até” inicia um processo que realiza o 
conjunto de comandos do bloco de repetição no mínimo uma vez. Ao final deste, faz um teste 
(<condicao>), se o resultado for verdadeiro (SIM), finaliza a execução do conjunto de comandos 
da repetição e continua o fluxo do programa; se o resultado for falso (NÃO), retorna para o 
início da repetição.
Assim, a repetição é executada até que uma condição tenha sucesso, ou seja, até que tenha 
resultado verdadeiro (sim). Veja o esquema de fluxo a seguir:
 
 
Por exemplo, um funcionário do IBGE precisa validar as idades das pessoas. Assim, ele deseja 
um programa que leia a idade de uma pessoa e verifique se é uma idade válida. Se for informada 
uma idade menor do que zero ou maior que 150 anos, o programa deve solicitar que seja 
digitada uma nova idade; se for digitada uma idade válida, o programa deve apresentar essa 
mensagem. Para realizar essa consistência de dados, será utilizado um fluxograma com a 
estrutura de funcionamento do comando “Repita...Até”.
 
 
Uma professora deseja calcular a média das notas de cada um dos seus alunos. Para o cálculo da 
média, é utilizada a média aritmética simples, conforme a seguinte expressão: média = (nota1 + 
nota2)/2. Cada uma das notas (nota1 e nota2) deve estar no intervalo [0,10], ou seja, ter o valor 
maior ou igual a zero e menor ou igual a 10. Notas fora deste intervalo são consideradas 
incorretas/inválidas, e então um novo valor deve ser informado.
Construa um fluxograma que leia os valores de cada uma das notas (nota1 e nota2) de um aluno. 
Para cada nota, faça a consistência, verificando se está no intervalo correto. Se não estiver, ler 
novamente a nota. Depois de ler as notas válidas, calcular a média e mostrar a média calculada.
INFOGRÁFICO
Trecho de códigos em algoritmos são constituídos por comandos de entrada e saída de dados, 
comandos de decisão e comandos de repetição. O foco desta unidade é a construção de 
fluxogramas que representam 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 a partir da leitura do livro Algoritmos e Programação com exemplos em Pascal 
e C de Nina Edelweiss.
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, como o 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ávelauxiliar:
 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
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
Acompanhe o vídeo sobre estrutura de repetição.
Conteúdo interativo disponível na plataforma de ensino!
 
EXERCÍCIOS
1) Considere a Estrutura de repetição "repita...até". Em seguida, analise as afirmativas 
a seguir e selecione a INCORRETA. 
A) O bloco de repetição será executado no mínimo uma vez.
B) A diferença entre a repetição "repita...até" e as outras estruturas de repetição é o momento 
em que é feito o teste (condição).
C) Em todas as Estruturas de repetição, é feito um teste, e o bloco é repetido sempre que o 
teste tiver resultado verdadeiro.
D) A Estrutura de repetição "repita...até" não é a melhor a ser utilizada quando o bloco de 
repetição não puder ser executado.
E) O incremento ou alteração da variável de controle é de responsabilidade do programador.
Considere o seguinte fluxograma: 2) 
Em relação à estrutura e ao funcionamento deste fluxograma, analise as questões a seguir e 
assinale a INCORRETA. 
A) Não é possível saber antecipadamente quantas vezes a repetição será executada, pois seu 
controle está relacionado a uma informação que será lida.
B) Se o valor de B for zero, o fluxograma não funcionará corretamente.
C) Se o valor de B for 1, o valor de M, que será escrito, será sempre o valor de A.
D) O fluxograma calcula M em função do produto de A, calculando sua potência.
E) O fluxograma representa o cálculo do fatorial de um número A que foi lido.
Considere o seguinte fluxograma: 3) 
Em relação à estrutura e ao funcionamento deste fluxograma, analise as questões a seguir e 
assinale a correta. 
A) No fluxograma, a organização dos blocos representa a Estrutura de repetição 
"Repita...até".
B) O bloco de repetição será executado até que X seja menor ou igual a Y.
C) Independentemente dos valores iniciais de X e Y, o bloco de repetição sempre será 
executado no mínimo uma vez.
D) A repetição termina quando o valor de Y for menor do que X.
E) Ao final, o fluxograma mostra em total o somatório de Y.
Considere o seguinte algoritmo em pseudocódigo: algoritmo "faz" 
 
var 
4) 
termo, serie, valor : real 
inicio 
 serie <- 1 
 valor <- 1 
 repita 
 termo <- 1 / valor 
 serie <- serie + termo 
 valor <- valor + 1 
 escreval("Serie: ", serie) 
 ate (termo < 0.001) 
 escreval("Final: ", serie) 
fimalgoritmo 
 
Analise as alternativas a seguir e selecione a INCORRETA. 
A) O valor da variável termo é menor a cada iteração.
B) A repetição será executada mais de 1.000 vezes.
C) Pode-se alterar o tipo dos dados para inteiro, e o programa funcionará da mesma maneira.
D) O conteúdo de valor é incrementado de uma unidade a cada iteração.
E) A cada iteração, o valor da série é aumentado, mas esse aumento é cada vez menor.
Um determinado material perde 5% de sua massa a cada 60 minutos. Considerando 
a massa inicial deste material (que deve ser maior que 1.000gramas), quanto tempo 
ele levará para perder menos que 1 grama por hora? 
Para resolver esse problema, foi construído o seguinte algoritmo em pseudocódigo: 
 
algoritmo "material" 
var 
5) 
 inicial, final, diminui : real 
 tempo : inteiro 
inicio 
 escreval("Material") 
 repita 
 escreva("Digite a massa inicial: ") 
 leia(inicial) 
 ate (inicial >= 1000) 
 final <- inicial 
 tempo <- 0 
 repita 
 diminui <- final * 0.05 
 final <- final - diminui 
 tempo <- tempo + 1 
 ate (diminui < 1) 
 escreval("Massa inicial: ",inicial," - Massa Final: ",final," - Tempo: ", tempo," 
horas") 
fimalgoritmo 
 
Analise as alternativas a seguir e selecione a que apresenta o fluxograma mais 
equivalente ao pseudocódigo. 
A) 
B) 
C) 
D) 
E) 
NA PRÁTICA
 
A entrada de informações é etapa muito importante em sistemas computacionais, e a correção 
destas informações é essencial para as etapas posteriores do processamento. A correção das 
informações depende muito do tipo de informação e de seu uso. Por exemplo, uma variável do 
tipo inteiro poderia receber qualquer valor inteiro, negativo ou positivo, porém, se esta variável 
representar a informação de idades de pessoas, valores negativos não seriam aceitáveis e nem 
valores grandes, maiores do que 150 ou 200.
Assim, é desejável que seja verificada a correção da informação no processo de entrada de 
dados (leitura), e isto recebe o nome de verificação de consistência. Desta forma, quando um 
dado é lido, ele deve ser consistido, ou seja, deve-se verificar se o valor informado é coerente 
com a informação e uso que será feito desta. Se não for consistente, deve-se solicitar que o 
usuário informeum novo valor até que este seja correto.
Portanto, ao construir uma solução algorítmica, além de definir as variáveis necessárias e seus 
respectivos tipos, deve-se definir, quando pertinente, o intervalo de valores que a variável pode 
receber ou o conjunto discreto (definido) de valores que lhe podem ser atribuídos.
Deste modo, o processo de entrada de dados, nas situações em que é necessário fazer a 
consistência dos dados, deve seguir os seguintes passos:
1. //Iniciar consistência (Repita) 
2. Ler informação 
3. Testar se informação é consistente 
 a. Se sim então ir para o passo 4 
 b. Se não voltar ao passo 1 
4. //Continuar fluxo do programa\
O fluxograma a seguir representa essa lógica da consistência de dados de entrada:
 
 
O algoritmo a seguir em pseudocódigo representa essa lógica de consistência de dados de 
entrada:
algoritmo "consistencia" 
var 
 dado: inteiro 
inicio 
 repita 
 escreval("Digite um numero inteiro maior que 0 (zero): ") 
 leia(dado) 
 ate dado > 0 
 escreval("Dado lido: ", dado) 
fimalgoritmo
SAIBA MAIS
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do 
professor:
Lógica de Programação com VisualG Estrutura de Repetição - Repita
Conteúdo interativo disponível na plataforma de ensino!
Lógica de Programação - Estruturas de Repetição (Loop) - REPITA ATÉ
Conteúdo interativo disponível na plataforma de ensino!

Outros materiais