CAPÍTULO 1 - HISTÓRICO E CONCEITOS BÁSICOS

 

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     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