Introdução à programação e aos algoritmos
2 Bases da Programação
Bases da Programação
“Todo mundo neste país deveria aprender a programar um computador, porque esse aprendizado ensina você a pensar.” Steve Jobs, em entrevista em 1996.
Você quer aprender uma linguagem de programação ou quer aprender a programar? Você deve estar se perguntando: mas tem diferença? Sim, tem. O computador não tem nenhuma inteligência; apenas faz as coisas de maneira muito rápida. Cabe a nós darmos esse sopro de inteligência aos computadores. A única forma que temos para fazer isso é desenvolvendo programas que guiem nosso computador na busca de soluções de problemas. Como o computador não é muito inteligente, as linguagens que entende têm uma sintaxe muito simples. Aprender uma linguagem de programação é fácil, e você rapidamente vai conseguir escrever programas bem úteis. Mas você conseguirá programar de verdade? Se surgir um problema mais complicado, você saberá resolvê-lo? Se seu programa não funcionar, você vai saber corrigi-lo? Ou vai ficar sempre na superfície, contente em resolver problemas simples?
Programar bem exige disciplina e método.
Se você está lendo esse livro, muito provavelmente já tem uma ideia do que seja um programa.
Cada um pode ter sua definição. Gosto muito de uma definição que diz que aprender a programar é o mesmo que estudar os processos computacionais. Processos computacionais são como seres abstratos que habitam os computadores. Esses seres abstratos agem manipulando outras abstrações, que chamamos de dados. Programar é direcionar este processo para obter um resultado. Na base, como visto no capítulo anterior, tudo são zeros e uns, e até os próprios zeros e uns são abstrações de medidas de grandezas físicas usadas para representar esses conceitos.
Para programar bem, você deve coordenar ações e manipular abstrações. Neste capítulo apresento
alguns conceitos úteis para poder fazer uma boa gestão dessas abstrações. Aprender uma linguagem de programação será uma consequência disso. Espero que, quando terminar seus estudos ao final deste livro, você seja capaz de programar em qualquer linguagem de programação, bastando aprender sua sintaxe.
2.1 LINGUAGEM DE PROGRAMAÇÃO
“Aprendi muito cedo a diferença entre saber o nome de algo e saber algo.” Richard Feynman, físico americano.
Para programar, é óbvio, você precisa aprender uma linguagem de programação. Prometi que iria usar uma linguagem de programação de modo que você tivesse uma resposta rápida para avaliar seu aprendizado. Vou cumprir o prometido, mas vamos tentar um enfoque diferente. Apresentarei conceitos de programação os quais irei exemplificar com uma linguagem, no caso, Python. O que quero dizer é que o conceito tem prioridade sobre Python. Conhecendo esses conceitos, você será capaz de reconhecê-los em outras linguagens.
Neste livro vamos usar Python por ser uma linguagem de aprendizado simples. Trata-se de uma
linguagem poderosa que não vai servir apenas para você aprender a programar. Muitos programas de computador úteis, de uso profissional, podem ser feitos por meio de Python. Mas não fique limitado a esta linguagem. Na verdade, existem problemas que seriam mais bem resolvidos por outras linguagens.
Cada linguagem tem características e sintaxes próprias. Ao longo dos anos tenho visto
programadores defenderem as linguagens de programação que usam com um fervor quase religioso. É um exagero. Cada uma tem seu nicho de aplicação, e muitas das escolhas de programadores são apenas consequências de afinidades pessoais.
Apenas para dar um exemplo de como as linguagens podem ser diferentes ao executarem a mesma
função, analisemos um programa clássico, o “Hello, World”. Vou manter a frase em inglês por uma questão de respeito histórico. Depois que foi usada no clássico livro de programação C, escrito por Kernigham e Ritchie [Ker88], este programa foi adaptado por praticamente todo autor de livro sobre linguagens de programação, como primeiro programa a ser escrito e executado. Lógico que não é apenas isso. Este programa também testa se a linguagem foi bem instalada no computador e se está pronta para gerar programas corretamente.
O problema é escrever a frase “Hello, World” na tela do computador. Em C, o programa fica assim:
#include <stdio.h>
int main()
{
printf (“Hello, world\n”);
return 0;
}
Na linguagem Java, teríamos:
class HelloWorld {
static public void main( String args[] ) {
System.out.println( “Hello, world!” );
}
}
Não importa muito descrever a sintaxe e o que cada linha desses dois programas faz. São citados
aqui apenas para mostrar como são semelhantes os programas escritos nessas linguagens. Nós vamos usar uma linguagem mais direta: Python. Assim, o “Hello, World” em Python fica:
print (“Hello, world!”)
Bem mais fácil, não? Esta linha simplesmente diz para o computador imprimir, “print” em inglês, a
frase “Hello, World” na tela. Apresentarei a sintaxe de Python de acordo com a necessidade dos problemas apresentados.
Para que você possa interagir com o computador por meio da programação, é útil saber primeiro
como escrever algo na tela. O comando print serve exatamente para isso. Vamos usá-lo muitas vezes.
Dica 2.1 – Não use uma IDE.
IDE do inglês Integrated Development Environment signi ca Ambiente de Desenvolvimento Integrado. É um programa com
uma interface grá ca que facilita a escrita de programas, oferecendo ferramentas de apoio ao desenvolvimento de software. O
problema é que esse programa facilita demais a vida do programador. Evita que ele digite muita coisa. Para quem está iniciando é
essencial digitar os programas. Você vai cometer mais erros, é verdade, mas vai aprender mais rápido. Quando você for um
programador mais avançado, poderá usar uma IDE, porém, muitos programadores experientes ainda preferem usar um editor mais
simples, com facilidades mínimas, mesmo tendo ao seu dispor IDEs fantásticas. Assim, pre ra um editor simples, com no máximo a
facilidade de realce das palavras que pertencem à linguagem com a qual você está programando.
O editor que você usar para seus programas não pode ser um editor com formatação, como Word ou OpenOffice. Para editar
programas você precisa usar um editor de texto o mais simples possível. Um programa de computador é um texto puro, sem
negrito, sublinhas ou itálicos. Qualquer formatação fará com que seu programa não funcione.
Dica 2.2 – Digite seus programas.
Quando você estiver aprendendo a escrever programas, por vezes vai ter que repetir um código que já foi escrito anteriormente. É
tentador abrir o programa antigo e copiar e colar no novo programa. Evite isso. Digite de novo. Você deve se habituar com a
linguagem, e a melhor maneira de fazê-lo é digitando sempre os seus programas. Cada vez que você digita um programa, você
aprende mais e pode até perceber erros que não tinha visto antes.
O primeiro passo para usar Python é instalar o interpretador da linguagem em seu computador. No
Apêndice A, eu explico como fazer isso para os sistemas Windows e Linux. Também mostro como invocar o interpretador Python nos dois sistemas.
Python tem dois modos de funcionamento: interpretador interativo e compilador de bytecode
(veja a Seção 1.11 sobre interpretação e compilação). Como interpretador interativo, o programa permite que você veja o resultado da execução dos comandos imediatamente. Você digita um comando e o programa o executa. No caso de compilador de bytecodes, seu programa-fonte é compilado, ou seja, traduz o programa que você escreveu de acordo com a sintaxe de Python, para um arquivo de bytecodes. Este arquivo poderá ser executado diretamente pelo interpretador sem recompilação, em um esquema semelhante ao usado pela linguagem Java.
Vamos usar Python preferencialmente como compilador de bytecodes. Assim, edite e salve o
Programa 2.1 com o nome hello.py. Anote o local em que você salvou o seu programa, pois será necessário executar os comandos seguintes em um terminal aberto no mesmo diretório. Na linha de comandos, digite python hello.py e, em seguida, pressione a tecla enter, para chamar o compilador Python. Se tudo estiver correto, você deve obter algo como apresentado no Programa 2.1a.
print (“Hello, world!”)
■ Programa 2.1
$ python3 hello.py
Hello, world!
■ Programa 2.1a: Execução de hello.py.
Dica 2.3 – Use a versão 3 de Python.
Existem várias versões do interpretador Python. Neste livro vamos usar a versão 3 ou superior. Con rme a versão que você instalou no s
entre versões, e alguns programas apresentados aqui não vão ser corretamente interpretados se forem processados pela versão 2.