Ir ao conteúdo

Posts recomendados

Postado

Galera, seguinte, esse ano acabei entrando atrasado na faculdade por problemas pessoais, e já bati de cara com  a porta, meu professou passou uma atividade valendo 70% da nota semestral, que no caso precisa ser desenvolvido em python, utilizando as funções if,else, for, etc..

Não estou sendo vagabundo de pedir para resolverem o problema, até porque minha faculdade é paga e seria irresponsabilidade minha não estudar, mas é que estou 200% perdido, nunca programei e não faço a minima ideia do que fazer, se puderem me ajudar pelo menos em como desenvolver o inicio do código ficarei muito agradecido.

 

Quantidade disponível de moedas de 1 real

Quantidade disponível de moedas de 50 centavos

Quantidade disponível de moedas de 25 centavos

Quantidade disponível de moedas de 10 centavos

Quantidade disponível de moedas de 5 centavos

 

Então, o algoritmo deve executar eternamente a seguinte operação:

Receber como entrada o valor gasto pelo cliente

Receber como entrada o valor pago pelo cliente

Fornecer como saida as moedas que o cliente receberá como troco. O algoritmo deve fornecer o troco utilizando a menor quantidade de moedas disponíveis possível

Postado

Cara, primeiramente, muito obrigado, estava procurando um desafio que me prendesse faz tempo.

Em segundo lugar, eu fiz este script bem básico, porém, muito organizado, se quiser eu te explico como funciona, só me add no discord. 

Se quiser eu posso fazer uma interface grafica (abrir em uma janela), e até mesmo fazer um executável.

Discord: Sky#5500

Código:

from math import trunc

cor_linhas = '\033[32m'
cor_cedulas = '\033[33m'
cor_moedas = '\033[35m'


def make_menu(title='MENU', length=20, char='-'):
    print('\033[32m'+char*length)
    print(title.center(length))
    print('\033[32m'+char*length)
def make_line(length=20, char='-'):
    print('\033[32m'+char*length)


while True:
    make_line()
    gasto = float(input('Valor da compra: '))
    make_line()
    pago = float(input('Valor pago: '))

    troco = float('{:.2f}'.format(pago - gasto))
    if troco >= 1:
        real = trunc(troco)
    else:
        real = 0
    centavos = float('{:.2f}'.format(troco - real))
    cents = int((centavos*100)//5)
    cents50 = 0
    cents25 = 0
    cents10 = 0
    cents5  = 0
    cedula100 = 0
    cedula50 = 0
    cedula20 = 0
    cedula10 = 0
    cedula5 = 0
    resto = float(((centavos*100)%5)/100)
    
    while real >= 5:
        if real >= 100:
            cedula100 += 1
            real -= 100
        elif real >= 50:
            cedula50 += 1
            real -= 50
        elif real >= 20:
            cedula20 += 1
            real -= 20
        elif real >= 10:
            cedula10 += 1
            real -= 10
        elif real >= 5:
            cedula5 += 1
            real -= 5
    
    
    while cents >= 1:
        if cents >= 10:
            cents50 += 1
            cents -= 10
        elif cents >= 5:
            cents25 += 1
            cents -= 5
        elif cents >= 2:
            cents10 += 1
            cents -= 2
        elif cents >= 1:
            cents5 += 1
            cents -= 1




    make_menu('Troco: R${:.2f}'.format(troco))
    if troco > 0 and troco < 0.5:
        if resto == 1:
            print(f'Sobra {resto} centavo')
        else:
            print(f'Sobra {resto} centavos')
    
    if cedula100 > 0 or cedula50 > 0 or cedula20 > 0 or cedula10 > 0 or cedula5 > 0: 
        make_menu(f'{cor_cedulas}Cedulas')
        if cedula100 > 0:
            print(f'{cor_cedulas}100 reais:    {cedula100}')
        if cedula50 > 0:
            print(f'{cor_cedulas}50  reais:    {cedula50}')
        if cedula20 > 0:
            print(f'{cor_cedulas}20  reais:    {cedula20}')
        if cedula10 > 0:
            print(f'{cor_cedulas}10  reais:    {cedula10}')
        if cedula5 > 0:
            print(f'{cor_cedulas}5   reais:    {cedula5}')

    if real > 0 or cents50 > 0 or cents25 > 0 or cents10 > 0 or cents5 > 0:
        make_menu(f'{cor_moedas}Moedas')
        if real > 0:
            print(f'{cor_moedas}1   real:     {real}')
        if cents50 > 0:
            print(f'{cor_moedas}50  centavos: {cents50}')
        if cents25 > 0:
            print(f'{cor_moedas}25  centavos: {cents25}')
        if cents10 > 0:
            print(f'{cor_moedas}10  centavos: {cents10}')
        if cents5 > 0:
            print(f'{cor_moedas}5   centavos: {cents5}')  

@Joao otavioooo

Eu autorizo o uso desse script.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!