Ir ao conteúdo
  • Cadastre-se

VisualG Comando ENQUANTO no VisualG


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução
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
Link para o comentário
Compartilhar em outros sites

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

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@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
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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.

 

Link para o comentário
Compartilhar em outros sites

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

 

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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...