• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JoaoRodrigues

Loja de Pintura

1 mensagem neste tópico

Pessoal, na net está este exercicio:

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.

A minha resolução é a que se segue. Alguem me pode detectar os erros e sugerir optimizações?

# Loja de pintura

import sys

area = raw_input('Por favor, indique a area que tenciona pintar: ') # Pedir a area ao utilizador


lata_grande = 18.0 # Litros
lata_pequena = 3.6 # Litros
preco_lata_grande = 80.0 # Euros
preco_lata_pequena = 25.0 # Euros
area_litro_tinta = 6.0 # Metros.sq por litro

tinta_necessaria = float(area)/area_litro_tinta # Litros de tinta necessarios para a pintura

if tinta_necessaria == 1:
    print 'Vai precisar de um litro de tinta'
elif (tinta_necessaria != 1) and (tinta_necessaria > 0):
    print 'Vai precisar de',tinta_necessaria,'litros de tinta'
else:
    print 'Dados errados'
    sys.exit()

latas_grandes_needed = tinta_necessaria/lata_grande # Devolve a qtdade de latas grandes necessarias para pintar a area prentendida

paint_left = tinta_necessaria%lata_grande # Devolve a qtd de tinta que fica em excesso das latas grandes

# Com base nesse excesso, vemos se o que e usado da ultima lata justifica a sua compra
# Temos o valor excessivo a partir de (3.6*4) porque e o valor em que as latas pequenas ficam mais caras que uma grande
if (lata_grande - paint_left)<(3.6*4):
    latas_pequenas_needed = (lata_grande-paint_left)/lata_pequena

# Devolve o preco da mistura

if latas_pequenas_needed != 0:
    preco_final = (preco_lata_grande*(int(latas_grandes_needed)-1))+((int(latas_pequenas_needed))*preco_lata_pequena)
else:
    preco_final = preco_lata_grande*int(latas_grandes_needed)

print 'Preco final -',preco_final
print 'Preco em latas grandes -',(latas_grandes_needed)*preco_lata_grande
print 'Preco em latas pequenas -',preco_lata_pequena*(tinta_necessaria/lata_pequena)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora