Exercício sobre saque de cx eletrônico
Alô galera.
Estou estudando um pouco de python e encontrei um exercício bacana para praticar que consta apenas de se controlar o saque de um caixa eletrônico.
O exercício exige que se crie uma função que receba como parâmetro um número inteiro representando o valor solicitado para saque num caixa eletrônico, e em seguida, sabendo que o caixa está alimentado com notas de 1, 5, 10, 50 e 100 reais, calcule e escreva quantas notas de cada valor serão necessárias para atender a solicitação de saque.
Acabei por fazer uma esboço assim:
#!/usr/bin/env python
#-*- coding: iso8859-1 -*-
nota100 = 25;
nota50 = 100;
nota10 = 200;
nota5 = 80;
nota1 = 100;
saldo = (nota100*100) + (nota50*50) + (nota10*10) + (nota5*5) + (nota1);
valorReservado = 0;
saque = raw_input("Digite o valor do saque: ");
print ("Voce deseja retirar: R$"), saque;
if (saldo > saque):
if (saque > valorReservado):
saqueNota100 = checaQtdeNota(100, nota100, saque, valorReservado);
valorReservado = valorReservado + (saqueNota100 * 100);
if (saque > valorReservado):
saqueNota50 = checaQtdeNota(50, nota50, saque, valorReservado);
valorReservado = valorReservado + (saqueNota50 * 50);
if (saque > valorReservado):
saqueNota10 = checaQtdeNota(10, nota10, saque, valorReservado);
valorReservado = valorReservado + (saqueNota10 * 10);
if (saque > valorReservado):
saqueNota5 = checaQtdeNota(5, nota5, saque, valorReservado);
valorReservado = valorReservado + (saqueNota5 * 5);
if (saque > valorReservado):
saqueNota1 = checaQtdeNota(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 ("Saque de ", saque, "efetuado.");
else:
saque = 0;
print ("Nao ha notas suficientes para o saque.");
else:
saque = 0;
print ("Nao ha dinheiro suficiente para o saque");
saldo = saldo - saque;
print ("Situacao atual: | ");
print nota100, (" | ");
print nota50, (" | " );
print nota10, (" | ");
print nota5, (" | ");
print nota1, (" | ");
print saldo, (" | ");
saque = 0
def checaQtdeNota (ValorNota, qtdSaldoNota, saque, valorReservado):
retorno = (saque - valorReservado) / valorNota;
if (retorno > qtdSaldoNota):
retorno = qtdSaldoNota;
return retorno;
Infelizmente não estou muito bem familiarizado com a estruturação dos if, elif e else, e também não sei se a função deve ser declarada no início ou no final do código. Como conseqüência os testes dos if não estão ocorrendo.
Alguém consegue me informar onde estou errando?
Valeu