1.1. HISTÓRICO
E EVOLUÇÃO DOS COMPUTADORES
A tarefa de processar dados
consiste em tomar certa informação, processá-la e obter o resultado desejado.
Desde que o homem começou a processar dados, ele tentou
construir máquinas para ajudá-lo em seu trabalho. O computador eletrônico é um
dos resultados das pesquisas e tentativas que vêm sendo realizadas através dos
séculos, sendo um dos principais produtos desenvolvidos pela ciência no século
XX.
O ábaco pode ser
considerado como a primeira calculadora digital e é basicamente uma forma
mecanizada de contar seixos. Pequenas bolas furadas deslizando sobre uma vara
de bambu foram os substitutos dos seixos. O primeiro desses ábacos apareceu na
China dois mil anos atrás, contudo em algumas partes da Ásia eles ainda
continuam em uso.
O matemático, filósofo e
escritor francês Blaise Pascal inventou em 1642 a primeira calculadora
mecanizada - as máquinas mecânicas tipo Facit
e Schubert são modelos sofisticados
desta máquina primitiva - para efetuar adições e subtrações.
De 1671 a 1694 o filósofo e
matemático Gottfried Wilhelm Von Leibnitz aprimorou o desenvolvimento de
Pascal: desenvolveu uma calculadora que era capaz de multiplicar e dividir
diretamente.
Faz pouco mais de um século
que Charles Babbage, matemático inglês, projetou uma máquina inspirada nos
mesmos princípios básicos dos computadores eletrônicos de hoje. Sua primeira
máquina, a que ele denominou de máquina
residual, era uma máquina relativamente simples que podia gerar,
automaticamente, tabelas com uma aproximação de até seis casas decimais. Ao
concluir seu trabalho em 1822, ganhou a Medalha
de Ouro da Real Sociedade Astronômica Britânica. Era intenção de Babbage
construir uma máquina capaz de trabalhar sobre um programa planejado de antemão
e cujas instruções pudessem ser dadas por meio de fitas perfuradas. Sua criação
incluía também um sistema de “armazenamento” de informações, uma unidade
aritmética, um dispositivo para dar entrada às instruções e dados e outro que
daria saída aos resultados impressos, e ser-lhe-ía possível, em um determinado
momento, ser capaz de tomar uma decisão própria (unidade lógica). A este
projeto que somente em meados do século atual pode ser desenvolvido, Babbage
chamou de Máquina Analítica.
Em 1937, Howard G. Aiken
começou a construir uma máquina capaz de calcular integrais e diferenciais,
utilizando relês e outros dispositivos eletromecânicos. A máquina começou a
funcionar em 1944 e foi chamada de MARK I - foi retirado do serviço ativo em
1959. Possuía 78 diferentes dispositivos ou unidades interligados por mais de
800.000 metros de fios elétricos.
Em 1946, entrou em
funcionamento o primeiro computador digital eletrônico, chamado ENIAC
(Eletronic Numerical Integrator And Calculator). Possuía 19.000 válvulas, 1500
relês, diversos resistores, capacitores, indutores, consumindo cerca de 200Kwh.
Sua memória podia registrar até 20 números de 10 dígitos cada um. Sua
programação era feita conectando-se tomadas através de fios e pinos como num
painel de telefonista.
Ainda em 1946, John Von
Neumann sugeriu que as instruções e os dados necessários fossem acumulados
dentro da memória do computador ao mesmo tempo em que a máquina deveria ter
condição para modificar - em casos necessários - essas instruções (programa)
sob controle de um programa previamente inserido (o sistema monitor).
A primeira máquina baseada
nesta proposta foi a EDVAC (Eletronic Discrete Variable Automatic Computer),
construída em 1948. A partir daí surgiram os primeiros computadores em escala
comercial, sendo que o precursor foi o UNIVAC, utilizado com sucesso no censo
de 1951 nos EUA.
Os primeiros computadores
descritos nos itens anteriores utilizavam circuitos eletromecânicos e válvulas.
O aparecimento do transistor trouxe redução de tamanho e de custo além de ganho
em robustez e confiabilidade. Em seguida vieram os computadores usando
circuitos integrados, com maior capacidade de cálculo e novamente menores, mais
baratos, mais robustos e confiáveis. A utilização de VLSI (Very Large Scale
Integration) mais uma vez causou revolução no mundo dos computadores. Chegamos
aos dias atuais com a popularização dos microcomputadores nos últimos dez anos
- associado a um grande avanço tecnológico na área de telecomunicações (só conseguido
graças à capacidade dos atuais computadores): da associação das
telecomunicações com os computadores surgiram as redes de computadores.
1.2
- CONCEITOS BÁSICOS
Em
informática, a exemplo do que acontece nas demais áreas técnicas do conhecimento,
existe um vocabulário básico que deve ser conhecido por todos aqueles que
desejam adquirir conhecimentos a esse
respeito. Ao longo do texto os novos termos serão definidos tão logo sejam referenciados, no entanto, existe
um pequeno glossário de termos que será apresentado a seguir,
antecipando-se ao seu aparecimento no texto, em função de sua relevância para a
área.
1.2.1.
TERMINOLOGIA BÁSICA EM INFORMÁTICA
ALGORITMO
- conjunto finito de instruções, numa determinada seqüência, que quando é
executado leva à solução de um problema.
Pode ser representado utilizando-se uma
linguagem natural (tal
como Português, Inglês, etc.), uma pseudolinguagem (por
exemplo, um subconjunto do Português)
ou ainda uma
Linguagem de Programação (tal como PASCAL, FORTRAN,
COBOL, DELPHI, CLIPPER).
ARQUIVO -
um conjunto de
dados, geralmente
relacionados, considerados como uma
unidade e armazenados em um dispositivo
físico segundo algum critério de organização. Os arquivos podem estar em uma
forma legível por humanos ou legível apenas por máquinas. No nosso caso, os
arquivos serão armazenados em meio magnético - em disquete ou em no disco
rígido do computador (também conhecido como Winchester).
BIT - forma
abreviada de binary digit,
corresponde à menor unidade de informação que pode ser
manipulada por um computador. Em um BIT podemos armazenar um dígito
binário - 0 ou 1 no sistema binário de numeração.
BYTE - conjunto
de bits, normalmente oito
(8), capaz de
representar um caráter (letra,
dígito ou símbolo especial). É
a unidade utilizada como medida
da capacidade da memória
dos computadores.
COMPILADOR
- um programa que realiza
a compilação. Tem
duas atribuições básicas:
1) verificação da
sintaxe dos comandos (instruções) de um programa escrito em uma
determinada Linguagem de
Programação (Programa Fonte)
e 2) geração de um programa equivalente
em linguagem que
a máquina entenda
diretamente (Programa Objeto).
Em função destas
características é que os
compiladores geralmente são específicos
para as linguagens
de programação e para os
equipamentos a que se destinam.
COMPILAR
- efetuar a compilação de um programa fonte. Consiste em verificar a sintaxe dos comandos do programa
fonte e preparar o
programa equivalente em
linguagem de máquina,
utilizando a estrutura lógica global do programa
original, com auxílio de um
compilador.
CPU - Central
Processing Unit - Unidade Central de Processamento.
DOS - Disk Operating System - um termo
genérico para descrever qualquer Sistema
Operacional que é carregado a partir de disco magnético toda vez que a
máquina é ligada ou reinicializada (através de uma operação de Reset).
EDITOR
DE TEXTOS - um programa, parte do software
básico, que visa facilitar a criação de arquivos de
texto e sua edição (modificação de arquivos de texto existentes) tanto
para uso interno como para impressão ou exibição. O Word for Windows é um
exemplo de editor de textos.
HARDWARE - representa a parte física
(equipamentos) de uma
configuração de computador - sendo constituído dos seus componentes mecânicos, elétricos e
eletrônicos - incluindo quaisquer equipamentos periféricos tais como
impressora, teclado, modem e mouse.
INTERNET
- Rede gigantesca e mundial que conecta centena de milhares de computadores,
cada um dos quais podendo estar conectado à sua própria rede local de
computadores. Através da INTERNET
você pode enviar correio eletrônico para outros usuários; trocar mensagens com
membros de grupos de discussão sobre assuntos de interesse especial; pesquisar
informações sobre qualquer que seja o assunto; transferir arquivos; ou ainda,
criar “home page” com as mais variadas informações.
LINGUAGEM DE PROGRAMAÇÃO
- conjunto bem definido de símbolos,
regras sintáticas e semânticas
utilizado para escrever programas de
computador. Em função de suas
peculiaridades, cada linguagem de
programação tem seu próprio compilador para cada família
de equipamentos.
MS-DOS
- Sistema Operacional em Disco, desenvolvido pela Microsoft.
PASCAL
- uma linguagem de programação de alto nível voltada para o desenvolvimento de programas utilizando
a técnica de
Programação Estruturada. A Linguagem PASCAL foi desenvolvida na Universidade Técnica
de Zurique - Suíça, no final da
década de sessenta e início da década
de setenta, pelo professor
Niklaus Wirth (nascido
em Winterthur -
Suíça, em 1934).
O nome da Linguagem é uma
homenagem ao matemático e filósofo francês Blaise Pascal que construiu a primeira calculadora mecânica
(em 1642) para efetuar adições e subtrações.
PLANILHA ELETRÔNICA
- um programa comumente usado para elaboração de orçamentos, planejamentos e
outras tarefas relacionadas com finanças. O Microsoft Excel é um
exemplo de planilha eletrônica.
PROGRAMA
- O mesmo que Software; uma seqüência
de instruções que pode ser executada por um computador. Um algoritmo escrito em
uma linguagem de programação.
SISTEMA
OPERACIONAL - O software responsável por controlar a
alocação e o uso dos recursos de hardware
tais como memória, tempo de CPU, espaço em disco, e demais dispositivos
periféricos. O Windows 95, o Windows 3.1, e o MS-DOS
são exemplos de Sistemas Operacionais para microcomputadores.
SOFTWARE
- conjunto de programas, rotinas, sistemas operacionais, compiladores e utilitários que juntamente com a parte física do
computador (Hardware) coloca-o em condições de ser utilizado. O mesmo
que programa.
VÍRUS
- um programa que infecta arquivos de computador (geralmente
outros programas executáveis) através da inserção de cópias de si próprio
nestes programas. Isto é feito usualmente de maneira que as cópias serão
executadas quando o arquivo está carregado na memória, permitindo então infectar
ainda outros arquivos, e assim por diante.
WINDOWS
- nome de rua para Microsoft Windows,
um sistema operacional multi-tarefa, com interface gráfica. Roda em
computadores baseados no MS-DOS.
1.2.2. ORGANIZAÇÃO INTERNA E FUNCIONAMENTO
Os
computadores digitais funcionam
sob o comando de programas (Software). Estes programas podem ser
classificados, de modo
simplificado, em duas grandes
categorias: 1) o software básico, formado pelos compiladores, sistemas operacionais e
demais rotinas que visam facilitar a comunicação do usuário com o equipamento e 2) o software aplicativo, formado por sistemas - são
conjuntos de programas para
automatização de determinadas tarefas repetitivas - e
por programas isolados, desenvolvidos pelo usuário ou adquiridos na forma de
pacotes. De modo geral a ação dos
computadores obedece ao esquema:
A entrada
é feita através das Unidades
(equipamentos) de Entrada.
Os computadores podem dispor, isolada ou agrupadamente, de
vários tipos de Unidades de Entrada.
As unidades de entrada mais comuns atualmente são: Teclado,
Unidade de Disco Flexível,
Unidade de Disco Rígido, Unidade de Fita Magnética e Unidade de Leitura Ótica.
É através das Unidades de saída que o computador fornece as mais variadas formas de resultados para o
usuário. As unidades de saída mais
usuais são o monitor de vídeo, a
impressora, unidade de
disco flexível, unidade de disco rígido, unidade
de fita magnética e plotter (traçador de gráficos).
O
processamento das informações
é efetuado na
Unidade Central de Processamento
(CPU). A CPU é formada basicamente pela Unidade de Lógica e Aritmética, Unidade de Controle, e
Memória Principal.
O
programa a ser executado e também os dados que estiverem sendo
processados em um determinado instante, estarão armazenados na
memória principal. A capacidade
de armazenamento da memória principal
é um dos parâmetros utilizados tanto para dimensionar uma configuração de computador quanto
para estabelecer comparações
entre duas configurações. A quantidade mínima de memória necessária para armazenar um caráter
é o byte. Cada grupo de 1024 bytes é chamado de Kilobyte ou
Kbyte. A capacidade das
memórias geralmente é
expressa em Kbytes.
Como a memória principal é volátil,
todas as informações ali
armazenadas serão destruídas
caso ocorra interrupção do fornecimento de energia
elétrica. Para minimizar os prejuízos com
tais interrupções, utilizam-se as memórias auxiliares
(ou memórias secundárias).
As
memórias auxiliares são
de baixo custo,
capacidade ilimitada de armazenamento - visto que podem ser
mantidas "OFF- LINE", e não são voláteis. Sua principal desvantagem em relação às memórias principais é a velocidade menor
de armazenamento e de recuperação de
informações. Os discos
flexíveis, os discos
rígidos e
as fitas magnéticas são os
exemplos mais comuns de
memórias auxiliares.
A
Unidade de Lógica
e Aritmética é
encarregada da interpretação e da execução
das instruções dos
programas (escritos ou
não pelo usuário)
sendo também chamada
de processador.
A Unidade de Controle coordena e controla o funcionamento simultâneo da memória
principal e das Unidades de Entrada
e Saída. É a
Unidade de Controle que gerencia o fluxo
dos dados (qualquer
informação codificada será
chamada de dado) entre a
memória principal e as unidades de entrada/saída de dados.
1.2.3.
RESOLUÇÃO DE PROBLEMAS COM AUXILIO DO COMPUTADOR
Para resolver
problemas utilizando o
computador como ferramenta
de apoio, vários passos devem
ser sempre seguidos.
Inicialmente,
identifica-se exatamente o
problema a ser
resolvido. O conjunto de procedimentos a ser
automatizado deve levar à
solução do problema
antes de se
tentar efetuar a
automação.
Deve ser lembrado sempre que o
computador é muito útil tanto para processar
rapidamente grande quantidade
de informações, quanto para
efetuar cálculos repetitivos e que envolvem
muitos números -
sempre com muita segurança. No
entanto, é necessário que haja total
domínio e conhecimento dos métodos e procedimentos que serão automatizados. Após a delimitação da área de
abrangência do problema a ser automatizado, deve ser efetuada uma análise
detalhada do problema
de modo a
quebrá-lo em subproblemas. De maneira análoga e recursiva, cada subproblema deve ser dividido em subproblemas até que
cada subproblema possa ser
tratado como uma tarefa indivisível e cuja solução possa ser visualizada de maneira global. Finalmente,
para cada tarefa
indivisível deve ser construído um algoritmo a ser
transformado em um programa de
computador.
Após o algoritmo ter sido representado em alguma linguagem de programação e testado através de conferência visual, é chegada a hora de sua implementação em computador. Inicialmente, o algoritmo que já estará escrito em alguma linguagem de programação e será, portanto, um programa de computador, será digitado. Após a digitação, seguidamente serão executados os seguintes passos, até que a solução seja satisfatória:
1 -
Compilação do Programa Fonte.
2 -
Se encontrar erro de sintaxe, corrigir e
voltar ao passo 1.
3 -
Executar o programa fornecendo os dados necessários para teste. Não esqueça as
fronteiras e as exceções.
4 -
Analisar resultados. Esteja atento ao
fato de que os programas são determinísticos
e os resultados previsíveis. Alterar
o programa se necessário e,
neste caso, voltar ao passo 1.
5 -
Quando o programa estiver aparentemente correto, solicite a outro programador para testá-lo para você.
Volte ao passo 1 se
fizer alguma modificação
no programa.
6 -
Aparentemente o seu programa resolve o
problema para o qual foi desenvolvido. Teste-o EXAUSTIVAMENTE para dados reais e volte ao passo 1 sempre que fizer alguma mudança
no programa.
7 -
Foi gratificante chegar aqui! Não perca tempo: inicie a elaboração de seu
próximo programa. Lembre-se que cada problema,
por maior que seja, pode ser resolvido com a ajuda de vários programas
pequenos.
1.3.
EXERCÍCIOS PROPOSTOS
1. O que é um algoritmo?
2. O que é um compilador?
3. O que é um programa de
computador?
4. O que é hardware?
5. O que é software?
6. O que são unidades de entrada?
7. O que são unidades de saída?
8. O que é um erro de compilação?
9. O que é um erro de execução?
10. O que é um programa fonte?
11. O que é um programa objeto?
12. Que passos devem ser seguidos
para resolver um problema com auxílio de um computador?
Voltar para o Índice Avançar para o Próximo Capítulo