Jump to content
  • 0
douglasliracp

programa loja de tintas

Question

Estou iniciando a programação em python e estive fazendo os exercicios da lista de estrutura sequencial do python brasil e me deparei com um problema. 

a questão pede o seguinte: 

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.

 

Eu fiz os pontos 1 e 2 que pedem para comprar apenas latas de 18 litros e 3,6 litros respectivamente. Porém quando vou para o quesito 3 não consigo solucionar...

Meu código é o seguinte.

import math

area = float(input('tamanho em metros quadrados:'))

litro= area/6 #quantidade de litros
latas18 = (area)/(108) #quantidade de latas para pintar a área especificada
galao = (area)/(21.6) #quantidade de galao para pintar a área especificada

if area > 0: # a area tem que ser maior que zero caso contrario os valores de entradas estão errados.
    preco = math.ceil(latas18)*80
    print('A quantidade de latas de 18 litros a serem compradas é:', math.ceil(latas18), '\nPreço total é de:', preco,'Reais')
    preco2 = math.ceil(galao)*25
    print('A quantidade de galao de 3.6 litros a serem compradas é', math.ceil(galao),'\nPreço total foi:',preco2)
else:
    print('Dados invalidos')

Se vocês poderem me ajudar no último quesito ficaria bastante grato. 


Obrigado :)

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Olá boa noite....

 

Embora não seja especialista em python, mas gostei do problema e tive a tentar fazer uma versão com o exercicio resolvido, segue o código :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#Módulos
import math

#Funções
def func(situacoes):
    situacoes = eval(input("""Para comprar apenas latas de 18 litros insira 1
Para comprar apenas galões de 3,6 litros insira 2
Para misturar latas e galões, de forma que o preço seja o menor insira 3
Insira o a opção desejada: """))
    while not 1 <= situacoes <= 3:    
        situacoes = eval(input("Insira uma opção de 1 a 3: "))
    if situacoes == 1:
        print()
        print("Vai precisar de %d litros de tinta, %d latas e pagará R$ %d" % (litrosf,latas,preco_latas))
        print()
    elif situacoes == 2:
        print()
        print("Vai precisar %d litros de tinta, %d galoes e pagará R$ %d" % (litrosf,galoes,preco_galoes))
        print()
    elif situacoes == 3:
        a1 = int(litrosf/18)
        a2 = litrosf%18
        a3 = math.ceil(a2/3.6)
        a4 = ((a1*80)+(a3*25))
        print("De %d litros de tinta, %d latas, %d galõespagará R$ %d" % (litrosf,a1,a3,a4))      
    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:
    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
        limit = 108
        x = area - limit
        y = x/6
        y1 = math.ceil(float(y*1.1))
        
    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!")

Espera que tenha ajudado, se não conseguires perceber algo no código diz-me para te poder explicar....

 

Abraço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By edmin
      Olá pessoal, preciso de uma ajuda como seguinte, desde já, agradeço por qualquer ajuda...
      Pergunta: 
      Dado um arquivo 'ips.txt' com uma lista de endereços, o programa deve dar um ping para cada ip/domínio cadastrado. A linha contendo os resultados (mínimo, máximo, média)deve ser salva em arquivo 'log_data_hora.txt'.
      ips.txt
      www.claro.com.br;Servidor Claro
      www.colombo.com.br;Servidor Colombo
      www.renner.com.br;Servidor Renner
      www.gmail.com.br;Servidor Email Google
       
      tenho o seguinte código:
       
      import os from datetime import datetime def titulo(texto): print() print(texto) print('\033[7;97;40m-\033[m'*40) ###################################### def listar(): print('\033[7;97;40mListagem de IPs\033[m') print('\033[7;97;40m=\033[m'*72) arq = open('ips.txt', 'r') num = 0 linha = arq.readline() print('\033[7;97;40mNº .: IP/Dominio ...............: Cliente/Serviço ..................: \033[m') while linha != '': num = num + 1 partes = linha.split(';') print(f'\033[7;97;40m {num:3} {partes[0]:30s} {partes[1][:-1]}\033[m') linha = arq.readline() arq.close() print('\033[7;97;40m-\033[m'*72) ''' funcao que recebe um ip como parametro o tempo medio de resposta de um ping para este ip ou -1, caso erro ''' def ver_media(ip): dados = os.popen('ping '+ ip) # executa um comando no sistema operacional media = '' #find: retorna a posicao da string #(se nao encontrar retorna 0) for linha in dados: if linha.find('M‚dia') >= 0: posicao = linha.rfind('=') mediams = linha[posicao+1:] ms = mediams.rfind('ms') media = mediams[0:ms] if media == '': return -1 else: return int(media) def testar(): titulo('\033[7;97;40mTestando IPs Cadastrados\003[m') print('\033[7;97;40mIP/Domínio............ Tempo(ms)\033[m') print('\033[7;97;40m-\033[m'*40) arqLog = open('logs.txt', 'a') #salva em arquivo cada teste arq = open('ips.txt', 'r') linha = arq.readline() while linha != '': partes = linha.split(';') tempo = ver_media(partes[0]) funcao = ver_media(partes[1]) agora = datetime.now() dia = agora.strftime('%d/%m/%Y') hora = agora.strftime('%H:%M:%S') print(f'\033[7;97;40m{partes[0]:25s} {tempo}\033[m') arqLog.write(partes[0]+';'+str(tempo)+';'+dia+';'+hora+'\n') linha = arq.readline() arq.close() arqLog.close() #################################################### def logs(): titulo('\033[7;97;40m Listagem de Logs \033[m') arq = open('logs.txt', 'r') print('\033[7;97;40mNº..: IP / Dominio............: Média (ms): Dia do accesso..: Hora..:\033[m') num = 0 linha = arq.readline() while linha != '': num = num + 1 partes = linha.split(';') ip = str(partes[0]) tempo = str(partes[1]) dia = str(partes[2]) hora = str(partes[3]) print(f'\033[7;97;40m{num:3d} {ip:30s} {tempo:3s} {dia:17s} {hora} \033[m', end='') linha = arq.readline() arq.close() print('-'*43) print('\033[7;97;40m -> Se o tempo em ms, for igual a\033[m \033[1;31m-1\033[m,\033[7;97;40m\n' ' o host não está respondendo\033[m') return ######################### programa principal while True: print('\033[7;97;40m=\033[m' * 43) print('''\033[3;30;44m#### Selecione uma Opção: ####\033[m \033[7;97;40m 1. Listar Ips 2. Testar 3. Log de testes 4. Finalizar \033[m\n ''') print('\033[7;97;40m=\033[m' * 43) opcao = int(input('\033[3;30;44mDigite sua opção:\033[m ')) if opcao == 1: listar() elif opcao == 2: testar() elif opcao == 3: logs() elif opcao == 4: calcula() elif opcao == 5: print('\033[1;30mPrograma Finalizado pelo Usuário!!!\n' '==//==//==//==//==//==//==//==//==//\033[m') exit() else: print('\033[1;31mOps...\n' ' Opção Inválida!!!\033[m') break  
    • By Motta
      Microsoft libera curso grátis para aprender a programar em Python
    • By Pedro_silva
      Olá eu to querendo saber como eu faço para criar um app view que abre o site dentro dele mas não faço minima ideia como eu vou fazer isso, caso alguém tenha algum link de site que possa ensinar de já eu agradeço 
    • By silver sanths
      Como faço para retornar as notas da função cadastrar,  para a calcular a media dentro da função listar_notas?
       
       
      import subprocess
      def cadastrar():
          nota1 = float(input("Nota I: "))
          nota2 = float(input("Nota II: "))
          nota3 = float(input("Nota III: "))
          nota4 = float(input("Nota IV: "))
          arquivo = open('teste.txt', 'a')
          arquivo.write('{},{},{},{}\n'.format(nota1, nota2, nota3, nota4))
          arquivo.close()
          
          subprocess.run(["notepad" , "teste.txt"])
          
      def listar_notas():
          
          arquivo = open('teste.txt', 'r')
          linhas = arquivo.readlines()
          arquivo.close()
          print("{:20}{:20}{:20}{:20}".format("Nota I", "Nota II", "Nota III", "Nota IV"))
          
          for linha in linhas:
              nota1, nota2, nota3, nota4 = linha.strip().split(",")
              print("{:20}{:20}{:20}{:20}".format(nota1, nota2, nota3, nota4))
              
      while True:
          print('\n1. Cadastrar Notas')
          print('2. Listar Notas | Media')
          print('3. Sair')
          opcao = int(input())
          if opcao == 1:
              cadastrar()
          if opcao == 2:
              listar_notas()
          if opcao == 3:    
              break
       
    • By SilvioHC
      Olá, Eu Me Chamo Silvio Henrique.. e agora estou digamos q perdido em relação a hospedagem..
      bom eu "já sei" um pouco de cada elemento q forma um site..
      HTML5 CSS JAVASCRIPT DJANGO/PYTHON Mas agora, eu não faço a menor ideia de como faz para colocar o django em uma hospedagem... tipo "Eu Sei Hospedar" e talz.. eu estive usando o 000webhost quando estava aprendendo HTML mas, não faço ideia de como colocar o Django para rodar no backend.  algum bom samaritano poderia apontar um norte para q eu possa seguir ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.