Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Exercício Pessoal

Estou realizando essa lista de exercícios https://wiki.python.org.br/EstruturaSequencial Porém travei na 3ª parte do exercício 17:

"misturar latas e galões, de forma que o desperdício de tinta seja menor. Acrescente 10% de folga e sempre arredonde os valores para cima, isto é, considere latas cheias."

Teria como me ajudar? :B

Segue meu código até então,

import math
area_da_pintura =  int(input("Informe o tamanho da área da pintura em m2: "))

galao = 3.6
lata_de_tinta = 18
preço_lata18litros = 80.00
preço_lata36litros = 25.00

quantidade_necessaria = area_da_pintura / 6

print(quantidade_necessaria)

galoesnecessarios = quantidade_necessaria / galao
latasnecessarias = quantidade_necessaria / lata_de_tinta
totalemlitros = (galoesnecessarios + latasnecessarias)
arredondado = math.ceil(totalemlitros)



print ("Galões necessários: {}".format(galoesnecessarios))
print ("Latas necessárias: {}".format(latasnecessarias))
print ("Litros de tinta necessários {:d}L".format(arredondado))
print ("Você vai precisar gastar: {:d}")
6 respostas

Oi! Agradeço por compartilhar o link da lista de exercícios. Eu acabei de implementar a minha versão desse aí das tintas(mostrando a quantidade de latas e/ou galões necessários, com o preço total e um lembrete da opção mais econômica). Foi bastante divertido, cheio de "pegadinhas". Adorei a proposta!

Podes me mandar sua versão?

Raphael, como vai? Eu sempre estou disposta a compartilhar meus códigos, me considero bastante ativa nesse fórum da alura. Mas antes de qualquer coisa eu tenho uma pergunta pra ti:

Fui ao teu perfil e percebi que você não finaliza teus atendimentos selecionando o status dos tópicos no fórum como solucionado.

Por que?

Porque não sabia que tinha que fazer isso. (?)

Olá, Rapahel. É uma cortesia comum ;) Além disso, a pessoa que responde tua dúvida e tem o status de solucionado ganha pontos no site da alura... Bem, eu to no celular e devo chegar em casa mais tarde. Lá pras 21h (horario de brasilia) eu disponibilizo o código pra ti.

solução!

Raphael, sinto não ter enviado isso antes, mas ontem foi um dia longo... Enfim, vamos lá: Sua questão foi relativa a esse trecho aqui -->

"misturar latas e galões, de forma que o desperdício de tinta seja menor. Acrescente 10% de folga e sempre arredonde os valores para cima, isto é, considere latas cheias."

Portanto, foi exatamente ali em que eu trabalhei. Note, esse problema é aquele tipo bem disfarçado. Se tu tiver distraído, acaba errando. Trata-se de uma questão simples, mas com uma execução trançada, você precisa trabalhar as variáveis a teu favor. Calcular e recalcular de acordo com as restrições propostas naquele parágrafo que tu mencionou acima.

Então, bora bora, vamos ao código!

"""
Proposta --> Criar uma calculadora para verificar o total da MISTURA DE TINTAS necessária para cobrir a área total
            fornecedida pelo cliente via input:

outputs gerados:

Quantidade total de latas e galoes misturados(done)
Preço total (done)
Quantidade de economia (done)

Restrições -- >

O programa deve considerar:

- latas/galoes inteiros ( fracionamentos serão invariavelmente arredondados para cima),
- a adicao de uma 'gordura' para fins de margem de erro no valor de 10% sobre a demanda total do produto,

"""
import math

#captacao de dados + definicao das variaveis + pre calculo

area_da_pintura = float(input("Informe o tamanho da área da pintura em m2: "))
margem_de_seguranca = 0.1
cobertura_cada_litro = 6
galao_litros = 3.6
lata_litros = 18
cobertura_galao_metros_quadrados = (galao_litros * cobertura_cada_litro) - (galao_litros * cobertura_cada_litro * margem_de_seguranca)
cobertura_lata_metros_quadrados = (lata_litros * cobertura_cada_litro) - (lata_litros * cobertura_cada_litro * margem_de_seguranca)
lata_preco = 80.00
galao_preco = 25.00
quantidade_tinta = area_da_pintura/cobertura_lata_metros_quadrados

#tratamento das variaveis

b = str(quantidade_tinta)
h = b.split(".")

inteiro = h[0]
inteiro = lata = int(inteiro)

galao = (area_da_pintura - (lata * cobertura_lata_metros_quadrados))/cobertura_galao_metros_quadrados

galao = math.ceil(galao)

#regras que regem o problema + geracao de outputs

if area_da_pintura < cobertura_lata_metros_quadrados:
    print(f"Voce precisara de {galao} galão (ões) de tinta por {(galao * galao_preco):.2f} Reais")
    if galao >= 4:  #Até 3 galões faz sentido comprar os galoes (preco 75R$). Caso contrario, maior economia comprar a LATA.
        print(f"LEMBRETE: É mais econômico adicionar ao carrinho 1 lata de tinta de 18 L pelo preço de {lata_preco:.2f} Reais em vez dos galões escolhidos")
        print(f'Sua economia seria de {abs(lata_preco - (galao * galao_preco)):.2f} Reais')

elif area_da_pintura >= cobertura_lata_metros_quadrados:
    if galao == 0:
        print(f'Você precisará de {lata} lata(s) de tinta')
        print(f'O preço total será: {(lata * lata_preco):.2f} Reais')
    if galao > 0 and galao < 4:
        print(f'Você precisará de {lata} lata(s) de tinta e {galao} galão (ões).')
        print(f'O preço total será: {((lata * lata_preco) + (galao * galao_preco)):.2f} Reais')
    if galao >= 4:
        print(f'Você precisará de {lata} lata(s) de tinta e {galao} galão (ões).')
        print(f'O preço total será: {((lata * lata_preco) + (galao * galao_preco)):.2f} Reais')
        print(f"LEMBRETE: É mais econômico adicionar ao carrinho 1 lata de tinta de 18 L pelo preço de {lata_preco:.2f} Reais em vez dos galões escolhidos")
        print(f'Sua economia seria de {abs(lata_preco - (galao * galao_preco)):.2f} Reais')

Ufa! Acabou hehe.

Bem, note que você poderá trabalhar essa questão de diversas formas diferentes! A matemática e a programação te oferecem esse recurso da "criatividade", você pode se mover para vários lados, contanto que no final chegue ao destino certo. Eu fiz esse código de forma bastante extensa (deu pra notar, ne), mas vc pode confeccionar tua lógica de maneira mais simples e enxuta. Tente, brinque bastante com as linhas e conceitos. Modifique e teste (BASTANTE). Novamente, eu me diverti fazendo esse exercicio, espero que minhas linhas te sirvam também. Se tiver qualquer dúvida do que foi escrito, pode entrar em contato e por favor, não esqueça de marcar o atendimento como solucionado, caso este realmente esteja.