Ir ao conteúdo
  • Cadastre-se

VisualG Como posso simplificar o código?


Ir à solução Resolvido por kgin,

Posts recomendados

<algoritmo "AP1 - Matemática Para Computação"

//------------------------------------------------------------------------------

// Uma loja está vendendo uma TV com a opção de parcelamento com um desconto a

// quem pagar os boletos das parcelas antes da data de vencimento. Funcionando

// da seguinte forma:

//

// - Boletos pagos na data de vencimento, pagam o valor exato da parcela.

// - Boletos pagos antes da data de vencimento, ganham um desconto de 10%.

// - Boletos pagos após a data de vencimento, ganham um acréscimo de 4%.

//

// Lívia e Bernardo compraram uma TV cada.

//

// Lívia parcelou em 8 vezes, pagou as 2 primeiras parcelas na data de vencimen-

// to e as demais parcelas, ela pagou antes da data.

//

// Bernardo parcelou em 11 vezes e pagou a primeira parcela antes da data. Mas

// devido a falta de organização financeira, precisou pagar as 7 parcelas

// seguintes, atrasadas. Para tentar compensar o gasto, pagou as parcelas

// restantes, antes da data de vencimento.

//

// Sabendo que a TV tinha um custo de R$2500,00, podendo ser parcelada em 12x

// sem juros, qual foi o valor pago por Lívia e por Bernardo na TV?

//------------------------------------------------------------------------------

var

      valorProd, pagEmDia, pagAdiantado, pagAtrasado, valorPagoTv: Real  

      op, resp: caractere

      parcelas: Inteiro

//-----------------------------------------------------------------------------

procedimento Topo()

inicio

      escreval("----------------------------------------")

      escreval("Valor do produto R$", valorProd:5:2)

      escreval("Valor pago até o momento R$", valorPagoTv:5:2)

      escreval("Prestações restantes: ", parcelas)

      escreval("----------------------------------------")

fimprocedimento

//------------------------------------------------------------------------------

procedimento Menu()

inicio

      escreval("[1] Pagou em dia")

      escreval("[2] Pagou atrasado")

      escreval("[3] Pagou adiantado")

      escreval("[x] Finalizar")

      escreva("-> ")

      leia(op)

fimprocedimento

//------------------------------------------------------------------------------

procedimento Comprador()

inicio

      escreval("[1] Livia")

      escreval("[2] Bernardo")

      escreval()

      escreva("-> ")

      leia(resp)

escolha resp

caso "1"

      pagEmDia <- 312.50

      pagAdiantado <- 281.25

      pagAtrasado <- 325.00

caso "2"

      pagEmDia <- 227.27

      pagAdiantado <- 204.55

      pagAtrasado <- 236.36

fimescolha

fimprocedimento

//------------------------------------------------------------------------------

inicio

      Topo()

      Comprador()

      limpatela

      Topo()

      escreva("Valor Tv R$")

      leia(valorProd)

      escreva("Nº parcelas: ")

      leia(parcelas)

      enquanto (parcelas >= 0) faca

            limpatela

           Topo()

           Menu()

           se (op = "1") entao

                valorPagoTv <- valorPagoTv + pagEmDia

            fimse

           se (op = "2") entao

                valorPagoTv <- valorPagoTv + pagAtrasado

           fimse

           se (op = "3") entao

                 valorPagoTv <- valorPagoTv + pagAdiantado

           fimse

           se (op = "x") entao

                 parcelas <- 0

                limpatela

                Topo()

                escreval()

                escreval("---------------")

                escreval(" Finalizando ")

                escreval("---------------")

           fimse

           parcelas <- parcelas - 1

      fimenquanto

fimalgoritmo>

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

  • Solução

@Wendy Chagas Ao invés de simplificar já pensou em tornar mais genérico?

 

Exemplo

Algoritmo "parcelas"

var
   valor_total:real
   valor_parcela:real
   quantidade_parcelas:inteiro
   nome_comprador, nome_produto:caractere
   opcao, contador:inteiro
   POR_ADIANTADA, POR_ATRASADA:real

procedimento zera_dados
inicio
   valor_total <- 0
   valor_parcela <- 0
   quantidade_parcelas <- 0
   nome_comprador <- ""
   nome_produto <- ""
fimProcedimento

procedimento pega_dados
inicio
   escreva("Digite o nome do comprador:")
   leia(nome_comprador)
   escreva("Digite o nome do produto:")
   leia(nome_produto)
   escreva("Digite o valor da parcela:")
   leia(valor_parcela)
   repita
      escreva("Digite a quantidade de parcelas:")
      leia(quantidade_parcelas)
      se quantidade_parcelas <= 1 entao
         escreval("Quantidade de parcelas invalido!")
      fimSe
   ate quantidade_parcelas > 1
fimProcedimento

inicio
   // Porcentagem da parcela adiantada e atrasada
   POR_ADIANTADA <- 10.0
   POR_ATRASADA <- 4.0

   repita
      limpaTela
      zera_dados
      pega_dados
      para contador de 1 ate quantidade_parcelas faca
         limpaTela
         repita
            escreval("Digite uma das opções a baixo")
            escreval("A parcela ", contador," foi paga de que forma")
            escreval("1-Adiantada")
            escreval("2-Em dia")
            escreval("3-Em atraso")
            escreval("4-Para cancelar a operação")
            leia(opcao)
            se (opcao < 1) ou (opcao > 4) entao
               escreval("Opcao invalida!")
            fimSe
         ate (opcao >= 1)e(opcao <= 4)
         escolha opcao
         caso 1
            valor_total <- valor_total+(valor_parcela-((valor_parcela*POR_ADIANTADA)/100))
         caso 2
            valor_total <- valor_total+valor_parcela
         caso 3
            valor_total <- valor_total+(valor_parcela+((valor_parcela*POR_ATRASADA)/100))
         caso 4
            interrompa  // Sai do laço de repetição
         fimEscolha
      fimPara
      se contador = quantidade_parcelas entao
         escreval("O compradaor ", nome_comprador," pagou um total de ", valor_total:2:2," no produto ", nome_produto)
      fimSe
      escreval("Deseja fazer outro calculo?")
      escreval("1-Sim, 2-não")
      leia(opcao)
   ate não (opcao = 1)
fimAlgoritmo

 

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!