300
ID
É
IASPARAPROGRAMARCOMPUTADORES
Na minha viv
ê
ncia profissional, como programador, analista de sistemas e professor, tenho vistoprogramadores de v
á
rios tipos. Alguns s
ã
o mais criativos, outros menos, e tamb
é
m h
á
os que parecem eternosiniciantes. Alguns t
ê
m s
ó
lida forma
çã
o em algoritmos e t
é
cnicas de programa
çã
o; outros n
ã
o a tem mas se viramquando precisam. H
á
programadores que praticamente se "viciam" em comandar computadores, e extraem grandeprazer dessa atividade, e h
á
outros que o fazem por fazer, simplesmente, talvez pelo sal
á
rio.Os programadores realmente bons, que unem forma
çã
o t
é
cnica, criatividade, curiosidade e prazer parecemser relativamente poucos. Naqueles que conheci pude perceber padr
õ
es: eles t
ê
m acesso a um computador, em casaou em outro lugar; t
ê
m uma grande disposi
çã
o de buscar solu
çõ
es por si mesmos e, acima de tudo, eles programammuito. N
ã
o dependem de algu
é
m mand
á
-los programar, tendo ou n
ã
o suas pr
ó
prias id
é
ias. Para resumir, elessimplesmente
praticam
muito, e este
é
o fator maior que, na minha opini
ã
o, os torna melhores que os outros.Por isto foi elaborado este material, cujo conte
ú
do consiste essencialmente de especifica
çõ
es deprogramas, n
ã
o voltadas para nenhuma linguagem de programa
çã
o em particular. Sua maior finalidade
é
fornecerid
é
ias para que programadores
á
vidos possam programar, programar e programar, e assim se tornar cada vezmelhores. Uma restri
çã
o
é
que a implementa
çã
o de algumas das especifica
çõ
es ser
á
mais apropriada estando a telaem modo texto, o que n
ã
o impede que muitas delas possam fornecer inspira
çã
o para programas em interfacegr
á
fica.A maioria das especifica
çõ
es propostas s
ã
o voltadas para iniciantes em uma linguagem de programa
çã
o, eestruturadas na forma que considero mais did
á
tica: no in
í
cio apenas comandos de sa
í
da e instru
çõ
es matem
á
ticassimples, de forma a n
ã
o sobrecarregar o estudante que, nesse momento, ainda est
á
normalmente assimilando umas
é
rie de novas informa
çõ
es sobre processadores, instru
çõ
es, seq
üê
ncia, controle e o pr
ó
prio compilador. Oscap
í
tulos seguintes gradativamente incorporam
à
s especifica
çõ
es novos t
ó
picos: vari
á
veis, tipos de dado e entrada,decis
ã
o, repeti
çã
o e outras.Os primeiros cinco cap
í
tulos est
ã
o organizados em t
ó
picos, e estes focalizados em estruturas deprograma
çã
o. Os exerc
í
cios, embora variados, n
ã
o s
ã
o todos diferentes: alguns combinam dois ou mais exerc
í
ciosde cap
í
tulos anteriores, resultando em um mais complexo e no qual o estudante pode aplicar a experi
ê
nciaadquirida.O
ú
ltimo cap
í
tulo sugere id
é
ias para programas, existentes ou n
ã
o, que podem ser implementadas porprogramadores que j
á
tenham amadurecido os recursos b
á
sicos de uma linguagem de programa
çã
o, podendotamb
é
m ser usadas para trabalhos pr
á
ticos de iniciativa pessoal ou determinados pelo professor. Em alguns casos,
é
dado algum direcionamento inicial para a implementa
çã
o; em outros, o desafio
é
todo do programador!Este
é
um material para ser usado como um complemento, n
ã
o servindo por si s
ó
para suportar um curso.Dependendo da proposta did
á
tica do professor que o adote, ser
á
necess
á
rio adequar a seq
üê
ncia em que asespecifica
çõ
es ser
ã
o propostas aos estudantes.Obviamente n
ã
o h
á
qualquer limite para a evolu
çã
o deste trabalho; por isto, cr
í
ticas, sugest
õ
es e eventuaiscorre
çõ
es ser
ã
o sempre muito bem vindas.Virg
í
lio Vasconcelos Vilelavirgilio@tba.com.brBras
í
lia, Fevereiro/1999.