Ir para conteúdo
  • 0
douglasliracp

programa loja de tintas

Pergunta

Estou iniciando a programação em python e estive fazendo os exercicios da lista de estrutura sequencial do python brasil e me deparei com um problema. 

a questão pede o seguinte: 

Faça um Programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 6 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00 ou em galões de 3,6 litros, que custam R$ 25,00.

  • Informe ao usuário as quantidades de tinta a serem compradas e os respectivos preços em 3 situações:
  • comprar apenas latas de 18 litros;
  • comprar apenas galões de 3,6 litros;
  • misturar latas e galões, de forma que o preço seja o menor. Acrescente 10% de folga e sempre arredonde os valores para cima, isto é, considere latas cheias.

 

Eu fiz os pontos 1 e 2 que pedem para comprar apenas latas de 18 litros e 3,6 litros respectivamente. Porém quando vou para o quesito 3 não consigo solucionar...

Meu código é o seguinte.

import math

area = float(input('tamanho em metros quadrados:'))

litro= area/6 #quantidade de litros
latas18 = (area)/(108) #quantidade de latas para pintar a área especificada
galao = (area)/(21.6) #quantidade de galao para pintar a área especificada

if area > 0: # a area tem que ser maior que zero caso contrario os valores de entradas estão errados.
    preco = math.ceil(latas18)*80
    print('A quantidade de latas de 18 litros a serem compradas é:', math.ceil(latas18), '\nPreço total é de:', preco,'Reais')
    preco2 = math.ceil(galao)*25
    print('A quantidade de galao de 3.6 litros a serem compradas é', math.ceil(galao),'\nPreço total foi:',preco2)
else:
    print('Dados invalidos')

Se vocês poderem me ajudar no último quesito ficaria bastante grato. 


Obrigado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0

Olá boa noite....

 

Embora não seja especialista em python, mas gostei do problema e tive a tentar fazer uma versão com o exercicio resolvido, segue o código :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#Módulos
import math

#Funções
def func(situacoes):
    situacoes = eval(input("""Para comprar apenas latas de 18 litros insira 1
Para comprar apenas galões de 3,6 litros insira 2
Para misturar latas e galões, de forma que o preço seja o menor insira 3
Insira o a opção desejada: """))
    while not 1 <= situacoes <= 3:    
        situacoes = eval(input("Insira uma opção de 1 a 3: "))
    if situacoes == 1:
        print()
        print("Vai precisar de %d litros de tinta, %d latas e pagará R$ %d" % (litrosf,latas,preco_latas))
        print()
    elif situacoes == 2:
        print()
        print("Vai precisar %d litros de tinta, %d galoes e pagará R$ %d" % (litrosf,galoes,preco_galoes))
        print()
    elif situacoes == 3:
        a1 = int(litrosf/18)
        a2 = litrosf%18
        a3 = math.ceil(a2/3.6)
        a4 = ((a1*80)+(a3*25))
        print("De %d litros de tinta, %d latas, %d galõespagará R$ %d" % (litrosf,a1,a3,a4))      
    else:
         return situacoes
    print()

def menu(a):
    print("Suas opções são:")
    print("")
    print("1) Calcular a área a ser pintada")
    print("2) Preços dos produtos")
    print("3) Calcular os preços por área a ser pintada")
    print("4) Sair do programa")
    print()
    opcao = eval(input("Escolha sua opção: "))
    while not 1 <= opcao <= 4:
        print()
        opcao = eval(input("Escolha uma opção de 1 a 4: "))
    else:
        return opcao
            

def precos(a):
    print()
    print("Temos latas de 18 litros e galões de 3,6 litros")
    print("Cada lata custa R$80 e cada galão R$25")
    print()

    
#O Programa realmente começa aqui:
print("Bem Vindo ao Programa da Loja de Tintas 3.0")
loop = 1
choice = 0
area = 0
while loop:
    choice = menu(1)
    if choice == 1:
        area = eval(input("Tamanho em metros quadrados (m²) da área a ser pintada: "))
        litros = float(area/6)
        litrosf = math.ceil(float(litros*1.1))
        latas = math.ceil(float(litrosf) / 18)
        galoes = math.ceil(float(litrosf) / float(3.6))
        preco_latas = latas*80.0
        preco_galoes = galoes*25.0
        tinta_necessaria = float(area)/6
        lata = 18.0
        galao = 3.6
        limit = 108
        x = area - limit
        y = x/6
        y1 = math.ceil(float(y*1.1))
        
    elif choice == 2:
        precos(1)
    elif choice == 3:
        if area == 0:
            print()    
            print("Execulte primeiro a opção 1 [Calcular a área]!")
            print()
        else:
            func(1)
    elif choice == 4:
        loop = 0

print()        
print("Obrigado por usar o programa!")

Espera que tenha ajudado, se não conseguires perceber algo no código diz-me para te poder explicar....

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por thiagofdiniz
      Estou fazendo um curso técnico e estou com uma duvida sobre um exercício que me foi passado com a seguinte pergunta:
      Elabore um algoritmo que leia dois números, some cinco ao de menor valor, compare os dois valores e mostre o maior.
       
      Mas no meu código, ele está somando e mostrando o de menor valor, e não o de menor
      Será que alguém pode me ajudar não estou conseguindo enxergar o erro.. 
      x=int(input('Digite um número e aperte ENTER')) y=int(input('Digite um número e aperte ENTER')) if x>y: y=y+5 if x>y: print(x) else: print(y) else: x<y x=x+5 if x<y: print(y) else: print(x)  
    • Por FIM1999
      Preciso montar um sistema para geração automática de carteirinha para membros de um clube de benefícios. Alguém já tem alguma codificação pronta para isso?
      Ou então sabe como fazer?
    • Por anllj
      Alguém pode me ajudar? 
       
      Escrever um programa que permita ao usuário digitar o dia e mês de seu
      aniversário e a data de hoje (dia e mês); em seguida, o programa deve calcular
      quantos dias faltam entre a data de hoje e a data do próximo aniversário. Suponha
      todos os meses com 30 dias.
    • Por santans
      Olá, gostaria de saber se houve algum tipo de alteração no função embutida do python range.
      O problema é o seguinte quando eu chamo a função e digito:
      >>>RANGE (5)
      O resultado que recebo é o seguinte:
      >>>RANGE (0, 5)
      Por favor poderiam me dizer se fiz algo errado ou se alteraram as propriedades dessa função.
      Agradeço desde ja quem puder ajudar.
    • Por GabrielMoura
      Boa noite pessoal,
      Estou construindo uma matriz em Python, mas estou com dificuldade na hora do print. 
      Segue o meu código:
       
      linhas = 4 entrada = input() valor = entrada.split() matriz = [] while (entrada != ''): for i in range(linhas): linha = [] for j in range(len(valor)): valor[j] = int(valor[j]) linha.append(valor[j]) matriz.append(linha) entrada = input() print(*matriz, sep='\n') Quando digito:
      1 2 3 4
      5 6 7 8
      A impressão é:
      [1, 2, 3, 4]
      [1, 2, 3, 4]
       
      Alguém pode me ajudar?
      Obrigado
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.