#!/usr/bin/env python
#-*- coding: iso8859-1 -*-
#definição da função
def CalculaNotas(ValorNota, qtdSaldoNota, saque, valorReservado):
retorno = (saque - valorReservado) / ValorNota
if (retorno > qtdSaldoNota):
retorno = qtdSaldoNota
return retorno;
#variáveis (valores atribuídos)
nota100 = 25
nota50 = 100
nota10 = 200
nota5 = 80
nota1 = 100
valorReservado = 0
saqueNota100 = 0
saqueNota50 = 0
saqueNota10 = 0
saqueNota5 = 0
saqueNota1 = 0
#saldo suposto total de grana na máquina
saldo = (nota100*100) + (nota50*50) + (nota10*10) + (nota5*5) + (nota1)
#Aqui poderia ser empregado um while para escolha de opções, e para continuar a decrementar o caixa
while(True):
saque = raw_input("Digite o valor do saque (digite 'q' para sair): ")
if saque == 'q':
break
#Entrada do usuário
#saque = raw_input("Digite o valor do saque: ")
saque = int(saque)
print ("Voce deseja retirar: R$"), saque
#testes
if (saldo >= saque):
if (saque > valorReservado):
saqueNota100 = CalculaNotas(100, nota100, saque, valorReservado)
valorReservado = valorReservado + (saqueNota100 * 100)
if (saque > valorReservado):
saqueNota50 = CalculaNotas(50, nota50, saque, valorReservado)
valorReservado = valorReservado + (saqueNota50 * 50);
if (saque > valorReservado):
saqueNota10 = CalculaNotas(10, nota10, saque, valorReservado)
valorReservado = valorReservado + (saqueNota10 * 10);
if (saque > valorReservado):
saqueNota5 = CalculaNotas(5, nota5, saque, valorReservado)
valorReservado = valorReservado + (saqueNota5 * 5);
if (saque > valorReservado):
saqueNota1 = CalculaNotas(1, nota1, saque, valorReservado)
valorReservado = valorReservado + (saqueNota1 * 1)
if (valorReservado == saque):
nota100 = nota100 - saqueNota100
nota50 = nota50 - saqueNota50
nota10 = nota10 - saqueNota10
nota5 = nota5 - saqueNota5
nota1 = nota1 - saqueNota1;
print ("")
print ("Saque de R$"), saque, ("efetuado."), ("Foram necessárias"), saqueNota100, ("nota(s) de 100,"), saqueNota50, ("nota(s) de 50,"), saqueNota10, ("nota(s) de 10,"), saqueNota5, ("nota(s) de 5,"), ("e"), saqueNota1, ("nota(s) de 1")
else:
saque = 0;
print ("")
print ("Nao ha notas suficientes para o saque.")
else:
saque = 0;
print ("")
print ("Nao ha dinheiro suficiente para o saque")
#relatório final
saldo = saldo - saque
print ("")
print ("Situacao atual: | "),
print ("Notas de 100: "), nota100, (" | "),
print ("Notas de 50: "), nota50, (" | " ),
print ("Notas de 10: "), nota10, (" | "),
print ("Notas de 5: "), nota5, (" | "),
print ("Notas de 1: "), nota1, (" | "),
print ("Saldo: "), saldo, (" | ")
saque = 0