multimidia, python, iniciaçao a programacao, ideologia e outros temas livres
Programando em Python: contador de troco
28 de Agosto de 2008, 0:00 - sem comentários aindaNos últimos meses, tenho sentido vontade de me aventurar pelo mundo da programação e do desenvolvimento web, sendo assim, comecei a estudar lógica de programação e Python, uma linguagem de fácil aprendizado e com muitos recursos.
Hoje eu resolvi praticar um pouco e escrevi um programa para calcular troco e mostrar como entregá-lo com o menor número de notas possíveis.
Veja como ficou o código:
#!/bin/python
# -*- coding: iso-8859-15 -*-
#contador de trocopreco = int(raw_input(’Digite o valor da compra: ‘))
dinheiro = int(raw_input(’Digite a quantia de dinheiro entregue: ‘))troco = dinheiro - preco
if troco > 0:
print ‘Valor do troco: R$ %s.’ % troco
for p in 100, 50, 20, 10, 5, 2, 1:
if troco >= p:
n = troco/p
r = troco - p*n
print ‘: %s nota(s) de R$ %s.’ % (n, p)
troco = relse:
print ‘O dinheiro entregue é menor do que o valor da compra.’
Código comentado:
preco = int(raw_input(’Digite o valor da compra: ‘))
O comanto raw_input(’ ‘) recebe os dados digitados pelo usuário. Como estes dados são considerados como string, ou seja, apenas uma seqüência de caracteres, é necessário transformá-los em número para que, assim, podermos efetuar operações matemáticas com esses dados. Preferi usar o comando int(), o qual converte os dados em números inteiros. Por fim, o número é armazenado na variável preco.
O mesmo se dá na linha seguinte para a variável dinheiro. O print da linha seguinte apenas gera uma linha em branco durante a execução do programa. Já na linha:
troco = dinheiro - preco
calculamos o valor do troco.
if troco > 0:
Para que o troco exista, ele tem que ser maior do que zero (óbvio!).
Se o troco for menor que zero, o programa pula para a linha:
else:
print ‘O dinheiro entregue é menor do que o valor da compra.’
a qual avisa o usuário que o valor do dinheiro é menor do que o das despesas.
Se o troco for maior do que zero, o programa vai mostrar o valor do troco:
print ‘Valor do troco: R$ %s.’ % troco
No bloco seguinte, eu usei o seguinte raciocínio: o cliente só vai receber uma nota de 100 se o troco for maior que 100 e assim sucessivamente com todas as notas (100, 50, 20, 10, 5, 2 e 1). O comando for vai fazer a comparação com o valor de cada nota.
if troco >= p:
Se o troco é maior ou igual a 100, então o número de notas de 100 que o cliente vai receber é o valor do troco dividido por 100 (n = troco/p). Nesse caso, n sempre vai ser um número inteiro em razão do uso do comando int() no começo do programa. A operação envolvendo dois número inteiros em Python, sempre vai resultar num número inteiro. Então, se o valor do troco for R$ 107, n será igual a 1.
Daí eu uso r = troco - p*n pra calcular o resto da operação. O resto (r) é igual ao troco menos o valor da nota múltiplicado pela quantidade destas. Eu não precisei usar parênteses no p*n devido a uma propriedade do Python de efetuar a multiplicação antes da subtração.
print ‘: %s nota(s) de R$ %s.’ % (n, p)
Mostra a quantidade de notas de 100 que o cliente tem direito. Por fim, temos a linha:
troco = r
que substitui o valor da variável troco pelo valor de r. A partir daí, o programa vai repetir essas operações para todos os valores presentes na linha for p in 100, 50, 20, 10, 5, 2, 1:
É isso… depois vou tentar fazer o programa calcular os centavos do troco também. Qualquer erro ou sugestão de melhorias no algoritmo, deixem comentário.
Obs.: Pra executar o programa, basta salvá-lo como arquivo de texto e digitar no terminal: python arquivo.py
Manuais que eu utilizei: Aprenda a Programar do Luciano Ramalho e Tutorial Python.
Related posts: