Estou no começo do aprendizado, tanto na linguagem python quanto em lógica.
Tenho um exercicio que até alterei um pouco por conta, mas a parte em que não alterei e apenas copiei para estudar, algumas partes não estou conseguindo interpretar o funcionamento.
O exercicio é para obter a quantidade de uma area a ser pintada, onde cada litro cobre 6 metros, então teria galão de tinta com 3 litros e lata de tinta com 18 litros, no final fazer com que
saia mais barato misturando galão e lata se necessário.
O programa adiciona 10% a mais na area, então eu faço a area inicial com 65 metros, onde vai para 71 metros, dividido por 6 me resta 12 que seria a quantida de litros a ser usada.
No programa também tem uma parte onde tiro o decimal para deixar um valor redondo como 12 citado a cima.
Vai ter umas linhas com "print("####################", isso é um debug que inventei para ver na hora o retorno das variáveis, só para estudo.
A dúvida em si, se eu tenho 12 litros que é jogado na variável total, neste caso "print ("\n2) Comprar apenas latas de 18 litros")" onde a variável latas vai receber total//18, isso retorna 0.
Mas no meu debug improvisado, latas recebe 1 e total recebe 12, aqui não entendi a lógica ou regra que é aplicada, sendo que uma divisão direta 12//18 retorna 0 no terminal.
Outra dúvida é na etapa em que faz a combinação para obter o melhor preço, não consegui ver claramente a lógica utilizada ali, funciona perfeito, mas fiquei com dúvida
print("\n3) Misturar latas e galões, de forma que o preço seja o menor.")
Estou batendo cabeça nesse exercicio simples porque quero sair dele compreendendo bem o funcionamento, para aplicar em futuros exercicios.
Código completo.
metros = int(input("Digite a area: "))
metros = metros*1.1
print()
print("#################### Metros atual",metros,"Com 10%")
print()
# Inicio Arredondando a área da seguinte maneira.
extra = metros - int(metros) # extra recebe casa decimal de metros.
print()
print("#################### Extra atual",extra)
print()
metros = int(metros) # metros recebe valor inteiro.
# Fim Arredondando a área.
print()
print("#################### Metros inteiro",metros)
print()
area = metros//6 # Area recebe divisão inteira de metros po 6
print()
print("#################### Area atual",area)
print()
litros = 1
total = 1
if extra > 0: # Extra aqui serve para adicionar area caso exista uma sobra na divisão.
area += 1
total = litros * area
print("Litros a usar: ",total)
print()
print("#################### Extra atual",extra)
print()
print ("\n1) Comprar apenas galões de 3 litros")
galao = total//3
if total % 3 > 0:
galao += 1
print()
print("#################### Galao atual",galao)
print("#################### Total atual",total)
print()
print ("Serão necessárias:", galao, "galões")
print ("Obteremos:", galao*3, "litros")
print ("Total: R$", galao*25)
print()
print("#################### total atual",total)
print()
print ("\n2) Comprar apenas latas de 18 litros")
latas = total//18 # Recebe 0 caso o total seja 12 ?
if total % 18 > 0:
latas += 1
print()
print("#################### Latas atual",latas)
print("#################### total atual",total)
print()
print("Serão necessários: ", latas, "latas")
print("Obteremos: ",latas*18, "Litros")
print("Total: R$",latas*80)
print()
print("\n3) Misturar latas e galões, de forma que o preço seja o menor.")
latas = total//18
galoes = 0
litros_restantes = total % 18
print()
print("#################### latas atual",latas)
print("#################### litros restantes atual",litros_restantes)
print()
if litros_restantes <= 3*3:
#Ou seja, o numero de galões necessários seja menor do que três.
galoes = litros_restantes // 3
if litros_restantes % 3 > 0:
galoes += 1
else:
latas += 1
print("#################### galoes atual",galoes)
print("#################### litros restantes atual",litros_restantes)
print ("Serão necessárias:", latas, "lata(s)")
print ("Serão necessários:", galoes, "galão(s)")
print ("Obteremos:", latas*18 + galoes*3, "litros")
print ("Total: R$", galoes*25 + latas*80)
Question
Acneto
Boa noite.
Estou no começo do aprendizado, tanto na linguagem python quanto em lógica.
Tenho um exercicio que até alterei um pouco por conta, mas a parte em que não alterei e apenas copiei para estudar, algumas partes não estou conseguindo interpretar o funcionamento.
O exercicio é para obter a quantidade de uma area a ser pintada, onde cada litro cobre 6 metros, então teria galão de tinta com 3 litros e lata de tinta com 18 litros, no final fazer com que
saia mais barato misturando galão e lata se necessário.
O programa adiciona 10% a mais na area, então eu faço a area inicial com 65 metros, onde vai para 71 metros, dividido por 6 me resta 12 que seria a quantida de litros a ser usada.
No programa também tem uma parte onde tiro o decimal para deixar um valor redondo como 12 citado a cima.
Vai ter umas linhas com "print("####################", isso é um debug que inventei para ver na hora o retorno das variáveis, só para estudo.
A dúvida em si, se eu tenho 12 litros que é jogado na variável total, neste caso "print ("\n2) Comprar apenas latas de 18 litros")" onde a variável latas vai receber total//18, isso retorna 0.
Mas no meu debug improvisado, latas recebe 1 e total recebe 12, aqui não entendi a lógica ou regra que é aplicada, sendo que uma divisão direta 12//18 retorna 0 no terminal.
Outra dúvida é na etapa em que faz a combinação para obter o melhor preço, não consegui ver claramente a lógica utilizada ali, funciona perfeito, mas fiquei com dúvida
print("\n3) Misturar latas e galões, de forma que o preço seja o menor.")
Estou batendo cabeça nesse exercicio simples porque quero sair dele compreendendo bem o funcionamento, para aplicar em futuros exercicios.
Código completo.
Edited by AcnetoLink to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.