Questão:
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:
Lembrando de acrescentar 10% de folga e sempre arredondar os valores para
cima, isto é, considere latas cheias.
A. comprar apenas latas de 18 litros;
B. comprar apenas galões de 3,6 litros;
C. misturar latas e galões, de forma que o preço seja o menor.
Aqui vai o que eu já escrevi:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#Módulos
import math
#Funções
#def letraC(n): #Essa é a função que separei pra escrever o
algoritmo da letra C
def func(situacoes):
situacoes = eval(input("""Para comprar apenas latas de 18 litros digite
1
Para comprar apenas galões de 3,6 litros digite 2
Para misturar latas e galões, de forma que o preço seja o menor digite 3
Digite o a opção desejada: """))
while not 1 <= situacoes <= 3:
situacoes = eval(input("Digite um opção de 1 à 3: "))
if situacoes == 1:
print()
print("Você precisará de %d litros de tinta, %d latas e pagará R$
%d" % (litrosf,latas,preco_latas))
print()
elif situacoes == 2:
print()
print("Você precisará de %d litros de tinta, %d galoes e pagará R$
%d" % (litrosf,galoes,preco_galoes))
print()
elif situacoes == 3:
letraC(1) #Função da letra C
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 == 1:
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
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!")
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
pensei rapidamente sobre o problema, então não sei se vou dar a melhor resposta.
Mas vamos lá...
Você já sabe quanto litros serão necessários para a pintura total.
Se reparares no preço das tintas, temos para a lata (18 litros) um
preço de aproximadamente R$ 4,44 por litro; para o galão (3.6 litros)
temos um preço R$ 6,94 por litro.
Ou seja, quanto mais tinta pudermos comprar com as latas, menor será o
preço final da nossa compra.
Vamos a um exemplo então:
- Precisamos 100 litros de tinta
100 / 18 = 5 latas
100 % 18 = 10 litros ainda faltam para completar o mínimo necessário
10 / 3.6 = 2.7 galões (arredondamos para cima)
Portanto, para 100 litros de tinta precisariamos 5 latas de 18 litros
e 3 galões de 3.6 litros (e ainda sobraria um pouquinho de tinta);
Acho que dessas minhas contas tu consegue tirar um algoritmozinho que
solucione o teu problema.
Valeu,
Pablo
2009/5/5 Santiago Staviski <santiago...@gmail.com>:
> Santiago,
>
> pensei rapidamente sobre o problema, então não sei se vou dar a melhor
> resposta.
> Mas vamos lá...
>
> Você já sabe quanto litros serão necessários para a pintura total.
> Se reparares no preço das tintas, temos para a lata (18 litros) um
> preço de aproximadamente R$ 4,44 por litro; para o galão (3.6 litros)
> temos um preço R$ 6,94 por litro.
> Ou seja, quanto mais tinta pudermos comprar com as latas, menor será o
> preço final da nossa compra.
>
> Vamos a um exemplo então:
> - Precisamos 100 litros de tinta
> 100 / 18 = 5 latas
> 100 % 18 = 10 litros ainda faltam para completar o mínimo necessário
> 10 / 3.6 = 2.7 galões (arredondamos para cima)
>
> Portanto, para 100 litros de tinta precisariamos 5 latas de 18 litros
> e 3 galões de 3.6 litros (e ainda sobraria um pouquinho de tinta);
>
> Acho que dessas minhas contas tu consegue tirar um algoritmozinho que
> solucione o teu problema.
>
Fui em que escrevi este enunciado e você está correto no seu raciocínio.
Pra ajudar mais um pouco: tente utilizar o operador de módulo (resto da
divisão) e a função ceil do módulo math.
Um abraço
--
Marco André
marco...@gmail.com
http://marrcandre.blogspot.com