Arquivos Mensais: Agosto 2008

Nos ú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 troco

preco = int(raw_input(‘Digite o valor da compra: ‘))
dinheiro = int(raw_input(‘Digite a quantia de dinheiro entregue: ‘))
print

troco = dinheiro – preco

if troco > 0:

print ‘Valor do troco: R$ %s.’ % troco
print

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 = r

else:

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.

A Plebe Rude é uma das minhas bandas preferidas do Rock Nacional. Letras politizadas e revolta social sempre foi o foco da banda, a qual nunca teve boas relações com gravadoras e com os meios de comunicação. Por isso, acabou sendo pouco conhecida pelo grande público.

“Vote em branco” foi composta em 1980, mas só foi registrada em disco no ano de 2006. A execução da música num show em Patos de Minas no ano de 1981 levou os integrantes da Plebe Rude a serem presos. Um detalhe: na época, o povo ainda não tinha direito de votar nas eleições presidenciais.

Algumas razões me levam a votar nulo:

1. Descrença na democracia representativa: depois que elegemos os governantes, nosso poder de intervenção é quase nulo;

2. Falta de esperança no sistema político atual: campanhas custam milhões; depois de eleitos, os senadores e deputados vendem votos  em troca de cargos e verbas;

3. O candidato menos ruim não é bom e eu tenho o direito de dizer não.

Visite também o site da Plebe Rude, o flickr e o you tube da banda e o blog do baixista André X.