Ir ao conteúdo

VisualG Comando ENQUANTO no VisualG


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Postado

Boa tarde pessoal. Preciso fazer um exercício, mas não estou conseguindo. É necessário aplicar o comando ENQUANTO nesse exercício, mas não sei onde colocá-lo. Segue o exercício sem o comando ENQUANTO aplicado:

 

1) Escreva um algoritmo que ao final da exibição na tela da escolha do cliente pergunte se ele gostaria de realizar outro pedido. Se o cliente quiser fazer um novo pedido, deverá pressionar a tecla “s” (sem aspas e em minúsculo).

 

Var
// Seção de Declarações das variáveis 
opcao, quantidade: inteiro
valor: real
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 

escreval ("   Lanchonete Central   ")
escreval ("   ------------------   ")
escreval (" ***Opções de lanches*** ")
escreval (" [1] - Torrada Simples -> R$ 4,00")
escreval (" [2] - Torrada Completa -> R$ 5,00")
escreval (" [3] - Cachorro Quente Simples -> R$ 5,00")
escreval (" [4] - Cachorro Quente Completo -> R$ 6,00")
escreval (" [5] - Cheeseburger Completo -> R$ 8,00")
escreval ("Digite a opção escolhida")
leia (opcao)
escreval ("Qual a quantidade desejada?")
leia (quantidade)

escolha opcao
caso 1
valor:=quantidade*4
escreval ("O lanche escolhido foi ",quantidade," Torrada Simples(s) e custará R$ ", valor,",00")
caso 2
valor:=quantidade*5
escreval ("O lanche escolhido foi ",quantidade," Torrada Completa(s) e custará R$ ", valor,",00")
caso 3
valor:=quantidade*5
escreval ("O lanche escolhido foi ",quantidade," Cachorro Quente Simples(s) e custará R$ ", valor,",00")
caso 4
valor:=quantidade*6
escreval ("O lanche escolhido foi ",quantidade," Cachorro Quente Completo(s) e custará R$ ", valor,",00")
caso 5
valor:=quantidade*8
escreval ("O lanche escolhido foi ",quantidade," Cheeseburger Completo(s) e custará R$ ", valor,",00")


fimescolha

Fimalgoritmo

 

  • Curtir 1
  • Membro VIP
  • Solução
Postado
7 horas atrás, Toguchi disse:

Boa tarde pessoal. Preciso fazer um exercício, mas não estou conseguindo. É necessário aplicar o comando ENQUANTO nesse exercício, mas não sei onde colocá-lo. Segue o exercício sem o comando ENQUANTO aplicado:

 

Neste caso, todo o código entre o inicio e o fimAlgoritmo.

  • Curtir 1
Postado

Aqui está o código completo:

 

Var
// Seção de Declarações das variáveis 
opcao, quantidade: inteiro
valor: real
continuar: caractere
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
continuar:="s"
enquanto continuar <> "n" faca
escreval ("   Lanchonete Central   ")
escreval ("   ------------------   ")
escreval (" ***Opções de lanches*** ")
escreval (" [1] - Torrada Simples -> R$ 4,00")
escreval (" [2] - Torrada Completa -> R$ 5,00")
escreval (" [3] - Cachorro Quente Simples -> R$ 5,00")
escreval (" [4] - Cachorro Quente Completo -> R$ 6,00")
escreval (" [5] - Cheeseburger Completo -> R$ 8,00")
escreval ("Digite a opção escolhida")
leia (opcao)
escreval ("Qual a quantidade desejada?")
leia (quantidade)

escolha opcao
caso 1
valor:=quantidade*4
escreval ("O lanche escolhido foi ",quantidade," Torrada Simples(s) e custará R$ ", valor,",00")
caso 2
valor:=quantidade*5
escreval ("O lanche escolhido foi ",quantidade," Torrada Completa(s) e custará R$ ", valor,",00")
caso 3
valor:=quantidade*5
escreval ("O lanche escolhido foi ",quantidade," Cachorro Quente Simples(s) e custará R$ ", valor,",00")
caso 4
valor:=quantidade*6
escreval ("O lanche escolhido foi ",quantidade," Cachorro Quente Completo(s) e custará R$ ", valor,",00")
caso 5
valor:=quantidade*8
escreval ("O lanche escolhido foi ",quantidade," Cheeseburger Completo(s) e custará R$ ", valor,",00")


fimescolha
escreval ("Deseja fazer um novo pedido? ")
escreval (" Digite s = sim ou n = não")
leia(continuar)

fimenquanto

Fimalgoritmo

 

  • Membro VIP
Postado

@Toguchi ,

 

1# INDENTAÇÃO DO CÓDIGO

Sempre mantenha o código indentado. No VisualG, tem um recurso de auto-indentação, basta pressionar Ctrl+G.

 

 

 

2# RESPEITO AO ENUNCIADO

Lá diz:

Em 16/12/2019 às 12:41, Toguchi disse:

1) Escreva um algoritmo que ao final da exibição na tela da escolha do cliente pergunte se ele gostaria de realizar outro pedido. Se o cliente quiser fazer um novo pedido, deverá pressionar a tecla “s” (sem aspas e em minúsculo).

 

No seu código ficou um pouco diferente. Nele só não vai repetir se pressionar diferente de "n". Não é a mesma coisa. No caso, se pressionar "g", vai repetir. Se pressionar "o" vai repetir etc, ou seja: ficou "só vai parar de repetir se pressionar "n", mas o cerne é o "s". Apenas mude a condição para:

   enquanto continuar = "s" faca

Qualquer outro valor diferente de "s" vai parar.

 

 

 

3# IMPRESSÃO NA TELA

No VisualG, alguns tipos de variável já ficam com um espaço extra a esquerda (acho que todos os numéricos. Maluquice do VisualG). Ex.:
 

Citação

O lanche escolhido foi  3 Torrada Completa(s) e custará R$  15,00
Deseja fazer um novo pedido?

 

Observe que tem 2 espaços entre o "foi" e o "3". Assim como entre "R$" e o 15,00". Talvez alguns não percebam, mas isso é visualmente irritante para olhos mais treinados. Experimente colar esse texto no Word ou LibreOffice... vai dar algo como "Espaço Extra:".

 

Para resolver isso, duas formas:

 

Tirando o espaço após o texto a esquerda:

escreval("O lanche escolhido foi", quantidade, " Torrada Simples(s) e custará R$", valor, ",00")

 

Ou usando formatação:

escreval ("O lanche escolhido foi ", quantidade:1, " Torrada Simples(s) e custará R$ ", valor:1, ",00")

Dente estes, eu prefiro a segunda opção.

 

PS: se observar nos exemplos acima, é comum também colocar um espaço após a ",", mas isso é apenas uma questão de padronização visual do código. Vai do "gosto"!

 

PS2: o plural de Torrada Simples seria "Torradas Simples", não? nesse exemplo ficaria "Torrada(s) Simples". Eu acharia melhor simplesmente não colocar o "(s)".

 

***

 

Sugiro efetuar estas correções. Após posta o código aqui para darmos uma revisada final.

 

ADENDO IMPORTANTE:

Será que todos os pedidos não deveriam ficar na mesma conta? imagine você indo numa lanchonete para comer 2 itens diferentes (independente da quantidade de cada item), aí você vai ter que fazer 2 pagamentos??? faria mais sentido soma ao total geral! Sugiro efetuar as correções citas mais acima, posta o código e depois guarda. Após, faz OUTRO programa mostrar o total geral.

 

No aguardo.

  • Curtir 1
Postado
3 horas atrás, Simon Viegas disse:

ADENDO IMPORTANTE:

Será que todos os pedidos não deveriam ficar na mesma conta? imagine você indo numa lanchonete para comer 2 itens diferentes (independente da quantidade de cada item), aí você vai ter que fazer 2 pagamentos??? faria mais sentido soma ao total geral! Sugiro efetuar as correções citas mais acima, posta o código e depois guarda. Após, faz OUTRO programa mostrar o total geral.

 

Como seria o código para essa função?

 

Ao invés de somar por outro programa, fazer a soma já nesse código feito, somando todos os pedidos. Terminei de corrigir o código, agora gostaria de adicionar essa soma final para postá-lo no fórum.

  • Membro VIP
Postado
6 minutos atrás, Toguchi disse:

Como seria o código para essa função?

 

Missão tua. Apenas estou dando uma luz sobre o problema.

 

 

8 minutos atrás, Toguchi disse:

Ao invés de somar por outro programa, fazer a soma já nesse código feito, somando todos os pedidos. Terminei de corrigir o código, agora gostaria de adicionar essa soma final para postá-lo no fórum.

 

Beleza. Posta o código atual para analisarmos. Após tenta alterar o código para esta nova situação do problema.

 

Postado

Agora acredito que o código está completo e funcional. Fiz os testes e deu tudo certo.

 

Var
   // Seção de Declarações das variáveis
   opcao, quantidade: inteiro
   total, valor: real
   continuar: caractere
Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   continuar:="s"
   enquanto continuar = "s" faca
      escreval ("   Lanchonete Central   ")
      escreval ("   ------------------   ")
      escreval (" ***Opções de lanches*** ")
      escreval (" [1] - Torrada Simples -> R$ 4,00")
      escreval (" [2] - Torrada Completa -> R$ 5,00")
      escreval (" [3] - Cachorro Quente Simples -> R$ 5,00")
      escreval (" [4] - Cachorro Quente Completo -> R$ 6,00")
      escreval (" [5] - Cheeseburger Completo -> R$ 8,00")
      escreval ("Digite a opção escolhida")
      leia (opcao)
      escreval ("Qual a quantidade desejada?")
      leia (quantidade)

      escolha opcao
      caso 1
         valor:=quantidade*4
         escreval ("O lanche escolhido foi ",quantidade," Torrada Simples(s) e custará R$ ", valor,",00")
      caso 2
         valor:=quantidade*5
         escreval ("O lanche escolhido foi ",quantidade," Torrada Completa(s) e custará R$ ", valor,",00")
      caso 3
         valor:=quantidade*5
         escreval ("O lanche escolhido foi ",quantidade," Cachorro Quente Simples(s) e custará R$ ", valor,",00")
      caso 4
         valor:=quantidade*6
         escreval ("O lanche escolhido foi ",quantidade," Cachorro Quente Completo(s) e custará R$ ", valor,",00")
      caso 5
         valor:=quantidade*8
         escreval ("O lanche escolhido foi ",quantidade," Cheeseburger Completo(s) e custará R$ ", valor,",00")


      fimescolha

      total <- total + valor
      escreval("O total do seu pedido deu R$",total:5:2)

      escreval ("Deseja fazer um novo pedido? ")
      escreval (" Digite s = sim ou n = não")
      leia(continuar)
      escreval ("Obrigado pela preferência!")

   fimenquanto

Fimalgoritmo

 

Postado
7 minutos atrás, Simon Viegas disse:

Bacana...

 

1. Falta resolver o problema do espaçamento citado no 3#;

2. Acho que faria mais sentido colocar o total após os pedidos.

 

@Toguchi, qual o enunciado completo deste problema?

 

 

Primeiro, é necessário criar esse código que simula o cardápio de uma lanchonete. Após isso, é necessário escrever um algoritmo que no fim da exibição da tela do pedido, pergunte se o cliente deseja fazer um novo pedido. Caso queira, ele tecla "s". Não diz se é necessário apertar "n", mas eu coloquei, porque senão ficaria em loop infinito.

Também não especifica se é necessário calcular o valor total, mas acredito que dessa forma fique melhor.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...