10
2010
Aprenda a Programar #10 | Algoritmos – Estruturas de repetição 2
Enquanto… Faça…
Olá algoritmizeiros!
Primeiramente queria pedir desculpas pelo atraso no post dessa semana, mas a correria trabalho-trabalho-faculdade-casa é grande, e as vezes o tempo é pouco…
Dando prosseguimento ao post anterior, sobre estruturas de repetição, hoje vamos aprender sobre o comando enquanto – faca.
Diferentemente do repita-ate, onde todos os comandos são interpretados, para só então haver uma expressão lógica verificando se deve ou não continuar a repetição, o enquanto-faca irá avaliar uma expressão lógica e, enquanto esta for verdadeira, irá executar os comandos…
Sintaxe do Enquanto .. faca
enquanto <expressão lógica ou relacional> faca
<comandos>
fimenquanto
Melhor explicado com exemplos =)
Exemplo 1
Neste exemplo, vou criar um algoritmo utilizando o repita-ate e depois o mesmo algoritmo, só que dessa vez utilizando a estrutura enquanto – faca, explicando passo-a-passo a vocês, para que possam entender a diferença entre ambos.
- Faça um algoritmo que solicite que o usuário digite um número, e informe se este número é maior que 10. O programa só pode parar de solicitar o número quando este for igual a 0 (zero)
Utilizando a estrutura de repetição repita .. ate
algoritmo "exemplo 1"
// Nos siga no Twitter! @Algoritmizando
var
numero: inteiro
inicio
repita
escreva("Digite um número: ")
leia(numero)
limpatela // Limpa a tela =P
se (numero > 10) entao
escreval("O número é maior que 10")
senao
escreval("O número é menor que 10")
fimse
ate (numero = 0)
fimalgoritmo
E agora o mesmo algoritmo, porém utilizando a estrutura de repetição enquanto .. faca
algoritmo "exemplo 2"
// Nos siga no Twitter! @Algoritmizando
var
numero: inteiro
inicio
numero <- 1
enquanto numero <> 0 faca
escreva("Digite um número: ")
leia(numero)
limpatela
se (numero > 10) entao
escreval("O número ",numero," é maior que 10")
senao
escreval("O número ",numero," é menor que 10")
fimse
fimenquanto
fimalgoritmo
Nesse exemplo, começamos nosso algoritmo atribuindo o valor 1 a variável número, para que possamos começar a utilizar nossa estrutura de repetição, conforme podem ver na linha 9;
E na linha 10, nossa condição para que o laço continue sendo executado, ou seja, enquanto a variável numero for diferente de 0 (zero), continuaremos executando o programa, e o usuário digitando números para descobrir se é maior ou menor que zero… (como se fosse necessário um programa para isso rsrsrs)
claro, claro, é apenas um exemplo didático…
Mas que tal ver se realmente aprendeu?
Deixo aqui então um desafio a vocês…
- Crie dois algoritmos, um utilizando a estrutura de repetição repita .. ate e outro utilizando o enquanto .. faca.
- Uma loja está vendendo três modelos de carro, o algoritmo deve ler o nome e o valor (R$) dos seguinte automóveis: GOL, PALIO, CORSA
- Ao final, informar quantos carros de cada modelo foram vendidos e o valor total arrecadado em reais.
- O programa só pode encerrar quando o valor do veículo for igual a zero.
Good Luck

Artigo criado por














Bruno gostei muito dos post, mas to com muita dificuldade nos exercicios, preciso de ajuda!!!please
..bj
[Reply]
Bruno Barbosa Reply:
September 29th, 2010 at 13:40
Olá Sabrina,
Obrigado pelo feedback, mas preciso saber com mais exatidão qual é a sua dúvida, para que eu possa tentar te ajudar.
Abraços.
[Reply]
Bom Bruno, a minha duvida esta no 3°passo desse exercicio dos carros ai, para informar quantos carros de cada modelo foram vendidos e o valor total arrecadado em reais, não estou conseguindo fazer isso, desde ja obrigada.
[Reply]
oi,Bruno valeu, estou aprendendo muito
[Reply]
Cara, não consegui compreender o enunciado do exercício…
Poderia explicar melhor?
desde já agradeço ;D
[Reply]
Explicando melhor o exercício…
No início do programa, o programa deverá receber o valor de cada modelo do veículo, o valor do GOL, do CORSA e do PALIO.
Após isso, você deverá entrar em um laço, na qual seria a “venda dos veículos”. Exemplo:
loop
… Qual carro foi vendido? // O programa pergunta
>>> PALIO // O usuário insere o dado
… Qual o valor pago?
>>> VALORAQUI
paliosVendidos <- paliosVendidos + 1 // Aqui você cria uma variável para contabilizar quantos carros da marca PALIO ja foram vendidos.
// Logo em seguida, você salva em outra variável o valor já arrecadado em reais
VoltaProLoop // então você volta para o loop até que o valor pago inserido seja igual a 0, então você deve terminar o programa.
[Reply]
Bezzy Reply:
December 15th, 2010 at 19:55
Deixa eu ver se eu entendi…
Seria isso mesmo que eu escrevi ?
http://pastebin.com/4pGGVBrD
[Mandei pro pastebin pra ficar melhor a compreensão]
abraços
[Reply]
Seguindo a proposta do desafio…
Acho que eu consegui melhorar um pouquinho o meu código no segunto estilo de estrutura de repetiçao… [Enquanto --- Faça]
Aqui eu coloquei o código pra quem quiser ver o que eu fiz
http://pastebin.com/8fuxv5Yr
To ficando cada vez melhor nisso õ//
[Reply]
Dá uma olhadinha no meu aew…
foi isso q entendi q o exercicio tava pedindo…
algoritmo “Controle de Vendas”
// Função :
// Autor :
// Data : 7/3/2011
// Seção de Declarações
var
Carro:caractere
valor:real
i:Inteiro
inicio
// Seção de Comandos
i<-1
Repita
Escreval("Carros a venda: Gol: R$22.000, Palio: R$28.500, Corsa: R$30.100")
Escreval("")
Escreva("Modelo do carro: ")
Leia(carro)
Escreva("Valor do carro: R$")
Leia(Valor)
Escreval("O Carro ",Carro," custa R$",Valor)
i<-i+1
ate (valor=0)
Escreval("Voce vendeu ",i," carros.")
fimalgoritmo
[Reply]
muito bom!
perdi essa aula d estruturas d repetição
e seus post estão ajudando muito!
vlw
[Reply]
Bruno Barbosa Reply:
April 4th, 2011 at 23:25
Opa,
Eu é que agradeço por estar acompanhando e ter nos dado seu feedback.
Qualquer dúvida só postar nos comentários.
Abraços.
[Reply]
Bom dia, muito bom esse aprendendo, eu to aprendendo mesmo!!!
vai ai o meu codigo do exercicio!!!
algoritmo “Conta carros”
// Função : Contar carros vendidos e somar valores
// Autor : Odair h. Farias
// Data : 19/04/2011
// Seção de Declarações
var
preco, g, c, p, w: real
tipo: caractere
inicio
// Seção de Comandos
preco <- 1
g <- 0 // g – quantidades de gol
c <- 0 // c – quantidade de corsas
p <- 0 // p – quantidade de palios
w <- 0 // w – soma dos valores
enquanto (preco 0) faca
escreval (“Digite o preço do Carro:”)
leia(preco)
escreval (“Digite o modelo do Carro – Gol, Palio ou Corsa:”)
leia(tipo)
escolha(tipo)
caso (“gol”)
g<-g+1
caso ("corsa")
c<-c+1
caso ("palio")
p<-p+1
outrocaso
escreval ("Digite – Gol, Palio ou Corsa")
w <- w – preco
fimescolha
w <- w + preco
fimenquanto
escreval ("Foram vendidos ",g," Gols",c," Corsas",p," Palios")
escreval ("Valor total de vendas é R$ ",w:6:2)
fimalgoritmo
[Reply]
queria ver a resolucao desses exercicios do enquanto..
sera que tem alguma forma?
[Reply]
Olá Bruno! Eu gostaria de saber sobre o custo de processamento… Tô falando besteira ou há alguma diferença do repita pro enquanto faca.?
[Reply]
Bruno Barbosa Reply:
August 29th, 2011 at 15:38
Em portugol não há diferença alguma.
Os algoritmos ensinados aqui no Aprenda a Programar são apenas para fins didáticos e não consomem muitos recursos do computador.
Você deverá procurar documentação específica futuramente, da linguagem de programação que você estiver utilizando, sobre custos de processamento de laços de repetição.
[Reply]
Gui Reply:
August 29th, 2011 at 19:24
Grato pela atenção!
[Reply]
algoritmo “semnome”
// Função : Valor de 3 Tipos Diferentes de Carros
// Autor : Caasamtos
// Data : 27/09/2011
// Seção de Declarações
var
car:caractere
valor,quant,vend:real
inicio
// Seção de Comandos
valor<-1
enquanto valor0 faca
escreva(“Coloque o nome do carro que você deseja consultar: “)
leia(car)
escolha (car)
caso (“Gol”),(“Palio”),(“Corsa”)
escreva (“Qual o Valor do “,car ,” atualmente? “)
leia(valor)
fimescolha
se car=(“Gol”)entao
quant<-10//Valor Pode ser recebido de pelo banco de dados
fimse
se car=("Palio")entao
quant<-20//Valor Pode ser recebido de pelo banco de dados
fimse
se car=("Corsa")entao
quant<-15//Valor Pode ser recebido de pelo banco de dados
fimse
vend<-quant*valor
escreval ("As Vendas deste Carro é: ",vend)
fimenquanto
fimalgoritmo
//E então como ficou!? tentei uzar varios exercicios
[Reply]
Olá tudo bem?Tô no 1º periodo do curdo de Sistemas,mas o meu raciocinio é meio lento na logica de programação.Como posso melhorar isso?No aguardo.Abraços…Gildasio
[Reply]
Bom gente, tentei por várias horas, vejam qual o problema do meu programa ai, não funcionou.
_____________________________________
algoritmo “Venda de carros”
var
gol,palio,corsa,carro,valor,valor2,valor3,preco,i:real
nome:caractere
inicio
valor3 <- 0
valor2 <- 0
valor <- 0
i <- 0
gol <- 0
palio <- 0
corsa <- 0
enquanto valor2 valor3 faca
//—————————–
se i = 0 entao
escreva(“Entre com o valor total da soma dos carros a serem vendidos: “)
leia(valor3)
i <- i+1
limpatela
fimse
//—————————–
escreva("Digite o nome do carro: ")
leia(nome)
limpatela
//—————————–
escreva("Digite o valor do carro: ")
leia(preco)
//—————————–
se preco = 0 entao
fimalgoritmo
fimse
//—————————–
valor2 <- valor2+preco
limpatela
//—————————–
se nome = "gol" entao
carro <- 1
fimse
se nome = "palio" entao
carro <- 2
fimse
se nome = "corsa" entao
carro <- 3
fimse
//—————————–
se carro = 1 entao
gol <- gol+1
fimse
se carro = 2 entao
palio <- palio+1
fimse
se carro = 3 entao
corsa <- corsa+1
fimse
//—————————–
fimenquanto
//—————————–
limpatela
escreval("Foram vendidos ",(gol)," Gols, ",(palio)," Palios e ",(corsa)," Corsas.")
escreval("O valor arrecadado foi de ",(valor)," R$.")
fimalgoritmo
________________________________________
[Reply]
Nossa ,não consegui sacar nada ,raciocinio lentinho .
[Reply]
algoritmo “vendas_carros_enquanto_faca”
// Função :
// Autor :
// Data : 31/12/2011
// Seção de Declarações
//1. Crie dois algoritmos, um utilizando a estrutura de repetição repita .. ate e outro utilizando oenquanto .. faca.
//2. Uma loja está vendendo três modelos de carro, o algoritmo deve ler o nome e o valor (R$) dos seguinte automóveis: GOL, PALIO, CORSA
//3. Ao final, informar quantos carros de cada modelo foram vendidos e o valor total arrecadado em reais.
//4. O programa só pode encerrar quando o valor do veículo for igual a zero.
var
carro : caracter
carro_valor, vendatotal : real
vendgol, vendpalio, vendcorsa : inteiro
inicio
vendgol <- 0
vendpalio <- 0
vendcorsa <- 0
vendatotal <- 0
carro_valor 0) faca
escreval(“Automóveis disponíveis à venda:”)
escreval(“GOL:R$ 33790 ; PALIO:R$ 34290 ; CORSA:R$ 32436 ;”)
escreva(“Insira o Modelo ou digite FIM para sair: “)
leia(carro)
se ( carro = “FIM” ) entao
carro_valor <- 0
senao
escreva("Insira o valor do automovel: ")
leia(carro_valor)
fimse
limpatela
escolha carro
caso "GOL"
vendgol <- vendgol + 1
caso "PALIO"
vendpalio <- vendpalio + 1
caso "CORSA"
vendcorsa <- vendcorsa + 1
outrocaso
escreva("::modelo inválido::")
fimescolha
vendatotal <- vendatotal + carro_valor
fimenquanto
escreval("———–VENDAS———–")
escreval("GOLs vendidos: ",vendgol)
escreval("PALIOs vendidos: ",vendpalio)
escreval("CORSAs vendidos: ",vendcorsa)
escreval("Valor total arrecadado com as vendas: R$",vendatotal)
fimalgoritmo
dessa forma é válido o algoritmo quanto ao que o exercício pede?
[Reply]
Bruno Barbosa Reply:
January 2nd, 2012 at 09:34
Sim, é válido!
Parabéns, ficou muito bom o algoritmo.
Abraços.
[Reply]
E aii, Bruno até a estrutura de repetição #9 eu entendi tudo e ate antes do exercicio, chegou no exercicios nao consigo desenvolver.
grato
[Reply]
Bruno Barbosa Reply:
April 3rd, 2012 at 09:01
Onde está sua dúvida o exercício amigo?
Abs.
[Reply]
// MINHA SOLUCAO
algoritmo “concessionaria”
// Função :
// Autor :
// Data : 02/04/2012
// Seção de Declarações
var
preco, total: real
qpalio, qcorsa, qgol: numerico
multipla: caractere
inicio
preco <- 1
enquanto preco 0 faca
faca
escreval (“Informe qual modelo foi vendido:”)
escreval (“a)PALIO”)
escreval (“b)CORSA”)
escreval (“c)GOL”)
leia (multipla)
escolha multipla
caso “a”
escreval (“Por qual valor foi vendido o Pálio?”)
leia (preco)
total <- (total + preco)
qpalio <- qpalio + 1
caso "b"
escreval ("Por qual valor foi vendido o Corsa?")
leia (preco)
total <- (total + preco)
qcorsa <- qcorsa + 1
caso "c"
escreval ("Por qual valor foi vendido o Gol?")
leia (preco)
total <- total + preco
qgol <- qgol + 1
outrocaso
escreval ("Digite a,b ou c")
fimescolha
fimenquanto
escreval ("RELATÓRIO")
escreval ("Foram vendidos ", qpalio, " Palios, ", qcorsa, " Corsas e ", qgol, " Gols" )
escreval ("O total arrecadado foi: R$", total)
fimalgoritmo
[Reply]
algoritmo “semnome”
// Função :
// Autor : lucas augustin
// Data : 07/05/2012
// Seção de Declarações
var
t1,p,c,g,tp,tg,tc,tt,vc,vg,vp,vt,x:real
inicio
x <- 1
enquanto x0 faca
escreva (“palios vendidos:”)//R$ 1000
leia(p)
escreva (“corsas vendidos:”)//R$ 2000
leia (c)
escreva (“gols vendidos:”)//R$ 1500
leia (g)
//loop
x <- (c+g+p)
t1 <-(g+c+p)
tp <- (tp+p)
tg <- (tg+g)
tc <- (tc+c)
tt <- (tp+tc+tg)
//numero em vermelho é o valor de cada carro
vp <- (tp*1000)
vg <- (tg*2000)
vc <- (tc*1500)
vt <- (vp+vc+vg)
escreval("total de palios vendidos: ",tp," valor arrecadado: R$",vp)
escreval("total de corsas vendidos: ",tc," valor arrecadado: R$",vc)
escreval("total de gols vendidos: ",tg," valor arrecadado: R$",vg)
fimenquanto
fimalgoritmo
[Reply]
Ola Bruno!
Estou aprendendo muito com os exemplos que você posta.
Estou com uma duvida, mas acho que você pode me ajudar.
Gostaria que você desse um exemplo de algoritmo em que o “ENQUANTO” aparece 3 vezes no algoritmo.
Desde já agradeço
[Reply]
Minha Resolução:
algoritmo “Valor arrecadado em venda de carros”
// Função : Calcular o valor arrecadado em venda de carros
// Autor : Leandro R.
// Data : 09/05/2012
// Seção de Declarações
var
a, b, c: inteiro
x, y, z: real
inicio
// Seção de Comandos
escreval(” ———————-Valor arrecadado em vendas de carro————————–”)
escreval (“Digite o número de Gols vendidos”)
Leia (a)
escreval (“digite o valor do carro:” )
leia (x)
escreval (“Digite o número de Palios vendidos”)
Leia (b)
escreval (“digite o valor do carro:” )
leia (y)
escreval (“Digite o número de Corsas vendidos”)
Leia (c)
escreval (“digite o valor do carro:” )
leia (z)
escreval (“O valor arrecadado foi: “, a*x+b*y+c*z)
enquanto a >0 faca
escreval (“Digite o número de Gols vendidos”)
Leia (a)
escreval (“digite o valor do carro:” )
leia (x)
escreval (“Digite o número de Palios vendidos”)
Leia (b)
escreval (“digite o valor do carro:” )
leia (y)
escreval (“Digite o número de Corsas vendidos”)
Leia (c)
escreval (“digite o valor do carro:” )
leia (z)
escreval (“O valor arrecadado foi: “, a*x+b*y+c*z)
fimenquanto
fimalgoritmo
Obrigado pelas postagens!
Leandro- Fatec ZL
[Reply]