Created
April 1, 2014 12:34
-
-
Save JuniorPolegato/9913042 to your computer and use it in GitHub Desktop.
Algoritmo simples para caixa eletrônico
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import sys | |
# quantidade de notas de 50 disponível em notas_50_disponiveis | |
notas_50_disponiveis = 10 | |
# quantidade de notas de 20 disponível em notas_20_disponiveis | |
notas_20_disponiveis = 10 | |
# quantidade de notas de 10 disponível em notas_10_disponiveis | |
notas_10_disponiveis = 10 | |
# quantidade de notas de 05 disponível em notas_05_disponiveis | |
notas_05_disponiveis = 10 | |
# pedir valor e armazenar em valor como inteiro | |
valor = int(raw_input('Valor: ')) | |
# fazer a divisão inteira do valor por 50 para saber quantas notas de 50 pode-se usar e armazenar em notas_50_possiveis | |
notas_50_possiveis = valor // 50 | |
# se notas_50_possiveis maior que notas_50_disponiveis, fazer notas_50_utilizadas igual a notas_50_disponiveis, senão igual a notas_50_possiveis | |
if notas_50_possiveis > notas_50_disponiveis: | |
notas_50_utilizadas = notas_50_disponiveis | |
else: | |
notas_50_utilizadas = notas_50_possiveis | |
# calcular o restante do valor fazendo o valor menos notas_50_utilizadas vezes 50 e armazenar este resultado em resto_50 | |
resto_50 = valor - notas_50_utilizadas * 50 | |
# fazer a divisão inteira do resto_50 por 20 para saber quantas notas de 20 pode-se usar e armazenar em notas_20_possiveis | |
notas_20_possiveis = resto_50 // 20 | |
# se notas_20_possiveis maior que notas_20_disponiveis, fazer notas_20_utilizadas igual a notas_20_disponiveis, senão igual a notas_20_possiveis | |
if notas_20_possiveis > notas_20_disponiveis: | |
notas_20_utilizadas = notas_20_disponiveis | |
else: | |
notas_20_utilizadas = notas_20_possiveis | |
# calcular o restante do valor fazendo o resto_50 menos notas_20_utilizadas vezes 20 e armazenar este resultado em resto_20 | |
resto_20 = resto_50 - notas_20_utilizadas * 20 | |
# fazer a divisão inteira do resto_20 por 10 para saber quantas notas de 10 pode-se usar e armazenar em notas_10_possiveis | |
notas_10_possiveis = resto_20 // 10 | |
# se notas_10_possiveis maior que notas_10_disponiveis, fazer notas_10_utilizadas igual a notas_10_disponiveis, senão igual a notas_10_possiveis | |
if notas_10_possiveis > notas_10_disponiveis: | |
notas_10_utilizadas = notas_10_disponiveis | |
else: | |
notas_10_utilizadas = notas_10_possiveis | |
# calcular o restante do valor fazendo o resto_20 menos notas_10_utilizadas vezes 10 e armazenar este resultado em resto_10 | |
resto_10 = resto_20 - notas_10_utilizadas * 10 | |
# fazer a divisão inteira do resto_10 por 5 para saber quantas notas de 5 pode-se usar e armazenar em notas_5_possiveis | |
notas_05_possiveis = resto_10 // 5 | |
# se notas_5_possiveis maior que notas_5_disponiveis, então não tem caixa suficiente, senão notas_5_utilizadas igual a notas_5_possiveis | |
if notas_05_possiveis > notas_05_disponiveis: | |
print "Não há caixa suficiente para este valor!" | |
sys.exit(0) # Termina o programa | |
else: | |
notas_05_utilizadas = notas_05_possiveis | |
# calcular o restante do valor fazendo o resto_10 menos notas_5_utilizadas vezes 5 e armazenar este resultado em resto_5 | |
resto_05 = resto_10 - notas_05_utilizadas * 5 | |
#Se resto_5 não for zero, então o valor não é múltiplo de 5 e não pode ser sacado | |
if resto_05 > 0: | |
print "Não há notas no caixa para compor este valor!" | |
sys.exit(0) # Termina o programa | |
#Agora exibir: | |
#<notas_50_utilizadas> x 50 + <notas_20_utilizadas> x 20 + <notas_10_utilizadas> x 10 + <notas_05_utilizadas> x 5 | |
print notas_50_utilizadas, 'x 50 +', notas_20_utilizadas, 'x 20 +', notas_10_utilizadas, 'x 10 +', notas_05_utilizadas, 'x 5' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment