Ir ao conteúdo

Posts recomendados

Postado

Estou com um exercício de Portugol para fazer o seguinte algoritmo:

Um posto está vendendo combustíveis com a seguinte tabela de descontos:

Álcool: Até 20L, desconto de 3% por litro;

Acima de 20L, desconto de 5% por litro;

Gasolina: Até 20L, desconto de 4% por litro;

Acima de 20L, desconto de 6% por litro;

Escreva um algoritmo que leia o número de litros vendidos, o tipo de combustível (codificado da seguinte forma: A: álcool, G: gasolina), calcule e imprima o valor a ser pago pelo cliente sabendo-se que o preço de entrada da gasolina é R$ 2,20 e do litro de álcool é R$ 1,90.

Queria que alguem me ajudasse a construir esse algoritmo em portugol de maneira simples usando os recursos básicos como: se, enquanto, etc...

  • 14 anos depois...
Postado
var
   litro, precoA, precoG, total:real
   combustivel: inteiro
inicio
   precoA := 2.90
   precoG := 3.30
         
   repita
      escreval("Tipo de combustivel")
      escreval("1 - Álcool")
      escreval("2 - Gasolina")
      leia(combustivel)
   ate ((combustivel = 1) ou (combustivel = 2))
       
   escreval ("Quantos litros: ")
   leia (litro)

   //para Álcool
   se (litro<=20) e (combustivel=1) entao
      total := precoA*(litro*(1-(3/100)))
      escreval ("Valor total à pagar: R$ " ,total)
   senao
      se (litro>20) e (combustivel=1) entao
         total := precoA*(litro*(1-(5/100)))
         escreval ("Valor total à pagar: R$ " ,total)               
      senao
         //para Gasolina
         se (litro<=20) e (combustivel=2) entao
            total := precoG*(litro*(1-(4/100)))
            escreval ("Valor total à pagar: R$ " ,total)
         senao
            se (litro>20) e (combustivel=2) entao
               total := precoG*(litro*(1-(6/100)))
               escreval ("Valor total à pagar: R$ " ,total)
            fimSe
         fimSe
      fimSe
   fimSe
fimAlgoritmo

 

  • Membro VIP
Postado

@Camila Cavalcante, apesar dos preços estarem defasados, acho que o enunciado precisaria ser seguido, ou seja: teria que colocar os valores que constam lá. 

 

PS: que posto espertinho é esse? então, se o cara quiser colocar 20L, teria que pedir para colocar 20.001 para ter um desconto maior, rs.

 

  • Curtir 1
  • 2 semanas depois...
Postado

Sim meu querido, isso mesmo! 🤭 @Simon Viegas

Copiei a resposta de um exercício que eu estava resolvento e tinha o mesmo enunciado, porém não me atentei que os valores do álcool e da gasolina eram diferentes. 😅 

De qualquer forma, espero ter ajudado! 

 

Ah, é verdade, com 20,001L já teria desconto. Nem notei esse detalhe. hehe 

  • Curtir 1
  • Membro VIP
Postado

Complementando:

  1. As respostas finais estão repetidas, dá para simplificar em uma só; 
  2. No enunciado pede uso de "A" ou "G" para o combustível (em vez de 1 ou 2);
  3. Para ficar mais didático, acho que a porcentagem poderia ficar em relação ao preço (em vez da quantidade);
  4. Seria possível utilizar nomenclaturas de variáveis ainda mais sugestíveis.

Poderia ficar com algo como:

algoritmo "FCdH"
var
   qtdLitros : real
   precoA, precoG, total : real
   tipoCombustivel : caractere

inicio
   precoA := 1.900
   precoG := 2.200

   repita
      escreval("Tipo de combustivel")
      escreval("A - Álcool")
      escreval("G - Gasolina")
      leia(tipoCombustivel)
   ate ((tipoCombustivel = "A") ou (tipoCombustivel = "G"))

   repita
      escreval("Quantos litros: ")
      leia(qtdLitros)
   ate (qtdLitros > 0)

   //para Álcool
   se (qtdLitros <= 20) e (tipoCombustivel = "A") entao
      total := qtdLitros*(precoA*(1-(3/100)))
   senao
      se (qtdLitros > 20) e (tipoCombustivel = "A") entao
         total := qtdLitros*(precoA*(1-(5/100)))
      senao
         //para Gasolina
         se (qtdLitros <= 20) e (tipoCombustivel="G") entao
            total := qtdLitros*(precoG*(1-(4/100)))
         senao
            se (qtdLitros > 20) e (tipoCombustivel = "G") entao
               total := qtdLitros*(precoG*(1-(6/100)))
            fimSe
         fimSe
      fimSe
   fimSe

   escreval ("Valor total a pagar: R$ ", total:1:2)
fimAlgoritmo

Obs.: fiquei com dúvida se leva ou não "crase" ali, e vi que não, pois é antes de verbo.

 

 

Um exemplo de seleção utilizando escolha/caso:

   escolha tipoCombustivel
   caso "A" //para Álcool
      se (qtdLitros <= 20) e (tipoCombustivel = "A") entao
         total := qtdLitros*(precoA*(1-(3/100)))
      senao
         total := qtdLitros*(precoA*(1-(5/100)))
      fimSe
   caso "B" //para Gasolina
      se (qtdLitros <= 20) e (tipoCombustivel="G") entao
         total := qtdLitros*(precoG*(1-(4/100)))
      senao
         total := qtdLitros*(precoG*(1-(6/100)))
      fimSe
   fimEscolha

 

  • Curtir 1
Postado

@Simon Viegas Top, sua resposta está completíssima. 👏

 

Comecei a estudar programação agora em abril e esse fórum está me ajudando bastante! Quando respondi essa questão, eu estava bem no início ainda por isso tão redundante. 😅

Estou com uma dúvida em uma questão de javaScript. Você poderia me ajudar? Até postei essa dúvida aqui no fórum.

  • Curtir 1
  • Membro VIP
Postado

Bacana!

 

1 minuto atrás, Camila Cavalcante disse:

Estou com uma dúvida em uma questão de javaScript. Você poderia me ajudar? Até postei essa dúvida aqui no fórum.

Vou dar uma olhada lá e ver no que posso ajudar.

 

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