Ir ao conteúdo
  • Cadastre-se

VisualG Nota fiscal na tela final


Posts recomendados

Bom galera, é o seguinte
Fiz este código a qual esta funcionando perfeitamente, mas gostaria que apresentasse um tipo de nota fiscal no final do valor informando os itens selecionados o valor de cada item e o valor final bem parecido como em uma nota fiscal.

Tem como fazer isso, se sim, como? Pois não faço a menor ideia.

 

Var
   valorTotal: real
   codigo, quantidade: inteiro
   deveContinuarPerguntando, digitouRespostaInvalida: logico
   clienteConsumiuMais : caractere
Inicio
funcao retornarValorPeloCode(code: inteiro): real
inicio
   escolha code
   caso 100  //  R$ 5,20 Pao de Queijo
      retorne 5.20

   caso 101      //Bauru simples 101 R$ 7,30
      retorne 7.30

   caso 102       //Quibe 102 R$ 6,50
      retorne 6.50

   caso 103      //Coxinha de frango 103 R$ 6,70
      retorne 6.70

   caso 104    //Torta de Frango (fatia) 104 R$ 11,10
      retorne 11.10

   caso 105           //Empada de bacalhau 105 R$ 9,50
      retorne 9.50

   caso 106        //Pão delícia 106 R$ 5,80

      retorne 5.80

   caso 107          //Esfirra 107 R$ 8,40
      retorne 8.40

   caso 108          //Rissole de queijo 108 R$ 10,60
      retorne 10.60

   caso 109        //Croquete 109 R$ 9,10
      retorne 9.10

   caso 110        //Canapés 110 R$ 13,40
      retorne 13.40
   fimescolha
fimfuncao

deveContinuarPerguntando := verdadeiro
valorTotal := 0

enquanto deveContinuarPerguntando faca
   Escreval ("___________________________________________________________________________________________________")
   Escreval ("                              Delicatessen Veneza                                         ")
   Escreval ("___________________________________________________________________________________________________")
   Escreval ("")
   Escreval("                      Olá, seja Bem Vindo a  Delicatessen Veneza                          ")
   Escreval("                            O que vamos consumir hoje?                                    ")
   Escreval ("")

   escreva("Digite o codigo de um salgado que o cliente consumiu: ")
   leia(codigo)
   escreva("Digite a quantidade desse salgado que o cliente consumiu: ")
   leia(quantidade)
   valorTotal <- (retornarValorPeloCode(codigo) * quantidade)
   escreva("O cliente consumiu mais algum salgado? Digite S(SIM) OU N(NÃO)")
   repita
      leia(clienteConsumiuMais)
      se clienteConsumiuMais = "S" entao
         deveContinuarPerguntando := verdadeiro
         interrompa
      fimse
      se clienteConsumiuMais = "N" entao
         deveContinuarPerguntando := falso
         interrompa
      fimse
   fimrepita
fimenquanto
Escreval ("")
ESCREVAL("O cliente deve pagar: R$", valorTotal:6:2)
Escreval ("")
Escreval("                              Obrigado volte sempre!                                    ")

Fimalgoritmo

 

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

2 horas atrás, Marlon Gramacho disse:

Tem como fazer isso, se sim, como? pois não faço a menor ideia

Você pode fazer com vetores

 

algoritmo "Padaria"

const
   MAXIMO_PRODUTOS = 10

tipo
   tproduto=registro
      nome:caractere
      codigo:inteiro
      valor:real
   fimRegistro

var
   produtos:vetor [1..MAXIMO_PRODUTOS] de tproduto
   pedidos:vetor [1..MAXIMO_PRODUTOS] de inteiro

   deveContinuarPerguntando:logico
   clienteConsumiuMais:caractere
   valor_total:real
   contador:inteiro
   codigo, quantidade, n_produtos:inteiro

procedimento inicia_produtos
inicio
   produtos[1].nome <- "Pão de queijo"
   produtos[1].codigo <- 100
   produtos[1].valor <- 5.20

   produtos[2].nome <- "Bauru simples"
   produtos[2].codigo <- 101
   produtos[2].valor <- 7.30

   produtos[3].nome <- "Quibe"
   produtos[3].codigo <- 102
   produtos[3].valor <- 6.50

   produtos[4].nome <- "Coxinha de frango"
   produtos[4].codigo <- 103
   produtos[4].valor <- 6.70

   produtos[5].nome <- "Torta de Frango (fatia)"
   produtos[5].codigo <- 104
   produtos[5].valor <- 11.10

   produtos[6].nome <- "Empada de bacalha" //WTF -_-
   produtos[6].codigo <- 105
   produtos[6].valor <- 9.50

   produtos[7].nome <- "Pão delícia"
   produtos[7].codigo <- 106
   produtos[7].valor <- 5.80

   produtos[8].nome <- "Esfirra"
   produtos[8].codigo <- 107
   produtos[8].valor <- 8.40

   produtos[9].nome <- "Rissole de queijo"
   produtos[9].codigo <- 108
   produtos[9].valor <- 10.60

   produtos[10].nome <- "Croquete"
   produtos[10].codigo <- 109
   produtos[10].valor <- 9.10
fimProcedimento

procedimento zera_produtos
var
   contador:inteiro
inicio
   para contador de 1 ate MAXIMO_PRODUTOS faca
      pedidos[contador] <- 0
   fimPara
fimProcedimento

funcao checa_codigo(codigo:inteiro):logico
var
   contador:inteiro
inicio
   retorne falso
   para contador de 1 ate MAXIMO_PRODUTOS faca
      se codigo = produtos[contador].codigo entao
         retorne verdadeiro
         interrompa
      fimSe
   fimPara
fimFuncao

funcao posicao_codigo(codigo:inteiro):inteiro
var
   contador:inteiro
inicio
   para contador de 1 ate MAXIMO_PRODUTOS faca
      se codigo = produtos[contador].codigo entao
         retorne contador
         interrompa
      fimSe
   fimPara
fimFuncao

procedimento barra_s(tamanho:inteiro; adorno:caractere)
var
   contador:inteiro
inicio
   para contador de 1 ate tamanho faca
      escreva(adorno)
   fimPara
   escreval
fimProcedimento

procedimento faz_pausa
var
   tmp:caractere
inicio
   escreval("Pressione enter para continuar.")
   leia(tmp)
fimProcedimento

inicio
   // Inicia todos os produtos
   inicia_produtos

   deveContinuarPerguntando <- verdadeiro
   // Zera a lista de pedidos
   zera_produtos
   n_produtos <- 0
   valor_total <- 0
   repita
      barra_s(80, "_")
      escreval("                              Delicatessen Veneza")
      barra_s(80, "_")
      escreval
      escreval("                      Olá, seja Bem Vindo a  Delicatessen Veneza")
      escreval("                            O que vamos consumir hoje?")
      barra_s(80, "_")
      escreval

      repita
         escreva("Digite o codigo de um salgado que o cliente consumiu: ")
         leia(codigo)
         se checa_codigo(codigo) = falso entao
            escreval("Codigo invalido")
         fimSe
      ate não(checa_codigo(codigo) = falso)
      escreva("Digite a quantidade desse salgado que o cliente consumiu: ")
      leia(quantidade)
      // Coloca na lista de pedidos
      pedidos[posicao_codigo(codigo)] <- pedidos[posicao_codigo(codigo)]+quantidade
      escreval("O cliente consumiu mais algum salgado? Digite S(SIM) OU N(NÃO)")
      leia(clienteConsumiuMais)
      se clienteConsumiuMais = "S" entao
         deveContinuarPerguntando := verdadeiro
      seNao
         deveContinuarPerguntando := falso
      fimse
   ate não deveContinuarPerguntando

   para contador de 1 ate MAXIMO_PRODUTOS faca
      se pedidos[contador] > 0 entao
         escreval(produtos[contador].nome, "-", pedidos[contador], "*", produtos[contador].valor:2:2, "=", pedidos[contador]*produtos[contador].valor:2:2)
         n_produtos <- n_produtos+1
         valor_total <- valor_total+(produtos[contador].valor*pedidos[contador])
      fimSe
   fimPara
   escreval("Total de produtos pedidos ", n_produtos)
   escreval("O cliente deve pagar: R$", valor_total:6:2)
   escreval("                              Obrigado volte sempre!")
fimAlgoritmo

 

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

  • Membro VIP
23 horas atrás, Marlon Gramacho disse:

@kgin Esse constante é o que e coloca onde??


Constante seria uma "variável de valor fixo". Uma das utilidades para o contexto é que o seu valor é definido logo na criação... e que dá para utilizar como parâmetro para criação dos vetores... 

No caso aí, caso queira mudar a "quantidade máxima de produtos", bastaria mudar de 10 para o novo valor, por exemplo 25. Sem usar essa constante, teria que sai ajustando várias partes do códigos (trocando de 10 par 25 manualmente).

 

Ela está sendo utilizada na declaração dos vetores:
 

Em 02/07/2022 às 01:16, kgin disse:
var
   produtos:vetor [1..MAXIMO_PRODUTOS] de tproduto
   pedidos:vetor [1..MAXIMO_PRODUTOS] de inteiro



E também na definição do laço de repetição..
 

Em 02/07/2022 às 01:16, kgin disse:
   para contador de 1 ate MAXIMO_PRODUTOS faca
      se pedidos[contador] > 0 entao

 

 

 

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

  • Membro VIP

Recomendo utilizar a versão 3.6.0.5. Seria a mais estável... que dá menos problema.

 

Download: https://sourceforge.net/projects/visualg30/files/  (baixe o VISUALG3_REV60.rar)

ou

Link direto: https://sourceforge.net/projects/visualg30/files/VISUALG3_REV60.rar/download

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