Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

wille.blog.br

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

multimidia, python, iniciaçao a programacao, ideologia e outros temas livres


Calculando fatorial em Python

27 de Setembro de 2008, 0:00, por Software Livre Brasil - 1Um comentário

Meu irmão tá cursando o primeiro período de Ciência da Computação na UESB, então estamos sempre batendo um papo sobre programação e compartilhando o que estamos aprendendo. Essa noite. ele comentou que quebrou a cabeça até descobrir como escrever um código para calcular o fatorial de um número inserido pelo usuário.

Eu também passei horas tentando descobrir o caminho. O mais surpreendente é que, no final, o código é muito simples…

#!/bin/python
#calculador de fatorial

n = int(raw_input(’Digite um numero: ‘))

resultado = 1

lista = range(1,n+1)

for x in lista:

resultado = x * resultado

print ‘%s! = %s’ % (n, resultado)

O fatorial de um número é ele multiplicado por todos os números positivos e menores que ele. Exemplo 5! = 5 x 4 x 3 x 2 x 1.

A lógica do programa está em gerar uma lista que começa no número 1 e vai até o número digitado pelo usuário [ range(1,n+1) ]. O range(1,6) por exemplo, gera a lista [1, 2, 3, 4, 5]. Antes disso, eu havia atribuído o valor 1 à variável ‘resultado’. Em seguida, cada número da lista é multiplicado pelo resultado da multiplicação anterior.

A última linha apenas imprime o resultado do fatorial.

Se alguém tiver mais sugestões de bons desafios de programação, deixem comentários.

Related posts:

  1. Programando em Python: contador de troco
  2. os 10+ da linha de comando!
  3. Rituais geeks


Minhas impressões do Arch Linux e do KDE 4.1

25 de Setembro de 2008, 0:00, por Software Livre Brasil - 0sem comentários ainda

Já estou usando Arch Linux (versão 64 bits) há mais de um mês. Antes disso, eu estava utilizando o Slackware, mas, influenciado pelo relato do Liquuid, resolvi testar o Arch.

A instalação do Arch é bem parecida com a instalação do Slack, a maior diferença é que o disco de instalação do Arch tem apenas 380 MB e contém apenas a base mínima de um sistema GNU/Linux. Com isso, a pós-instalação dá um pouco de trabalho, é necessário consultar alguns tutoriais pra não ficar perdido depois de instalar a base do sistema. Tive problemas também para configurar o pppd (tenho uma conexão da vivo em que é necessário usar o pppd para conectar). Por sorte, eu estava com um notebook de um amigo em casa, daí copiei os arquivos de configuração do pppd de lá e consegui conectar à internet.

Gostei muito do pacman, o gerenciador de pacotes do Arch Linux, ele resolve dependências de maneira muito eficaz e possui o conceito de grupos de pacotes. Pra instalar o X, por exemplo, que é composto de dezenas de pacotes, basta digitar pacman -S xorg. Inicialmente o pacman é bastante rápido, porém depois de instalar algumas dezenas de pacotes, o desempenho dele fica mais lento.

O Arch é bastante estável e rápido. A inicialização do sistema é feita em cerca de 30 segundos e não cheguei a ter problemas com travamentos. Apesar de seguir a filosofia de simplicidade do Slackware, achei o Arch bem mais amigável e prático. O Slackware parece primitivo perto do Arch Linux. Quanto ao uso de um sistema 64 bits, os únicos problemas que tive foram com o flash e com o java. O flash tá funcionando, mas às vezes não renderiza corretamente certos sites. Já o java da Sun, não roda o aplicativo do Banco do Brasil.

KDE 4.1

Instalei o KDE 4.1 no Arch, utilizando os pacotes do kdemod, os quais permitem instalar o kde de forma totalmente modular. Na versão 4.1.0, achei alguns aplicativos como o Okular (o novo leitor de PDF), o Dolphin e o Konqueror muito pesados, porém após atualizar pra 4.1.1, notei um grande avanço nessa questão e a velocidade destes aplicativos não mais prejudicam a usabilidade. O KDE 4 também já está bastante estável, o maior problema que senti é que algumas coisas ainda não estão configuráveis. Não consegui, por exemplo, alterar a cor da barra inferior da área de trabalho.

Alguns tutoriais que me ajudaram na instalação do Arch:

Guia de instalação

Pós-Instalação do Arch Linux

Related posts:

  1. Instalando GNU/Linux num macbook
  2. "Caminhando por caminhos livres"
  3. Impressões de Cachoeira


Programando em Python: contador de troco

28 de Agosto de 2008, 0:00, por Software Livre Brasil - 0sem comentários ainda

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.

Related posts:

  1. Calculando fatorial em Python
  2. os 10+ da linha de comando!


Tags deste artigo: video multimidia python ideologia liberdade programacao archlinux grafico