terça-feira, 30 de janeiro de 2007

Aula 9: Condicionais na prática

Dando continuidade a aula anterior, hoje iremos colocar em prática e ver como fariamos para programar nosso robozinho que coloca pasta de dente na escova (quanta utilidade ein?).

primeiramente vamos relembrar como tinha ficado nosso algoritmo final:
Pegue o tubo de pasta

Caso o tubo de pasta esteja vazio
Apite

Caso contrário
Caso a tampa esteja fechada:
Abra a tampa
Segure a tampa

Coloque um pouco de pasta na escova

Caso esteja segurando a tampa
Feche a tampa


Agora que já temos nosso algorítmo precisamos saber como fazer estas condições em Python.

Cada condição poderá ser interpretada de várias maneiras e tudo depende de como o programador pensa, por exemplo, poderíamos ter uma variável com o nome status_do_tubo e colocar um valor nela, cheio ou vazio, ou de 0 a 10 dependendo de quanta pasta tem dentro, ou poderiamos ter uma variável booleana tubo_vazio com 2 valores possíveis verdadeiro ou falso.

Caso você já tenha olhado para o código fonte de alguma linguagem já deve ter visto as palavras, if e else, estas palavras traduzidas para o português significam respectivamente: se e senão.

Sendo assim, a frase "Caso o tubo de pasta esteja vazio" que escrevemos em nosso algoritmo pode ser substituida por: "se o tubo de pasta estiver vazio", e onde escrevemos, "Caso contrário" poderá ser substituído por "Senão", sendo assim você já deve ter uma idéia de onde usaremos o if e else em nosso programa.

Os comandos if e else entendem apenas 2 coisas, verdadeiro ou falso, se for verdadeiro o que está dentro do bloco if será executado, se for falso ele executará o que está dentro do else, abra o IDLE e teste o código abaixo:
#!/us/bin/env python
if 1 == 1:
print "1 é igual a 1"
else:
print "1 é não é igual a 1"

if 1 != 1:
print "1 é diferente de 1"
else:
print "1 não é diferente 1"


A expressão if entende apenas verdadeiro ou falso, portanto deveremos usar expressões booleanas, no caso do código acima, 1 == 1 (1 igual a 1) retornará verdadeiro, portanto o que está dentro do if que é "print "1 é igual a 1"" será executado e o que está dentro do else não, e no caso do segundo if, 1 != 1 (1 é diferente de 1) retornará falso, portanto somente o que está abaixo do else será executado.

Note também que no código acima, tudo o que está depois do if ou do else está alguns espaços para a direita, isto é necessário pois o python controla o que está dentrou o fora do bloco if a partir destes espaços, sendo assim quando fizermos um if ou else, sempre deveremos colocar o comandos que será executados caso aquela condição seja satisfeita alguns espaços a frente, caso queremos colocar várias linhas dentro do if ou else, apenas precisamos deixar as linhas com o mesmo número de espaços que a primeira linha após o if ou else, por exemplo, se você deu 2 espaços na primeira linha após o if, tem que dar 2 espaços nas demais também, ou o python dará erro na hora da execução.

Temos também um outro comando chamado else if (elif em Python) o else if nos permite testar mais que 2 condições, por exemplo, temos que comparar 2 números e imprimir na tela se eles são iguais, ou se o primeiro número é maior ou menor, este programa ficaria mais ou menos assim:
#!/us/bin/env python
a = 3
b = 2
if a == b:
print "os números são iguais!"
elif a > b:
print "O primeiro é maior que o segundo"
else:
print "O segundo é maior que o primeiro"


Troque os valores de a e b no programa acima por 1 e 1, depois 1 e 2 e depois 2 e 1 para ver o que será impresso em sua tela.

A idéia desta aula era fazer o programa da aula anterior na prática, mas eu preferi explicar um pouco mais de detalhes para que você consiga enteder direitinho o que está acontecendo antes de fazer o programa, portando o programa será adiado para a próxima aula.

Caso tenha dúvidas, sugestões ou correções, por favor, comente!

quinta-feira, 25 de janeiro de 2007

Aula 8: Condicionais

Hoje iremos aprender uma das coisas mais importantes e mais utilizadas na programação, condicionais.

Condicionais servem para que você faça seu programa tomar um determinado rumo caso alguma condição seja satisfeita, vou dar um exemplo baseado em nosso cotidiano, imagine as ações que são necessárias quando você vai escovar os dentes, você tem que pegar a pasta, pegar a escova, colocar a pasta na escova e começar a escovar os dentes, tudo parece muito simples mas existem vários fatores que fazemos automáticamente sem pensar, imagine agora como fariamos um robô que conseguisse pegar o tubo de pasta de dente e colocar pasta na escova, como seriam as ações deste robô?

pegue o tubo de pasta
abra a tampa
coloque um pouco na escova
feche a tampa


Tudo parece simples, mas eu vou complicar sua vida, o que este robô fará caso a pasta já esteja destampada? Ele irá pegar o tubo e tentar abrir a tampa, ou ele vai ficar girando em falso ou vai dar algum problema.

Isto parece óbvio nós, caso a tampa esteja aberta não execute a ação de abrir a tampa, mas para o robô não é, pois ele não pensa como nós.

E é neste caso que entram as condicionais, para escrever este programa do robô, precisamos utilizar condicionais para que ele execute as ações dependendo das condições do ambiente, vamos reescrever as ações do robô mas agora adicionando condições:

Pegue o tubo de pasta

Caso a tampa esteja fechada
Abra a tampa
Segure a tampa

Coloque um pouco de pasta na escova

Caso esteja segurando a tampa
Feche a tampa


Note que a ação "abra a tampa" está com alguns espaços antes da frase, eu coloquei estes espaços para ilustrar que esta ação será apenas executada caso a condição da linha anterior seja satisfeita, em programação estes espaço antes da palavra é chama de identação, e como veremos na próxima aula ela é muito importante no Python!

Agora vamos dar uma incrementadinha neste programa, vamos supor que você queira que seu robô apite quando o tubo de pasta esteja vazio e não coloque pasta na escova, como faríamos isso?

Novamente o tubo estar vazio é uma condição, vamos ver como ficaria:

Pegue o tubo de pasta

Caso o tubo de pasta esteja vazio
Apite

Caso contrário
Caso a tampa esteja fechada:
Abra a tampa
Segure a tampa

Coloque um pouco de pasta na escova

Caso esteja segurando a tampa
Feche a tampa


Note que o robô só funcionará caso o tubo de pasta não esteja vazio, ele testará está vazio? não, então executará a parte que está dentro do "Caso contrário" e caso a tampa esteja aberta ele apenas colocará pasta na escova e não abrirá a tampa, nem segurará a tampa e conseguentemente não fechará a tampa.

Na próxima aula iremos fazer este programa na prática usando Python!

Esta aula foi totalmente teórica, mas ela será muito importante, portando caso tenha dúvidas pergunte, caso queira fazer alguma sugestão ou correção, comente!

quarta-feira, 24 de janeiro de 2007

Aula 7: Trabalhando com strings e tipos numéricos

Hoje iremos aprender como fazer o famoso programa que calcula a média entre 2 números.

Calma, muita calma nessa hora, vocês devem estar pensando, "lá vem mais uma aula inútil", mas antes de chegar a conclusões, leia a aula, eu posso garantir que você irá aprender várias coisas novas com este simples programinha.

Já que a aula hoje é mais prática, vamos direto ao assunto, abra o IDLE em modo editor e digite o seguinte código:
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
a = raw_input("Digite um numero: ")
b = raw_input("Digite outro numero: ")
print "A média entre esses numeros é:"
print (a + b) / 2

Note que já tem várias coisas novas, a segunda linha diz em qual encoding está nosso texto, ela não é obrigatória, mas o idle irá chiar caso você utilize algum acento e não coloque esta linha.

Outra novidade neste programa é a linha:
a = raw_input("Digite um numero: ")

Esta linha mostra a mensagem "Digite um numero: " na tela e posiciona o cursor após a frase para que o usuário digite algum texto e após o usuário teclar Enter este texto vai para a variável "a", note a variável e o sinal de "=" antes da palavra raw_input().

Você deve ter notado também que aparece a frase digite um número, mas é possível digitar qualquer texto e isto causará um erro, sendo assim rode o programa e digite apenas 2 números inteiros, como por exemplo: 10 e 15.

Caso você tenha feito tudo certo, você deverá ter recebido este erro:
TypeError: unsupported operand type(s) for /: 'str' and 'int'


Calma, o erro foi intencional e servirá para explicar uma coisa.

Por mais que você digite apenas números no terminal, a função raw_input sempre jogará estes números em uma variável do tipo string, ou seja 10 neste caso não é um inteiro e sim uma string e foi por isso que você recebeu o erro, pois você tentou somar duas strings, vamos fazer outro teste.

Apague a última linha do seu programa e adicione o seguinte conteúdo:
print a + b

Rode seu programa, digite 10 e 15 (ou outro número) e note o resultado:
1015

Entendeu como funciona? Se você utilizar o sinal de + (mais) para somar 2 strings, nas verdade você não está somando elas, você está concatenando, ou seja, juntando uma com a outra.

Agora que você já deve ter entendido porque obtemos aquele erro, vou explicar o que é preciso para corrigir o programa.

Você já deve ter feito alguma conta com unidades e/ou medidas diferentes, como por exemplo somar 300 minutos com 2 horas e saber quantas horas são, ou somar 1650ml com 2 litros e saber quantos litros são, para qualquer conta deste tipo é necessário deixar os 2 valores na mesma medida, e o mesmo acontece em programação.

Para que você possa trabalhar com números, você primeiro precisa converter os valores para um tipo númerico pois é impossivel somar a string "1" com o número 1, sendo assim antes de fazer qualquer conta precisaremos converter os números digitados para inteiro, vamos corrigir nosso programa para ver como funciona.

Apague novamente a última linha do programa e digite o seguinte no lugar:
print ((int(a) + int(b)) /2)

Seu programa deverá estar assim:
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
a = raw_input("Digite um numero: ")
b = raw_input("Digite outro numero: ")
print "A média entre esses numeros é:"
print ((int(a) + int(b)) /2)

Rode este programa e digite os números 10 e 15 e veja o que acontece.

Caso esteja tudo correto, você deverá obter o resultado 12 (caso queira tentar com mais números fique a vontade, apenas rode o programa novamente), mas tem algo errado não tem?

A média entre 10 e 15 é 12,5 e não apenas 12, mas porque então obtemos 12?

Simples, quanto utilizamos int(a) e int(b), convertemos o valor da variável "a" e "b" para inteiro, somamos os 2 numeros, o que resulta em outro inteiro e depois dividimos por 2, e em Python, uma divisão de um inteiro por outro inteiro resulta um número inteiro, sendo assim precisaremos modificar nosso programa novamente.

Temos várias maneiras de fazer esta conversão, Adicione as seguintes linhas no final de seu arquivo:
print ((int(a) + int(b)) /2.0)

Imprimirá 12,5 pois colocando 2.0 no lugar de 2, o Python entende como sendo uma divisão por um decimal (float) e retorna um númnero decimal.
print float((int(a) + int(b))) /2

Também retornará 12,5 pois somamos os números, depois convertemos o resultado para float, sendo assim o Python retorna um float quanto dividimos um float por um inteiro.
print (float(a) + float(b)) /2

Assim também funciona, pois a soma de 2 floats retorna um float e dividindo um float por um inteiro um float é retornado.

Confesse agora, você nunca imaginou que um programinha simples que apenas calcula a média entre 2 números pudesse ser tão complicado e ter tantos conceitos.

Caso tenha alguma dúvida, sugestão ou correção, por favor comente!

terça-feira, 23 de janeiro de 2007

Aula 6: Operadores lógicos e aritméticos

Todos nós devemos saber resolver a expressão 1 + 1 não sabemos? E todos sabem que o resultado é 3 (brincadeira ok?), mas nem todos sabemos que os números desta expressão são chamados operandos e que o sinal de + (mais) é chamado de operator, portanto você já deve ter uma idéia de outros operadores, operadores como + e - são chamamos de operadores aritméticos, pois são utilizados para resolver equações aritméticas.

Em programação também temos outro tipo de operadores chamados operadores lógicos, são chamados lógicos pois são utilizados em expressões que ou retornam verdadeiro, ou falso, abaixo segue uma tabela com os principais operadores aritméticos e lógicos utilizados em programação.

Aritméticos:
**      Potenciação
+x, -x Positivo, Negativo
*, /, % Multiplicação, Divisão e Resto
+, - Adição e subtração

Todos devem conhecer pelo menos a maioria dos operadores acima o único que deve ser um pouco diferente é o resto (%), ele retorna o resto de uma divisão, por exemplo: 3 % 2 retorna 1 pois 3 dividido por 2 não da exato, da 1 e sobra 1, o operador % retorna o resto da divisão.

Os operadores acima são executados na ordem de cima pra baixo (ordem da tabela acima,), sendo assim a expressão:
1 + 3 * 2

É executada da seguinte forma, primeiro 3 * 2 que resultará em 6 e depois 6 + 1 que resultará em 7, faça o teste abra um shell do IDLE e digite, 1 + 3 * 2.

Agora, como eu sou um cara gente boa, não vou fazer vocês ficarem decorando a ordem dos operadores (como alguns professores inúteis que nunca programaram na vida fazem), existe um meio de você ditar a ordem em que as expressões são executadas, utilizando parenteses, como em matemática, utilizando parênteses a expressão sempre será executada de dentro pra fora, ou seja, os parênteses mais internos serão executados primeiro, sendo assim caso queiramos que a soma seja executada antes da multiplicação deveremos usar:
(1 + 3) * 2

Digite o código acima no Python e veja o que acontece.

Lógicos:
or                   Operador boleano OU
and Operador boleano E
not Operador boleano NÃO
<, <=, >, >=, !=, == Comparações


Operadores lógicos, diferente dos operadores aritméticos, nem todos sabem como funcionam, por isso vou explicar um pouco sobre operações lógicas.

Como foi explicado na aula anterior uma variável lógica só pode ter 2 valores (verdadeiro ou falso) os operadores lógicos (booleanos) servem justamente para fazer equações com tipo lógicos e eles sempre retornam ou verdadeiro ou falso, por exemplo, a expressão:
5 > 3

A expressão acima retorna verdadeiro, pois é verdade que 5 é maior que 3, agora algo um pouco mais complexo:
5 > 3 ou 3 > 4

A expressão acima retornaria verdadeiro também, pois o operador ou (or) retorna verdade caso uma das duas operações seja verdadeira, parece um pouco complicado, mas para ajudar vamos fazer abaixo o que chamamos de tabela verdade.

As expressões abaixo retorma falso:
10 != 10 -> 10 é diferente de 10? não!
10 > 10 -> 10 é maior que 10? não!
10 == 11 -> 10 é igual a 11? não!


Como aprendemos anteriormente verdadeiro ou falso para o computador significa 1 (verdadeiro) e 0 (falso) ou seja, ligado (1) e desligado (0), para avaliar expressões lógicas o computador ou multiplica ou soma, dependendo do operador:

Operador AND (E)
1 * 0 = 0 -> falso
0 * 1 = 0 -> falso
1 * 1 = 1 -> verdadeiro
0 * 0 = 0 -> falso

Ou seja, para o operador E (and) retornar verdadeiro, ambas as variáveis lógicas precisam ser verdadeiras.

Operador OR (OU)
1 + 0 = 0 -> verdadeiro
0 + 1 = 0 -> verdadeiro
1 + 1 = 2 -> verdadeiro
0 + 0 = 0 -> falso

No caso do operador OU (OR) é necessário apenas uma variável ser verdadeira (ou uma ou outra), a expressão só será falsa se as duas variáveis foram falsas o que é exatamente o contrário do E (AND)

Operador NOT (Não)
O operador NOT (Não) apenas inverte o valor da variável, ou seja Não Verdade é Falso e Não Falso é Verdade, como vemos abaixo:
not 1 -> 0
not 0 -> 1


Existem outros operadores tanto aritméticos como lógicos, mas não os veremos nesta aula pois esta aula serve apenas como uma introdução aos principais operadores, caso queria ler mais sobre operadores leia esta página.

Como de costume, caso tenha alguma dúvida, sugestão ou correção, comente!

segunda-feira, 22 de janeiro de 2007

Aula 5: O que são e como usar variáveis

Variáveis são uma das coisas mais utilizadas em programação, basicamente uma variável guarda um valor em memória e pode ser modificada, em programação existem vários tipos de variáveis, e hoje iremos aprender quais são e como usar estes tipos em C# e Python.

Tipos básicos de variáveis:

Existem vários tipos de variáveis, abaixo segue uma explicação dos tipos básicos de variáveis (independente da linguagem):

Lógico (boolean): Pode ter apenas 2 valores, verdadeiro ou falso. Ex: true, false, 0, 1.
Caractere (char): Armazena apenas um caractere (letra). Ex: 'A'.
Texto (string): Armazena vários caracteres. Ex: "Isto é uma string".
Inteiro (integer): Armazena números inteiros. Ex: -10, 10, 5000, -30000, etc.
Decimal (decimal, float, double, etc): Armazena números decimais.Ex: 0,01 - 10,0001.

Cada linguagem de programação as trata de um jeito, algumas como o C# é preciso declarar a váriavel já com seu devido tipo, outras como o Python a declaração ocorre automáticamente quando você grava o primeiro valor na variável, outras como o PHP não tem um tipo definido para a variável, o interpretador é que controla tudo.

Existem vantagens e desvantagens em ter o que chamamos de tipos forte e fraco, forte é quando o compilador ou interpretador obriga o usuário e declarar o tipo, fraco é quando o compilador ou interpretador controla automáticamente, para usuários iniciantes a idéia de não ter que declarar e converter tipos de variáveis é tentadora, mas na prática só serve para deixar o usuário mau acostumado e a fazê-lo escrever código inseguro.

Nome das variáveis:

Ambas as linguagens que estudaremos aqui possuem basicamente as mesmas regras para declaração de variáveis, todas as variáveis deverão começar com uma letra ou underline e podem conter apenas letras e números, e também evite usar letras com acento, cedilha, etc, neste caso os seguintes nomes de variáveis são válidos:

_nome, nome1, Nome, NOME, n0m3, etc.

E os seguintes nomes são inválidos:
1nome, $nome, %nome, nome$, etc.

Note também que tanto C# quanto Python são case sensitive, sendo assim a variável "Nome" é diferente de "nome".


Agora veremos como funcionam as declarações de variáveis em Python e C#.

Variáveis em Python:

Para entender melhor como as variáveis funcionam vamos primeiro ver como declarar e utilizar uma variável em Python, para isso vamos utilizar um dos melhores recursos do Python, o terminal interativo.

Abra o IDLE, e caso seu IDLE esteja configurado como na aula anterior para abir em modo de edição, clique em Run -> Shell, caso ja tenha um shell aberto apenas prossiga.

Vamos primeiro ver como funciona uma variável lógica no python, digite no shell, note que você precisa teclar Enter no fim de cada comando, não ficarei dizendo para teclar Enter a cada comando, acostume-se.
a = True

Obs. Caso digite "true" ao invés de "True", você receberá um erro, pois Python é case sensitive, ou seja, "True" é diferente de "true" e "a" é diferente de "A"
Com este comando acabamos de declarar a variável a como uma variável do tipo lógico e também setamos seu valor como Verdadeiro, para ver se esta variável é mesmo do tipo lógico, digite:
type(a)

Seu shell deverá estar parecido com o seguinte:

>>> a = True
>>> type(a)
<type 'bool'>

Agora digite as seguintes linhas:
b = 'string'
c = 1
d = 1.0

E veja o tipo de cada variável digitando:
type(b)
type(c)
type(d)

Seu terminal deverá estar parecido com isto:

>>> b = 'string'
>>> c = 1
>>> d = 1.0
>>> type(b)
<type 'str'>
>>> type(c)
<type 'int'>
>>> type(d)
<type 'float'>

Agora digite:
b + c

Você deverá receber o seguinte erro:

Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
b + c
TypeError: cannot concatenate 'str' and 'int' objects

Você recebeu este erro pois não é possível somar uma variável do tipo inteiro (int) com uma variável to tipo texto (string), algumas linguagens permitem este tipo de coisa (fuja delas), mas geralmente você precisará converter as duas variáveis para o mesmo tipo.

Agora digite:
print b

Note que apareceu o texto "string" em seu terminal, pois quando você utiliza: print b você está dizendo ao compilador: Imprima o valor da variável b na tela, e o valor da variável b no nosso caso é o texto "string", faça mais um teste, digite:
b = 'novo valor de string'
print b

Note que agora mudamos o valor de b e imprimimos o novo valor na tela.

Caso queira se aprofundar mais no assunto, de uma olhada nesta página.

Na próxima aula aprenderemos o que são e como utilizar operadores aritméticos e lógicos e também como utilizar estas variáveis para fazer contas, entre outras coisas.

Como de costume, se tiver dúvidas, sugestões ou correções, comente!

sábado, 20 de janeiro de 2007

Aula 4: criando seu primeiro programa em Python

Na Aula Anterior ensinamos como instalar o Python.

Nesta aula aprenderemos como fazer nosso primeiro programa, o famoso Hello World nas duas linguagens, diz a lenda que aquele que consegue fazer o Hello World em uma linguagem conseguirá fazer qualquer coisa nela, será que você consegue?

Primeiro programa em Python: Hello World

Primeiramente iremos dar uma configuradinha básica em nosso ambiente de trabalho, para isso abra o IDLE clicando em Iniciar -> Programas -> Python 2.5 -> IDLE.

Ao iniciar o IDLE pela primeira vez, ele abre um Shell (terminal), logo iremos brincar um pouco com ele mas por enquanto vamos mudar a configuração para que o IDLE inicie como editor de textos.

Clique em Options -> Configure Idle -> General e marque as opções: Open in Edit Window e No Prompt, feito isso clique em OK, feche o IDLE e abra-o novamente.

Agora toda vez que abrirmos o IDLE ele iniciará com um arquivo de texto em branco.

Digite o seguinte código:
#!/usr/bin/env python
print "Hello World"

Após digitar este código aperte F5, uma caixa de mensagens aparecerá dizendo que você precisa salvar o arquivo, clique OK e salve o arquivo em alguma pasta, após salvar o idle automáticamente abrirá o Shell e Mostrará o resultado de seu primeiro programa, sua tela deverá estar assim:



Rodando Python no terminal:

Existe outra forma de rodar programas em python, a partir de um terminal, caso esteja no windows faça o seguinte:

Clique em Iniciar -> Executar e digite: cmd, um terminal se abrirá, digite o seguinte:
path=%path%;c:\python25

Note que c:\python25 é a pasta onde você instalou o python.

Feito isso, entre na pasta onde você salvou o arquivo hello.py (utilize o comando: cd c:\Nome\da\Pasta\Que\Voce\Salvou\O\Arquivo\), (sempre lembrando que este programa poderia ter sido feito no bloco de notas por exemplo) e digite:
python hello.py

A frase Hello World deverá aparecer na sua tela. Resumindo:
path=%path%;c:\python25
cd c:\aula
python hello.py


Usuários de Linux


Caso você utilize linux, crie um novo arquivo de texto em seu editor preferido com o conteúdo acima e salve o arquivo com o nome hello.py.

No linux você tem duas opções para rodar o programa, entrando na pasta e digitando no terminal:
python hello.py

Ou dando permissão de execução para o arquivo e rodando-o como um executável:
chmod +x hello.py
./hello.py


Caso você tenha conseguido fazer este programa rodar, parabéns você tem futuro como programador, caso contrário, por favor procure outra vocação.

Como este é nosso primeiro programa irei explicar como as aulas práticas funcionarão a partir de agora, como agora você já sabe criar um arquivo utilizando o idle e como rodar (F5 ou terminal) eu não repetirei estes passos na próxima aula, apenas direi "crie um arquivo novo, digite o seguinte código e rode o programa".

E também todo código será explicado linha a linha, que é o que eu farei com o programa acima:

Explicação do programa:

O código #!/usr/bin/env python existirá em TODOS os nossos programas em python, este código serve para dizer que este arquivo é um script Python e também diz onde está o interpretador, por padrão sempre utilize: /usr/bin/env python.

print "Hello World": Esta linha diz ao Python "Mostre a frase "Hello world" na tela, note que Hello World está entre aspas.

Este programa é tão simples que qualquer explicação serve somente para encher linguiça, por isso vou parar por aqui, pois o propósito desta aula foi mais ensinar como rodar o programa e ver o resultado, na próxima aula aprenderemos um pouco mais sobre a sintaxe do Python e o que são variáveis.

Caso tenha alguma dúvida, sugestão ou queira corrigir algum erro, por favor comente!

sexta-feira, 19 de janeiro de 2007

Aula 3: Configurando o ambiente de trabalho

Nesta aula iremos aprender o que será necessário instalar e configurar para podermos programar em Python.

Primeiramente vamos ao que será necessário fazer download, sempre lembrando que todas as ferramentas são gratuítas.

Usuários de Windows XP:

Abaixo link para o download:

Python 2.5

O pacote vem com o interpretador Python e um Editor de textos e Shell chamado IDLE.

Basta utilizar o instalador e como costume clicar em next..next..next.. finish :)

Caso queira dar uma espiada no IDLE, ele deve estar no menu Iniciar -> Programas -> Python25 -> IDLE.


Usuários de Linux:

Se você usa linux, você já deve ter python instalado, então será ncessário apenas instalar o idle, para isso se você utiliza Ubuntu ou Debian apenas abra um terminal e digite:
sudo apt-get install idle

Se você utiliza outra distribuição pode baixar o idle aqui.

Obs. A instalação do IDLE é opcional, pois você pode utilizar qualquer editor de texto do linux, como por exemplo, gedit, vim, emacs, kate, etc.

Na próxima aula aprenderemos a fazer nosso primeiro programa em Python.

quinta-feira, 18 de janeiro de 2007

Aula 2: O que eu preciso para começar a programar?

Agora que você já sabe o básico sobre programação nós vamos começar algo mais interessante, eu vou explicar o básico sobre a linguagem de programação que iremos aprender aqui: Python.

Mas antes disto a gente precisa entender o que é um compilador e um interpretador.

Como eu disse na lição anterior, computadores só entendem binário, então se você quer que o computador entenda seu código, você precisa conversar com ele em binário, mas como você já deve ter percebido, é meio difícil entender binário, você precisa de algo para traduzir o código que você escreve para binário, e este algo é chamado compilador ou interpretador.


Qual a diferença entre um compilador e um interpretador?

A principal diferença entre um compilador e um interpretador é simples, imagine um livro escrito em português, você quer disponibilizar este livro em japonês, se você compilar este livro você estará imprimindo uma novo livro escrita em japonês, uma nova cópia, mas se você souber japonês você consegue ler o livro em inglês e pensar sobre o texto em japonês, pois você está interpretando enquanto lê.

Sendo assim, o compilador cria um objeto binário que o computador consegue ler e o interpretador vai traduzindo na hora e enviando a tradução em binário para o computador, em ambos os casos o resultado é o mesmo.


Alguns exemplos de linguagens compiladas:
C, C++, C#, Pascal, Clipper, Java, etc.

Alguns exemplos de linguagens interpretadas:
Python, PHP, Ruby, etc.


Mas, o que eu realmente preciso para começar a programar?

A resposta é simples, você só precisa de um compilador ou interpretador e um editor de textos.

Ok, eu entendi porque eu preciso do compilador ou interpretador, mas pra que o editor de textos? Eu não precisaria de um programa tipo o Delphi ou Visual Studio?

Não, você não precisa necessáriamente de uma IDE (integrated development environment - Ambiente de desenvolvimento integrado), Delphi e Visual Studio são apenas ferramentas que ajudam você a programar, mas eles não são realmente necessários.

Então eu posso programar no bloco de notas?

A resposta é sim, mas só se você gostar de sofrer :)


O que iremos usar para programar?

Nós iremos usar o seguinte em nossas aulas

Idle para Python

Na próxima aula nós vamos configurar nosso ambiente de desenvolvimento, se você tem alguma dúvida ou quer dar alguma sugestão ou correção, por favor comente!

Aula 1: O que é programação?

Basicamente programação é o processo de escrever em uma linguagem de programação para fazer o computador executar alguma tarefa, um exemplo simples seria uma calculadora.

Todos sabemos como uma calculadora funciona, mas se você pensar bem sobre isso, uma calculadora apenas faz algumas tarefas pré-definidas, você sabe que 1 + 1 é 2, mas para cada cálculo aritimético existe uma regra e uma calculadora simplesmente segue estas regras.

Isto é, uma tarefa pré-definida, computadores não pensão, então tudo o que ele faz é seguir os passos que o programador programou, mas como raios você ensina um computador a somar?

Como você já deve saber, a linguagem nativa do computador é binário (0 e 1), então se você quer conversar com o computador sem nenhuma liguagem de programação você vai precisa falar com ele em binário, e isso é meio complicado não é?

Por exemplo, você consegue traduzir isto?

01000011 01101111 01101110 01100111 01110010 01100001 01110100 01110101 01101100 01100001 01110100 01101001 01101111 01101110 01110011 00101100 00100000 01111001 01101111 01110101 00100000 01101011 01101110 01101111 01110111 00100000 01101000 01101111 01110111 00100000 01110100 01101111 00100000 01110101 01110011 01100101 00100000 01100001 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01110100 01110010 01100001 01101110 01110011 01101100 01100001 01110100 01101111 01110010 00100000 00111010 00101001

Não? Mas esta é a forma que o computador entende tudo.


Mas então o que é uma linguagem de programação?

Se nós não tivessemos nenhuma linguagem de programação, nós teríamos que conversar com o computador em código binário.

Basicamente uma linguagem de programação é uma maneira do programador conversar com o computador utilizando uma linguagem mais fácil de entender ao invés de binário e sem fazer tudo do zero. A diferença principal entre as linguagens de programação é a sintaxe, claro que cada linguagem é melhor para esta ou aquela tarefa, cada uma tem suas bibliotecas e funções, etc.

Programação não depende de linguagem de programação!

A maioria das pessoas pensam que programar é saber uma linguagem de programação, mas a verdade não é esta.

Programação é puramente lógica e algoritmos.

Imagine que você quer conversar com um japonês, mas você não sabe nenhuma palavra em japonês, então você pensa "Não posso conversar com ele pois não sei japonês", mas não é bem assim, você PODE conversar com ele, não conversar utilizando uma linguagem falada mas você pode fazer com que ele te entenda utilizando desenhos, gestos, etc, mas primeiro você precisa pensar em como fazer com que ele te entenda.

Conversar com computadores é a mesma coisa, se você é ruin em lógica você nunca vai conseguir fazer o computador te entender, mesmo que você saiba a sintaxe de todas as linguagens de programação do mundo.

Qual linguagem de programação devo usar, com qual começar?

Isto é uma coisa que não posso responder para você, cada pessoa gosta desta ou daquela linguagem, mas a verdade é que você não consegue viver com apenas uma linguagem, cada linguagem é mais adequada para determinada tarefa, você pode tentar fazer tudo com uma linguagem só mas só se você gostar de sofrer, pois para algumas tarefas, é mais rápido você aprender uma linguagem nova do que tentar fazer com sua linguagem atual.

Você pode começar com qualquer linguagem, alguns falam que esta ou aquela linguagem é melhor para começar, as faculdades geralmente começam com Pascal ou C.

Mas na minha sincera opinião, eu acho que para iniciantes o melhor é começar com uma linguagem moderna como Python ou C#, pois estas linguagens já tem suporte para um monte de coisas modernas que linguagens como pascal e C não tem, como suporte a programação orientada a objetos, excessões, etc.

Eu acho mais difícil aprender programação orientada a objetos depis que você já está muito acostumado com programação estruturada, por isso eu recomendo começar com uma linguagem moderna, mas é só uma opinião.


E por favor, se eu disse algo estúpido, ou você tem algo a corrigir ou adicionar, por favor comente!

Planos Futuros

O propósito deste blog é ensinar programação a leigos, entusiastas e novatos em programação.

Se você pretente aproveitar melhor as lições, eu aconselho a você adicionar meu feed em seu leitor de rss, se você não possui um, eu recomendo o Google Reader.


Por que eu decidi fazer este blog?

A principal razão é que eu trabalho 9 horas por dia com programação e em meu trabalho eu comecei a notar que mesmo as pessoas que trabalham com programação possuem muitos hábitos e fazer muitas coisas sem saber o porquê.

Então eu comecei a dar algumas aulas em meu serviço, primeiro SQL (sql básico, otimização, boas práticas) e então PHP e Programação Orientada a objetos, mas eu quero ir mais longe e espero conseguir postar pelo menos uma aula por dia neste blog

Agora que você já sabe sobre o que é este blog, abaixo segue um pequeno rascunho das coisas que pretendo ensinar:

Teoria:
- Programação básica
- Programação Orientada a Objetos

Linguagens de Programação:
- Python
- C# em breve
- PHP em breve

Frameworks:
- Django depois das aulas de python
- .NET depois das auldas de c#

Bancos de Dados:
- SQL (padrões SQL)
- Firebird
- MySql

Markup
- XHTML
- XML


Ao invés de escrever tudo do zero, vou focar nas coisas que eu considero mais importantes, dar exemplos de código (aprender fazendo é meu jeito preferido) e vou dar muitas referências a outros sites, wikipedia and blogs com mais detalhes sobre o assunto para quem quizer se aprofundar, pois reinventar a roda é muito chato.