Ir ao conteúdo
  • Cadastre-se

VisualG VisualG Sistema Cardápio Lanchonete


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

boa noite/tarde/dia! 🙂

 

tenho uma atividade que preciso desenvolver no VisualG e gostaria de pedir ajuda. basicamente preciso criar um sistema que seria o cardápio de um lanchonete onde é possível o usuário selecionar opções (que seriam os lanches, acompanhamentos, bebidas) e no final teria o total do pedido dele, além disso, teria o calculo do total geral de vendas do dia da lanchonete.

 

eu queria ajuda com essa atividade, primeiro irei mostrar o meu código até agora:

Var
// Seção de Declarações das variáveis 
opcao: inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
 
// Primeira tela do cardápio, o Menu Principal
escreval("                 MENU PRINCIPAL                 ")
escreval("------------------------------------------------")
escreval("1 - LANCHES")
escreval("2 - ACOMPANHAMENTOS")
escreval("3 - BEBIDAS")
escreval("0 - PARA SAIR DO SISTEMA")
escreval("------------------------------------------------")

escreval

escreval("Insira a opção desejada:")
leia(opcao)
escreval

// Se o usuário inserir um número que não está na lista de opções
enquanto  (opcao > 3) faca
          escreval("Opção inválida, digite novamente:")
          leia(opcao)
fimenquanto

// Segunda tela do cardápio, o Menu de Lanches
se (opcao = 1) então
   escreval("                    LANCHES                     ")
   escreval("------------------------------------------------")
   escreval("1 - XTUDO------------R$17,00")
   escreval("2 - XBURGUER---------R$15,00")
   escreval("3 - XBACON-----------R$15,00")
   escreval("4 - XSALADA----------R$10,00")
   escreval("5 - XEGG-------------R$10,00")
   escreval("6 - MISTO QUENTE------R$8,00")
   escreval("7 - BIG BAURU--------R$16,00")
   escreval("0 - VOLTAR AO MENU PRINCIPAL")
   
   escreval
   
   escreval("Insira a opção desejada:")
   leia(opcao)
   escreval
fimse

Fimalgoritmo

 

A minha primeira dúvida é: como faço pra que quando o usuário inserir 0 na opção do Menu de Lanches, ele volte pro Menu Principal?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução
Em 13/06/2023 às 20:41, Emanuelli disse:

A minha primeira dúvida é: como faço pra que quando o usuário inserir 0 na opção do Menu de Lanches, ele volte pro Menu Principal?

 

Basicamente utilizando um laço de repetição. Conceito que já está utilizando.

 

Entenda assim: o VisualG é um interpretador de código, que vai executando linha a linha... daí, como quer "voltar", teríamos duas opções: ou de alguma forma fazer "pular" para a linha anterior desejada (conceito de label), ou deixar o trecho do código dentro de um laço de repetição, dessa forma, ao finalizar um laço dessa repetição, o interpretador entenderia que deveria ir para o início do laço.

 

Na prática, basicamente isso:

inicio
   repita
      escrevaL("                 MENU PRINCIPAL                 ")
      escrevaL("------------------------------------------------")
      escrevaL("1 - LANCHES")
      escrevaL("2 - ACOMPANHAMENTOS")
      ...
   ate (opcao = 0)
   ...
 fimAlgoritmo

 

Adendo: você está reutilizando a mesma variável para as opções, o que pode fazer perder informações entre as "telas". Precisa ajustar. Exemplo:

 

algoritmo "Nome ou descrição do programa"
var
   opcao, codItem : inteiro

inicio
   repita
      escrevaL("                 MENU PRINCIPAL                 ")
      escrevaL("------------------------------------------------")
      escrevaL("1 - LANCHES")
      escrevaL("2 - ACOMPANHAMENTOS")
      escrevaL("3 - BEBIDAS")
      escrevaL("0 - PARA SAIR DO SISTEMA")
      escrevaL("------------------------------------------------")
      escrevaL("")
      escrevaL("Insira a opção desejada:")
      leia(opcao)
      escreval("")

      enquanto ((opcao < 0) OU (opcao > 3)) faca
         escrevaL("Opção inválida, digite novamente:")
         leia(opcao)
      fimEnquanto

      // Segunda tela do cardápio, o Menu de Lanches
      se (opcao = 1) então
         repita
            escrevaL("                    LANCHES                     ")
            escrevaL("------------------------------------------------")
            escrevaL("1 - XTUDO------------R$17,00")
            escrevaL("2 - XBURGUER---------R$15,00")
            escrevaL("3 - XBACON-----------R$15,00")
            escrevaL("4 - XSALADA----------R$10,00")
            escrevaL("5 - XEGG-------------R$10,00")
            escrevaL("6 - MISTO QUENTE------R$8,00")
            escrevaL("7 - BIG BAURU--------R$16,00")
            escrevaL("0 - VOLTAR AO MENU PRINCIPAL")
            escrevaL("")
            escrevaL("Insira a opção desejada:")
            leia(codItem)
            escrevaL("")
         ate (codItem = 0)
      fimSe
   ate (opcao = 0)
fimAlgoritmo

 

Adendo: por uma questão de semântica, utilizei codItem... Nesse caso não teria problema utilizar essa mesma variável para o menu 2, menu 3 etc, percebe? Pois as informações que não podem ser perdidas são as entre "pai e filho", ou seja, entre o item de menu e o menu principal. Daí, se tiver outra opção como "quantidade de item", teria que ser outra variável, como por exemplo: qtdItens. Cada sub-nível dentro do seu próprio mundinho.

 

Adendo 2: veja como fica melhor opcao, codItem e qtdItem etc, em vez de algo como opcao1, opcao2, opcao3 etc.. Fica mais fácil para saber qual variável usar... ficaria estranho utilizar qtdItem lá no menu da escolha do item, saca? Logo, mais prático para se organizar.

 

Adendo 3: o nível de organização vai do enunciado e do que deseja implementar... seguindo uma lógica, se tem "validação de entrada para o menu principal" seria sensato fazer o mesmo para cada sub item de menu lá quando selecionar o lanche. Sugiro ir prezando pera padronização dos conceitos... tende a facilitar.

Link para o comentário
Compartilhar em outros sites

@Simon Viegas obrigada pela ajuda! eu consegui resolver isso mas ao invés do "se" tava usando o "caso", só que em ambas opções encontrei um outro problema, quando insiro o "Menu Acompanhamentos" no código ele para de funcionar bem, não sei se o que causa o erro é isso mass eu copio e colo a mesma estrutura:

se (opcao = 1) então
         repita
            escrevaL("                    LANCHES                     ")
            escrevaL("------------------------------------------------")
            escrevaL("1 - XTUDO------------R$17,00")
            escrevaL("2 - XBURGUER---------R$15,00")
            escrevaL("3 - XBACON-----------R$15,00")
            escrevaL("4 - XSALADA----------R$10,00")
            escrevaL("5 - XEGG-------------R$10,00")
            escrevaL("6 - MISTO QUENTE------R$8,00")
            escrevaL("7 - BIG BAURU--------R$16,00")
            escrevaL("0 - VOLTAR AO MENU PRINCIPAL")
            escrevaL("")
            escrevaL("Insira a opção desejada:")
            leia(codItem)
            escrevaL("")
         ate (codItem = 0)
      fimSe
   ate (opcao = 0)

apenas alterando os nomes e a opção pra 2, pois é o Menu de Acompanhamentos, enfim, quando faço isso o programa tende a dar erros, por exemplo, quando insere o 2 pra ir pro Menu Acompanhamentos ele continua no Menu Principal e quando insere o 0 no Menu Principal ele abre o Menu Acompanhamentos e não finaliza o programa, e dentro do Menu Acompanhamentos (que eu abri inserindo o 0) se eu inserir 0, ao invés dele voltar pro Menu Principal ele só finaliza o programa. 

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!