Exercício 17 (Loja de tintas)

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Exercício 17 (Loja de tintas)

l00p1ng
Olá pessoal estou com dificuldades em escrever o algoritmo da letra C
da questão 17 dos exercícios de Estrutura Sequencial do site
http://www.python.org.br/wiki/EstruturaSequencial , se puderem dar uma
força agradeço desde já. Abraço

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!")

Reply | Threaded
Open this post in threaded view
|

Re: Exercício 17 (Loja de tintas)

Marco André Lopes Mendes
2009/5/15 allen.konstanz <[hidden email]>

> Olá pessoal estou com dificuldades em escrever o algoritmo da letra C
> da questão 17 dos exercícios de Estrutura Sequencial do site
> http://www.python.org.br/wiki/EstruturaSequencial , se puderem dar uma
> força agradeço desde já. Abraço
>

Este mesmo problema foi discutido aqui na lista há alguns dias atrás.
Procure no histórico da lista. Veja aqui:

http://www.nabble.com/Exerc%C3%ADcio-17-td23411455.html#a23412602

Um abraço

--
Marco André
[hidden email]
http://marrcandre.blogspot.com


[As partes desta mensagem que não continham texto foram removidas]

Reply | Threaded
Open this post in threaded view
|

Re: Exercício 17 (Loja de tintas)

l00p1ng
Só para constar aki está código do programa:

http://mishu.eu.org/paste/view.php?id=8318

Obrigado Marco André!

Reply | Threaded
Open this post in threaded view
|

Re: Exercício 17 (Loja de tintas)

Mario Neves
This post has NOT been accepted by the mailing list yet.
In reply to this post by l00p1ng
area = input('Digite a área a ser pintada em m²: ')

litro = area/6.0

# lata 18 litros
lata = int(area/108 + 1)  # " +1" é o arredondamento
preco = lata*80*0.9

# lata 3,6 litros
lata1 = int(area/21.6 + 1)
preco1 = lata1*25*0.9
print    

if area <= 64.8:
    print """Número de litros necessários: %.1f litro(s).
Número de latas de 3,6 litros: %i unidade(s).
Total: R$ %.2f.""" % (litro, lata1, preco1)

elif area > 64.8 and area <= 108:
    print """Número de litro necessários: %.1f litro(s).
Números de latas de 18 litros: %i unidade(s).
Total: R$ %.2f.""" % (litro, lata, preco)

elif area > 108 and area % 108 == 0:
    print """Número de litros necessários: %i litro(s).
Números de latas de 18 litros: %i unidade(s).
Total: R$ %.2f.""" % (litro, lata, preco)

elif area > 108 and area % 108 != 0 and (area % 108) > 64.8:
    print """Número de litros necessários: %.1f litro(s).
Números de latas de 18 litros: %i unidade(s).
Total: R$ %.2f.""" % (litro, lata, preco)

elif area > 108 and area % 108 != 0 and (area % 108) <= 64.8:
    lata2 = int(area/108)
    lata3 = int((area % 108)/21.6 + 1)
    preco2 = (lata2*80 + lata3*25)*0.9
    print """Número de litros necessários: %.1f litro(s).
Números de latas de 18 litros: %i unidade(s).
Números de latas de 3,6 litros: %i unidades(s)
Total: R$ %.2f.""" % (litro, lata2, lata3, preco2)