You are on page 1of 62

Helio Valim

IME-
UERJ

APOSTILA

Introdução ao Processamento de Dados

2005

IPD
Helio Valim
IME-
UERJ

ÍNDICE

1. Introdução
2. A Evolução
3. Conceitos Fundamentais
4. Estrutura de um Computador
5. Computadores e o PC
6. O Sistema Operacional
7. Organização dos Dados
8. INTERNET
9. Construção de Algoritmos
10. Comunicação com o PC
11. Introdução ao Pascal
11.1 Tipos
11.2 Variáveis
11.3 Constantes
11.4 Declarações de outros tipos
11.5 Expressões Aritméticas
11.6 Funções Numéricas Pré-definidas
11.7 Expressões Lógicas
11.8 Prioridades
11.9 Comando de Atribuição
11.10 Comandos de Entrada e Saída
11.11 Estruturas Condicionais
11.12 Estruturas de Repetição
11.13 Estruturas de Dados
11.14 Arquivos
11.15 Modularização
11.16 Procedimentos

IPD
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
1. Introdução

O Computador
Chamamos de computador o sistema integrado, cujos componentes têm a função primordial de processar
dados que são representados por códigos formados por dígitos binários que podem assumir valor 1 ou 0, o que
para o computador representa que um estado está ligado ou desligado.

Nos dias atuais, o Computador Pessoal, o popular PC pode ser adquirido como ser fosse um eletrodoméstico
comum. Muitas pessoas têm a ilusão de que comprado o computador, basta ligá-lo na tomada para ter a sua
disposição imediatamente toda a magia que a informática pode oferecer (é o tão alardeado “plug and play” ou
seja ligar e usar ).

Essa ilusão de simplicidade junto com a falta de uma avaliação clara sobre a necessidade dessa compra pode
levar à frustração, prejudicando o surgimento de novos usuários do PC.
Para que essa situação não ocorra devemos ter em mente que o PC não é apenas uma máquina de escrever
com uma televisão acoplada e sim um equipamento sofisticado com poder para auxiliar o usuário em diversas
atividades, reduzindo o tempo gasto na execução das tarefas e funcionando inclusive com um bom
divertimento, além disso pode ser a porta de entrada para uma gama muito grande de informações, obtidas via
uma rede de informação como a INTERNET (estamos na era da comunicação on-line interligando o mundo
todo através da informática).

O Processamento de dados
Essa expressão está fortemente ligada à informática, mas na verdade representa tarefas que homem executa
há muito tempo, tais como: comparar, classificar, organizar dados e gerar soluções para problemas do
cotidiano.

O processamento de dados pode ser manual ou pode empregar equipamentos eletrônicos denominados de
computadores.

Os dados depois de passarem por algum tipo de processamento se transformam em informação. Por exemplo
a lista de funcionários de uma empresa pode ser vista como um conjunto de dados. Essa mesma lista
ordenada por idade, classificada por cargos ou dividida por tempo de serviço, se transforma em informação.

Ordenar, classificar, dividir, etc são processamentos corriqueiros que o computador , seja ele PC ou não
executa com extrema precisão e grande velocidade.

Não é uma avaliação discrepante considerar que apartir da metade do séulo XX ocorreu uma das mais
importantes evoluções tecnológicas da história, mesmo considerando outras igualmente grandiosas. Este
acontecimento díspar foi o surgimento do computador e a transformação da Internet num grande veículo
mundial de disseminação da informação. Foi o momento em que o computador passa de um objeto isolado
para a forma de um conjunto técnico. Computador e rede se confundem como telemática.

Nos séculos anteriores a impressão havia fornecido as bases tecnológicas para a elaboração dos textos. Estes
possuem características insuperavelmente ricas, já muito estudadas. No entanto, a informática conseguiu
adicionar ao texto recursos ainda mais sofisticados, tanto no momento de sua produção quanto da publicação.
Hoje as técnicas de corrigir o texto no papel, a colagem de parágrafos e as várias passagens do texto pelas
máquinas de escrever, são de conhecimento restrito a poucas pessoas. Tudo isso ficou obsoleto a partir da
década de oitenta com os editores dos microcomputadores (os computadores pessoais – PC).

Em sua essência o computador é uma máquina matemática. Ele trabalha com números registrados por sinais
elétricos em vez de numerais gravados no papel. Da mesma forma que a ciência contemporânea persegue e
consegue matematizar vários elementos e processos da natureza, o computador pode representar através de
números uma grande amplitude de signos das mais variadas linguagens. Isto não só nas suas formas visuais,
como na escrita, mas também em formas sonoras e cinéticas. Representando uma infinidade de signos e tendo
aplicação quase todo tipo de tarefa o computador foi chamado de máquina universal.

1
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Uma Definição...
Computadores são máquinas que podem ser usadas eficientemente no processo de solução de vários tipos de
problemas. Para isso é preciso que haja um programa, escrito por um ser humano e codificado para a
máquina, que "diz" o que ela tem que fazer.

2. A Evolução

A Informação
Vivemos na era da informação. Há informação sobre previsão do tempo, esportes, diversões, finanças...

Informação significa fatos: é o tipo de coisa presente em livros, que pode ser expressa em palavras ou
imagens. A informação pode, portanto vir em várias formas: verbal, visual, por ondas.

No mundo dos computadores, a definição atual é dada por Claude Shannon (1916-2001): a informação está
presente sempre que um sinal é transmitido de um lugar para outro.

Desde os primórdios, as formas de vida vêm aperfeiçoando sua capacidade de processamento da informação.
Com a evolução, surgiram as palavras e as regras para combiná-las: as leis da gramática e da lógica.

Os números e o ábaco
Os números são um tipo especial de palavra, com regras próprias. Pode-se representá-los nos dedos e
originalmente as contas (operações com números) eram feitas nos dedos. Dessa forma, podemos dizer
que no início dos tempos as operações também eram "digitais"!

A escrita nasceu através dos sumérios, que inventaram um modo de representar a linguagem através de
desenhos. Essa idéia difundiu-se entre as várias culturas, cada uma adquirindo seu modo próprio de
representar a linguagem. Na região do Mediterrâneo surgiram o alfabeto e o ábaco. Esse último era usado
para fazer contas.

O ábaco dos romanos consistia de bolinhas de mármore que deslizavam numa placa de bronze cheia de
sulcos. Isso gerou alguns termos matemáticos: em latim "Calx" significa mármore, assim "Calculus" era
uma bolinha do ábaco, e fazer cálculos aritméticos era "Calculare". Em suma, os tempos antigos eram
realmente a era dos calculadores, e embora os povos antigos dispusessem de meios para escrever
números, os cálculos eram raramente escritos.
Os hindus inventaram o zero escrito, o que permitiu que efetuassem a aritmética decimal no papel. Aqui
começa a chamada “era do papel e lápis”.
A matemática hindu foi difundida pelos árabes que a espalharam pelo Ocidente. Em 830, um estudioso persa,
conhecido por Al-Khwarismi, escreveu o livro definitivo sobre o assunto. Mais especificamente, o livro
tratava de álgebra.

Após ser usado repetidamente, o nome do matemático acabou se transformando em "algarismo", palavra que
hoje denota os símbolos usados para representar números. Do mesmo radical vem a palavra "algoritmo",
usada em computação.

A ciência e os cálculos
Isaac Newton (1643-1727), com sua Teoria Gravitacional despertou grandes desafios matemáticos, entre eles
o Problema dos Três Corpos - o Sol, a Terra e a Lua, cuja solução era incrivelmente difícil e enfadonha.

Com o tempo, um grande número de cientistas começou a pensar em fazer estes cálculos através de alguma
máquina.

2
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
John Napier (1550-1617) inventou a "Tábua de Napier", que era similar a uma tabela de multiplicações. A tábua
reduzia multiplicações e divisões a adições e subtrações. Usando esse princípio, em 1620 foram criadas as
réguas de cálculo, usadas até 1970, antes das calculadoras de bolso.
 A máquina de calcular
Wilhelm Schickard (1592-1635) construiu a primeira máquina de verdade. Esta fazia multiplicação e divisão,
mas foi perdida durante a Guerra dos Trinta Anos, sem que seu inventor pudesse defender sua primazia.

Blaise Pascal (1623-1662), filósofo e matemático francês, é


conhecido como o inventor da primeira calculadora que fazia somas
e subtrações. Pascal chamou sua invenção de Pascalina (Figura 01).
A calculadora usava engrenagens que funcionavam de maneira
similar a um odômetro. A máquina não fez muito sucesso, pois era
cara e requeria prática de uso.
Gottfried Wilhelm Leibniz (1646-1716), filósofo e matemático alemão,
aprimorou um bocado o projeto de Pascal e sonhava que um dia
todo o raciocínio pudesse ser substituído pelo girar de uma alavanca.
A máquina de Leibniz fazia multiplicações e divisões.
Figura 01: Pascalina
 A revolução industrial
Em 1801, na França, durante a revolução industrial, Joseph Marie Jacquard (1752-1834) inventou um tear
mecânico controlado por grandes cartões perfurados. Sua máquina era capaz de produzir tecidos com
desenhos bonitos e intrincados. Foi tamanho o sucesso que
Jacquard foi quase morto quando levou o tear para Lyons: as
pessoas tinham medo que o tear lhes fizesse perder o emprego. Em
7 anos, já havia 11 mil teares desse tipo operando na França.

 Charles Babbage e Ada Augusta


O matemático inglês Charles Babbage (1792-1871) é conhecido
como o "Pai do Computador". Babbage projetou o chamado
"Calculador Analítico" (Figura 02), muito próximo da concepção de
um computador atual.

O projeto, totalmente mecânico, era composto de uma memória, um


engenho central, engrenagens e alavancas usadas para a Figura 02: Calculador Analítico
transferência de dados da memória para o engenho central e para os
dispositivos de entrada e saída de dados. O calculador utilizava
cartões perfurados.

Por algum tempo, o governo britânico financiou Babbage para construir a sua invenção.

Ada Augusta (1815-1852), Lady Lovelace, filha do poeta Lord Byron, era matemática amadora entusiasta. Ada
tornou-se a primeira programadora, escrevendo séries de instruções para o engenho analítico. Ada inventou o
conceito de subrotina: uma seqüência de instruções que pode ser usada várias vezes em diferentes contextos.
Ela descobriu o valor das repetições - os laços (loops): deveria haver uma instrução que retornasse a leitora de
cartões a um cartão específico, de modo que a seqüência pudesse ter sua execução repetida. Ela sonhava
com o desvio condicional: a leitora de cartões desviaria para outro cartão "se" alguma condição fosse satisfeita.

Infelizmente Babbage teve dificuldades com a tecnologia da época, que era inadequada para construir
componentes mecânicos com a precisão necessária. Com a suspensão do financiamento por parte do governo
inglês, Babbage não pode concluir o seu projeto o que impossibilitou a construção do calculador analítico.

 A lógica booleana
As máquinas do século XIX usavam base 10.
3
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

O matemático inglês George Boole (1815-1864) publicou em 1854 os princípios da lógica booleana, onde as
variáveis assumem apenas valores 0 e 1 (verdadeiro e falso).

A dificuldade de implementar um dígito decimal (um número inteiro entre 0 e 9) em componentes elétricos
determinou o uso da base 2 em computadores. A lógica booleana foi usada na implementação dos circuitos
elétricos internos a partir do século XX.

 Hollerith e sua máquina de perfurar cartões


Por volta de 1890, um outro nome entrou na história do computador: Dr. Herman Hollerith (1860-1929),
responsável por uma grande mudança na maneira de se processar os dados dos censos da época.
Os dados do censo de 1880, manualmente processados, levaram 7 anos e meio para serem compilados. Os
do censo de 1890 foram processados em 2 anos e meio, com a ajuda de uma máquina de perfurar cartões e
máquinas de tabular e ordenar, criadas por Hollerith e sua equipe.

As informações sobre os indivíduos eram armazenadas por meio de perfurações em locais específicos do
cartão. Nas máquinas de tabular, um pino passava pelo furo e chegava a uma jarra de mercúrio, fechando um
circuito elétrico e causando um incremento de 1 em um contador mecânico.

Mais tarde, Hollerith fundou uma companhia para produzir máquinas de tabulação . Anos depois, em 1924,
essa companhia veio a se chamar IBM.

 O primeiro computador
O primeiro computador eletromecânico, o chamado Z-1, usava relês e foi construído pelo alemão Konrad Zuse
(1910-1995) em 1936. Zuze tentou vendê-lo ao governo para uso militar, mas foi subestimado pelos nazistas,
que não se interessaram pela máquina.

 A guerra e os computadores
Com a II Guerra Mundial, as pesquisas aumentaram nessa área. Nos Estados Unidos, a Marinha, em conjunto
com a Universidade de Harvard e a IBM, construiu em 1944 o Mark I, um gigante eletromagnético. Em um certo
sentido, essa máquina era a realização do projeto de Babbage.

Mark I ocupava 120 m3, tinha milhares de relês e fazia um barulho infernal. Uma multiplicação de números de
10 dígitos levava 3 segundos para ser efetuada.

Em segredo, o exército americano também desenvolvia seu computador. Esse usava apenas válvulas e tinha
por objetivo calcular as trajetórias de mísseis com maior precisão.

Nos EUA no mesmo período (1946), os engenheiros John Presper Eckert (1919-1995) e John Mauchly (1907-
1980) projetaram na Universidade da Pensilvania uma máquina de calcular para uso militar que foi batizada de
ENIAC (Electrical Numerical Integrator and Calculator). Essa máquina foi o primeiro computador a válvulas.
Possuindo aproximadamente 18.000 válvulas
pemitindo o equivalente a 200 quilowatts de calor .

O ENIAC (Figura 03) ocupava uma sala de 270


metros quadrados. Os principais problemas eram a
baixa capacidade de armazenamento de dados, a
falta de velocidade no processamento e,
principalmente, a reduzida durabilidade das
válvulas. Em 1952, quando deixou de funcionar,
seis anos após a sua criação, já haviam sido
substituídas 19000 válvulas.

Figura 03: ENIAC


Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Um outro grande projeto da época, anterior ao ENIAC foi o Colossus, desenvolvido na Inglaterra no período de
1939 a 1943 com a intenção de quebrar o código da máquina de criptografia alemã denominada Enigma, que
gerava seqüências aleatórias com período de 1019 caracteres. Deste projeto, tomou parte Alan Turing,
certamente um nome conhecido hoje em dia. Após a guerra, esse projeto foi descontinuado, mas permaneceu
secreto até 1973. Dizem que, se esse projeto fosse publicado logo após o término da guerra, teríamos hoje
uma grande indústria inglesa de computadores.

 Von Neumann
O matemático húngaro John von Neumann (1903-1957) formalizou o projeto lógico de um computador.
Em sua proposta, von Neumann sugeriu que as instruções fossem armazenadas na memória do computador.
Até então elas eram lidas de cartões perfurados e executadas, uma a uma. Armazená-las na memória, para
então executá-las, tornaria o computador mais rápido, já que, no momento da execução, as instruções seriam
obtidas com rapidez eletrônica.

A maioria dos computadores de hoje em dia segue ainda o modelo proposto por von Neumann.
Esse modelo define um computador seqüencial digital em que o processamento das informações é feito passo
a passo, caracterizando um comportamento determinístico (ou seja, os mesmos dados de entrada produzem
sempre a mesma resposta).

 Transistores e circuitos integrados


Em 1947, um grupo de Standford inventou o transistor. Usando semicondutores, os transistores poderiam
substituir as válvulas, sendo menores, mais rápidos e mais duradouros, além de não esquentarem tanto nem
consumirem tanta energia. Surgiram assim os primeiros computadores transistorizados.

Nos anos 60, sob a influência do programa espacial americano, o desenvolvimento da microeletrônica levou a
construção de circuitos transistorizados integrados em uma única pastilha de silício (chip) de dimensões
reduzidas. Dezenas de milhares de transistores são integrados em um chip de alguns milímetros quadrados,
dando origem aos circuitos integrados microminiaturizados. Isso possibilitou o surgimento de
minicomputadores: computadores poderosos do tamanho de uma escrivaninha.

Em 1970, a Intel, empresa norte-americana, produziu o primeiro microprocessador denominado 8086. Um


microprocessador é um circuito integrado do tipo LSI (large scale integration) que contém todo circuito lógico de
uma unidade central de processamento em um chip do tamanho de uma unha. Os microprocessadores foram
usados na construção de mini e microcomputadores.

O 8086 desenvolvido pela Intel para ser usado com os PC, contava com um barramento de dados interno e
externo de 16 bits. E foi este o motivo de não ter sido o processador mais utilizado. Inicialmente ele foi
distribuído em versões de 4,77MHz. Posteriormente vieram versões turbinadas de 8 e 10 MHZ.
Para adaptar-se a este mercado a Intel lançou o 8088, com barramento externo mais lento, de 8 bits. Deixando
a diferença de barramento externo, ambos eram idênticos.

Quando este chip, o 8086, veio a ser utilizado já era tarde demais. Ele chegou até a fazer parte de uns poucos
clones do IBM PC e posteriormente em dois modelos do IBM PS/2 e de um computador Compaq. Mas sua
destruição veio com um processador mais poderoso, o 80286, que equipava os PC 286.
Os avanços nessa direção prosseguem até hoje, com os circuitos VLSI (very large scale integration) e os
circuitos ULSI (ultra large scale integration).

Também nos anos 70 surgiram grandes computadores, conhecidos como mainframes, imensamente
poderosos. Hoje em dia, temos os chamados supercomputadores, como o Deep Blue, com velocidade superior
a 500 MIPS (milhões de instruções por segundo).

 As gerações de computadores
A arquitetura de um computador depende do seu projeto lógico, enquanto que a sua implementação depende
da tecnologia disponível.

5
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

As três primeiras gerações de computadores refletiam a evolução dos componentes básicos do computador
(hardware) e um aprimoramento dos programas (software) existentes.

 Os computadores de primeira geração (1945-1959) usavam válvulas eletrônicas, quilômetros de fios, eram
lentos, enormes e esquentavam muito.

 A segunda geração (1959-1964) substituiu as válvulas eletrônicas por transistores e os fios de ligação por
circuitos impressos. Isso tornou os computadores mais rápidos, menores e de custo mais baixo.

 A terceira geração de computadores (1964-1970) foi construída com circuitos integrados, proporcionando
maior compactação, redução dos custos e velocidade de processamento da ordem de microsegundos.
Tem início a utilização de avançados sistemas operacionais.

 A quarta geração, de 1970 até hoje, é caracterizada por um aperfeiçoamento da tecnologia já existente,
proporcionando uma otimização da máquina para os problemas do usuário, maior grau de miniaturização,
confiabilidade e velocidade maior, já da ordem de nanosegundos (bilionésima parte do segundo).

3. Conceitos Fundamentais
É chamado de sistema de computação, o conjunto de hardware e software através do qual executamos um
processamento.

• O HARDWARE é o equipamento físico, representado no computador por suas partes mecânicas,


eletrônicas e magnéticas. A máquina em si, tudo o que se pode tocar. Pode ser basicamente formado por:
unidade central de processamento, memória e unidades de entrada ou saída de dados.

• O SOFTWARE é o conjunto de programas (algoritmos) que faz com que o computador realize o
processamento e produza o resultado desejado.

Para facilitar o entendimento, podemos dizer que um aparelho de som está para o hardware, assim como a
música está para o software, ou seja, o seu equipamento (hardware) só tem utilidade com o auxílio de
programas (software).

• O FIRMWARE é um conjunto de instruções gravadas permanentemente em hardware (geralmente, em


chips de memória ROM). Os programas de firmware correspondem normalmente a tarefas que o
computador executa repetidamente.

• O HUMANWARE tão importante quanto o software e o hardware, o usuário deve ser treinado para usufruir
todas as facilidades que um sistema computacional pode oferecer, empregando-o de forma adequada
visando à otimização das suas tarefas.

4. Estrutura de um Computador
Um computador pode ser dividido em:

• Dispositivos de Entrada e Saída: são, respectivamente, componentes atravé dos quais são lidos os
dados a serem processados por um programa, e componentes pelos quais os resultados obtidos por
um programa são colocados à disposição das pessoas.

• Memória: permite o armazenamento dos dados a serem processados, dos dados obtidos pelas
operações intermediárias e dos dados resultantes de processamento de um programa.

• Unidade Central de Processamento (Central Processing Unit – CPU): tem como tarefa principal
executar, em ordem, as operações especificadas em um programa.

6
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
A unidade central de processamento ou processador central tem por função executar os programas
armazenados na memória principal, buscando cada instrução, interpretando-a e depois a executando.
Ela compreende duas grandes subunidades, conhecidas como unidade de controle (UC) e unidade
lógica e aritmética (ULA), cujas funções serão mais bem descritas a seguir:

- Unidade de Controle: Essa unidade supervisiona todas as operações do computador, sob a direção
de um programa armazenado. Primeiro ela determina que instrução será executada pelo computador,
e depois procura essa instrução na memória interna e a interpreta. A instrução é então executada por
outras unidades do computador, sob a sua direção.

- Unidade Lógica e Aritmética: Essa é unidade que executa as operações aritméticas e lógicas
dirigidas pela Unidade de Controle.

Operações lógicas são de forma simples, a habilidade de comparar coisas para tomada de decisão.

Esta habilidade para testar (ou comparar) dois números e ramificar para um dos muitos caminhos
alternativos possíveis, dependendo do resultado da comparação, dá ao computador muitas força e
habilidade e é uma das razões principais para o uso dos computadores digitais em diferentes
aplicações, tanto administrativas como técnicas.

Características dos componentes físicos (hardware)


1. Processador

Localizado na Motherboard (Placa Mãe) o microprocessador é um conjunto complexo de circuitos elétricos


que lê e executa as instruções dos programas, efetua cálculos e toma decisões.

Os primeiros computadores tinham processadores compostos por milhares de transistores, os quais eram
muito volumosos. Apesar do seu grande volume e preço, esses computadores eram muito menos potentes do
que os atuais computadores pessoais. Pode-se afirmar que só a aparição dos microprocessadores (que são
compostos por circuitos integrados que permitem uma elevada “miniaturização”) possibilitou finalmente a
produção em massa de computadores.

O microprocessador é um dos fatores mais determinantes da potência do computador. A potência depende


sobretudo da família (número e tipo de componentes e modo como estão associados) e da velocidade (ou
freqüência) do processador.

Os microprocessadores Intel (ainda os mais utilizados) abrangem as famílias dos XT, AT 386, 486, Pentium,
etc. Existem microprocessadores de outras marcas, como os Cyrix e AMD (Atlon, Celeron,...).

A velocidade do processador é expressa em megahertz (MHz). Para uma dada família de microprocessadores
a potência (número de operações básicas efetuadas por segundo) é por via de regra diretamente proporcional
à freqüência.

Memória

Inicialmente os microprocessadores continham apenas uma Unidade Central de Processamento - CPU. Hoje
em dia, contêm também memória e outros componentes. A CPU apenas consegue armazenar a informação de
que necessita de imediato para o seu trabalho. Toda a restante informação relevante para o programa (resto
das instruções do programa e dados) tem de ser armazenada na memória central do computador. Esta
memória é de um tipo especial, denominado memória RAM.

A memória de acesso aleatório RAM (Random Access Memory), permite o acesso (escrita ou leitura), em
qualquer posição, sem que seja necessário passar seqüencialmente até a posição onde encontra-se
armazenado o dados procurado. Esta memória é cerca de 100 000 vezes mais rápida do que a dos dispositivos
de armazenamento secundário (Hard Disk, Flopp Disk, CD-ROM).

7
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
No entanto, os dados e as instruções nela contidos são irreversivelmente apagados (e perdidos) sempre que o
computador é desligado. A memória dos dispositivos de armazenamento secundário, pelo contrário, não é
apagada quando o computador é desligado.

BIOS

O BIOS (Basic Input/Output System) é um firmware gravado em uma memória situada na placa mãe que inclui
um conjunto de rotinas que, quando tal é solicitado pelos programas, executam de modo direto as ações que
os programas ordenam aos dispositivos que compõem o computador. Estão também envolvidas no power-on
do computador, quando este é ligado.

O BIOS utiliza um tipo de memória que apenas pode ser lida e em que não é possível escrever (read-only
memory ou ROM). Porém, algumas destes chips contêm memória instantânea (memória flash), a qual permite
que um programa especial escreva nelas versões mais atualizadas dessas rotinas, tornando assim o
computador mais eficaz. A memória flash é um dos meios disponíveis para assegurar a possibilidade de
evolução de um computador.

Multi I/O on board

Os dispositivos de armazenamento secundário (como as disquetes, os discos rígido, ZIP Disk e os CD-ROM)
devem ser inseridos em unidades de leitura (e, por vezes, de escrita) para que possam ser utilizados, que são
ligadas a controladores existentes na placa principal ou numa outra placa. Esses controladores transferem
informação entre o disco e a CPU ou a memória. As unidades destes dispositivos são inseridas em aberturas
existentes no gabinete.

Portas para dispositivos externos

A conexão da CPU com os dispositivos externos (como o mouse ou a impressora) é feita por intermédio de
portas. Há três grandes tipos de portas externas (ou seja, visíveis externamente):

A porta paralela utiliza-se geralmente para ligar uma impressora ao computador. Designa-se assim porque
permite a transferência simultânea (paralela) de dados através de 8 fios. Tipo de conexão que transmite oito
bits simultaneamente. Seu uso mais comum em Computadores Pessoais é para conectar a impressora, e por
isso é conhecida como LPT1 (do inglês Line Printer).

As portas seriais utilizam apenas um fio para a transmissão de dados, e, por esse motivo, enviam apenas um
sinal (e não oito) de cada vez. São freqüentemente utilizadas para ligar um mouse ou um modem ao
computador. Tipo de conexão bidirecional, através da qual os bits fluem um de cada vez (em série).
Normalmente os Computadores Pessoais têm pelo menos duas delas, conhecidas como COM1 e COM2, que
podem ser usadas para conectar diversos dispositivos, como um mouse ou modem.

A porta USB - Universal Serial Bus é uma interface externa que suporta transferência de dados de até 12
Mbps. Uma única porta USB pode ser usada para conectar até 127 equipamentos periféricos, como mouses,
modems e teclados. USB também suporta a instalação Plug and Play. É um padrão que se iniciou em 1996 e
é suportado pelas máquinas mais recentes. Na sua versão 2.0, o USB permite transferência de dados de até
480 Mbps.

Podem ser citadas, ainda, as Portas de Comunicação (Gateway), que são dispositivos que convertem os dados
entre diferentes tipos de rede. Geralmente uma conexão compartilhada entre uma rede local e um sistema
maior, como um mainframe ou uma rede de comutação de pacotes.

Memória cache

A memória RAM é uma memória de consulta 100.000 vezes rápida do que a dos dispositivos de
armazenamento secundário. No entanto, até mesmo a com velocidade mais rápida é 3 a 10 vezes mais lenta
do que a contida no microprocessador.

A CPU é capaz de executar instruções muito mais rapidamente do que a memória RAM é capaz de as
fornecer. Para que o processador não fique inativo enquanto aguarda instruções, pode-se interpor entre ele e a
8
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
memória RAM uma pequena quantidade de memória de alta velocidade, designada cache de memória externa,
que é usada para armazenar informação que será utilizada pela CPU.

Dispositivo de Armazenamentos

Estes dispositivos permitem o armazenamento de informação em longo prazo. Os mais utilizados são os discos
magnéticos (como os dos disquetes e dos discos rígido). Trata-se de discos recobertos com um material
megnetizável. Os CD-ROM e a fita para backup de dados são outros exemplos deste tipo de dispositivos. Os
programas comerciais costumam ser distribuídos em disquetes ou CD-ROM.

9
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
BIT e BYTE

A quantidade de memória (qualquer que seja o seu tipo) exprime-se em grupos de dígitos binários, também
denominados BIT - binary (algarismo binário), que são a menor unidade de memória do computador e podem
ser representados pelos símbolos 0 ou 1.

Um byte - binary term (termo binário) é um grupo de 8 bits e corresponde à quantidade de memória necessária
para armazenar uma letra, um algarismo ou qualquer outro caracter. Um quilobyte (Kbyte ou KB) corresponde
a 1024 bytes.

Por exemplo, o código binário de letra A, 1000 0001, ocupa 1 byte (oito bit) e corresponde ao código decimal
65 na tabela ASCII.
OBS: A calculadora científica do Windows possui funções que faz conversão entre sistemas de numeração.

Uma memória RAM de 640 KB pode, portanto, armazenar cerca de 640 000 caracteres.

Um megabyte (MB) corresponde a 1.048.576 (1KB)2 bytes. Um gigabyte (Gbytes ou GB) corresponde a
1.073.741.824 bytes (1KB)3. Em termos práticos considera-se que um quilobyte corresponde a 1000 bytes e
um megabyte corresponde a 1.000.000 bytes.

EM RESUMO....
1 Kbyte (KB) = 1024 bytes → pode armazenar até 1024 caracteres
1 Megabyte (MB) = 1.048.576 bytes = (1KB)2
1 Gigabyte (GB) = 1.073.741.824 bytes = (1KB)3

Unidades de discos

Os disquetes, CD-ROM e os discos rígidos (Hard Disk) necessitam de ser inseridos em dispositivos que os
fazem rodar para que se possa encontrar nesses discos o local para armazenar ou ler informação. Estes
dispositivos denominam-se unidades de discos. O caso do disco rígido é especial, uma vez que, ao contrário
dos outros tipos de disco, ele está fixado à unidade e não pode ser retirado dela. A maior parte dos CD-ROM
também apenas pode ser lida pelo utilizador, não podendo este escrever neles.

Geralmente, os computadores têm mais do que uma unidade de discos. Para as distinguir entre si, o DOS
atribui uma letra a cada unidade. Nunca pode haver mais do que uma unidade a que tenha sido atribuída a
mesma letra. O disco rígido recebe a letra C. Se o computador só tiver uma unidade de disquetes (FDD ou
Floppy Disk Drive), esta se designa unidade A. Se o computador tiver duas unidades de disquetes, uma é a
unidade A e a outra a unidade B. Se, para além das unidades de disquetes e de um disco rígido, o computador
dispuser de mais unidades (como um outro disco rígido ou um leitor de CD-ROM), então o sistema operativo
vai atribuindo sucessivamente a cada uma delas, por ordem ascendente, uma nova letra a partir do D.

Disquetes

Denominados de Memória Auxiliar, os disquetes servem geralmente para armazenar arquivos de dados ou
programas destinados a ser instalados ou utilizados no computador. Muito embora 10 a 15 vezes mais lentos e
com menor capacidade de armazenamento do que os discos rígidos, têm porém a vantagem de ser portáteis.

Hoje em dia, os disquetes (ou discos flexíveis) de longe mais utilizados têm um disco com 3,5 polegadas de
diâmetro (disquetes de 3,5 polegadas) inserido em revestimento de plástico.

Os disquetes de 3,5 polegadas de baixa densidade armazenavam 720 Kbytes os disquetes de alta densidade
armazenam até 1,44 Mbytes. Existiram, ainda, disquetes de 5,25 polegadas de diâmetro, de face simples e
densidade dupla, com capacidade formatada de 350 Kbytes ou face dupla, com cerca de 700 Kbytes de
capacidade.

Os “mais antigos” podem se lembrar dos disquetes de 8 polegadas com densidade e face simples com 256
Kbytes ou unidades de dupla face e dupla densidade, com aproximadamente 1 Mbyte por disquete.

10
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Disco rígido ou Winchester ou Hard Disk Drive

Também denominados de memória auxiliar, os discos rígidos servem geralmente para armazenar programas
ou arquivos de dados prontos a ser utilizados pelo computador. São também eles que geralmente contêm o
sistema operativo necessário para que o computador arranque.

O disco rígido roda mais rapidamente e tem maior densidade do que os disquetes, em relação às quais é 10 a
15 vezes mais rápido.

Embora os discos rígidos estejam geralmente fixados ao computador, alguns podem ser removidos e
transportados.

A sua capacidade pode variar entre dezenas de megabytes e vários gigabytes.

CD-ROM

Trata-se de um dispositivo que utiliza a tecnologia dos discos compactos para armazenar cerca de 700 Mb de
dados num só disco. Tem, portanto, a capacidade de centenas de disquetes, poderá armazenar o equivalente
a uma prateleira (ou mais) de livros, cerca de 100 fotografias de qualidade profissional ou 74 minutos de vídeo
e áudio. A esmagadora maioria apenas pode ser lida (e não escrita) pelo utilizador. Os CD-ROM são muito
utilizados na distribuição comercial de programas de grandes dimensões, que freqüentemente incluem
componentes multimídia. Se o mesmo programa for distribuído em disquete ou em CD-ROM, não é infreqüente
que a versão em CD-ROM contenha alguns extras que foram omitidos da versão em disquetes. A instalação de
programas a partir de um CD-ROM é também muito mais rápida do que a efetuada a partir de disquetes.

O leitor de CD-ROM é indicado pela sua velocidade. Os de 1 velocidade são capazes de ler até 150 Kbytes/s.
Os de 2 velocidades lêem 300 Kbytes/s. Os de 4 velocidades lêem 600 Kbytes/s.

É comum citar o tempo de acesso (o tempo que o leitor demora em encontrar dados no disco) como um critério
importante na sua aquisição. Muito embora um tempo de acesso reduzido seja um fator positivo (será preferível
que não exceda 250 ms), a verdade é que a sua medição é efetuada pelos fabricantes em condições não
normalizadas.

2. Sistema de fita para backup de dados (fita DAT)

Os computadores ou alguns dos seus componentes podem sofrer avarias, situação essa em que o usuário
poderá perder irreversivelmente os dados neles armazenados. É também possível que o usuário apague
inadvertidamente dados que considera importante.

Para evitar estas situações, é recomendável que conserve uma cópia de segurança (backup) dos dados. Muito
embora esta regra seja freqüentemente desprezada. As cópias de segurança poderão ser feitas para
disquetes, por intermédio de programas de backup. Porém, se o volume de dados for muito elevado, a cópia
para disquete revela-se lenta e obriga ao consumo de um número elevado de disquetes. Neste caso é
preferível recorrer a um sistema de fita para salvaguarda, com muito maior capacidade e rapidez de
transferência de dados.

3. Pen-Drive ou USB Drive

Usado para transportar os dados de um computador para outro, Pen-Drive é um dispositivo com tamanho de
um dedo pesando apenas 15g e consegue armazenar os dados de 16MB até 2GB simplesmente conectando
na porta USB. Pode ser comparado com um HD convencional, permitindo gravar e apagar dados, fotos, áudio
(MP3), criar pastas, formatar, compartilhar, bloquear e muito mais. Não necessita de fonte de energia externa
porque é alimentado pela própria porta USB.

Em condições de uso normal, os dados ficam armazenados por mais de 10 anos. O que justifica esta duração
é o fato de não possuir partes móveis ou mecânicas, o que evita o desgaste ocasionado por contato direto. Os
dados são gravados da mesma forma que as memórias RAM, mas continuam armazenados quando o
dispositivo é desconectado da porta USB.

11
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Teclado

O teclado é o dispositivo de entrada de dados que se utiliza basicamente de modo análogo ao de uma máquina
de escrever, muito embora disponha de teclas adicionais destinadas a funções específicas do computador.
Serve, sobretudo para introduzir texto ou comandos de programas.

A sua característica mais importante é o conforto que proporciona ao utilizador. Esta característica é tanto mais
relevante quanto mais intensiva é a sua utilização. Se possível, o utilizador deverá procurar experimentar vários
tipos antes de proceder a uma escolha. Alguns teclados dispõem de teclas de clique rijo, enquanto outros
dispõem de teclas de toque suave. Uns são bastante ruidosos, outros são muito silenciosos.

Mouse

O mouse um dispositivo que facilita muito a utilização do computador e que contribuiu decisivamente para a
sua popularização. Poderá ser comparado a uma varinha de condão, na medida em que, quando o usuário
pressiona um dos seus botões, pode desencadear ações extremamente complexas que não implicam qualquer
outro esforço. O mouse permite por isso freqüentemente que os usuários se tornem produtivos em pouco
tempo.

O mouse mais freqüentemente utilizado dispõe de uma pequena bola na sua parte inferior, que fica em contato
com a mesa. Se deslocar o mouse com a mão, essa bola roda. Este movimento da bola é traduzido pelo
computador em movimentos de uma imagem visível na tela (o cursor), a qual se desloca exatamente no
mesmo sentido que o mouse.

Quase todo mouse dispõe de pelo menos dois botões. Geralmente, o botão situado mais à esquerda é
utilizado para ativar comandos ou para os selecionar. O botão situado mais à direita é geralmente utilizado para
solicitar ao programa a abertura de uma janela com os comandos mais provavelmente utilizados no contexto
em que se está.

Nem todos os programas são capazes de utilizar um mouse. No entanto, aqueles que o são apresentam
freqüentemente os respectivos comandos (ou uma parte deles) na tela sob a forma de símbolos gráficos
sugestivos com uma legenda que os designa. Em vez de ter de memorizar uma lista interminável de
comandos, o utilizador limita-se a deslocar o cursor para cima do símbolo ou palavra que corresponde ao
comando que pretende utilizar, e, mantendo-o nessa posição, carrega uma ou duas vezes (consoante os
casos) no botão esquerdo do mouse. A ação de pressionar o botão desencadeia a execução do comando
selecionado por intermédio do cursor.

Muito embora o mouse possa vir acompanhado por um programa que permite que o computador o reconheça e
utilize, a verdade é que, caso se utilize o ambiente Windows, o mouse é freqüentemente reconhecido e
funciona bem mesmo sem que tal programa tenha sido instalado.

4. Scanner (leitor óptico)

Os scanners (leitores ópticos) servem para captar imagens e as transformar em dados susceptíveis de serem
utilizados pelo computador, ou seja, para as digitalizar. Estes dados poderão eventualmente ser nele
armazenados, tornando desnecessários os seus equivalentes em papel ou em foto. Uma vez que o papel e as
fotos ocupam muito espaço e que é freqüentemente difícil efetuar pesquisas de dados nesses dois suportes, o
leitor óptico poderá ter um papel na libertação de espaço nos hospitais (informatização dos processos clínicos
e dos exames com imagens).

Joystick

O comando de jogos (joystick) é tradicionalmente utilizado como alternativa ao teclado e ao mouse em jogos.
Trata-se de um dispositivo com uma haste central cujo movimento manual em qualquer direção conduz ao
movimento de um objeto no vídeo nessa mesma direção. A alavanca costuma igualmente dispor de um botão
que serve para desencadear uma ação prevista pelo programa com que seja utilizado (nos jogos, pode servir
para fazer um disparo).

5. Impressora jato de tinta


12
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Estas impressoras imprimem quase tão bem como as impressoras laser. À medida que se desloca ao longo do
papel, a cabeça da impressora (ou seja, a parte que escreve) envia jactos de tinta que, em conjunto, formam
letras ou imagens. No entanto, caso o papel seja tocado com as mãos logo após a impressão (ou seja exposto
à chuva), a impressão pode ficar borratada. São geralmente muito silenciosas e relativamente econômicas. No
entanto, o preço da impressão de uma página pode ser superior ao das impressoras laser (uma vez que as
recargas de tinta podem ser mais caras do que o toner). Justifica-se particularmente caso se pretenda imprimir
documentos a cores, dado que as impressoras a laser a cores são por via de regra muito mais caras.

Impressora laser

São as impressoras de melhor qualidade. Muito embora tendam a ser mais caras do que as de jato de tinta, a
verdade é que os preços das mais baratas são já quase idênticos. Nelas, um feixe laser (ativado e desativado
para representar áreas brancas ou pretas) varre um tambor de modo a escrever nele uma linha e então
regressa rapidamente à origem para escrever uma nova linha. O tambor roda de modo a que as linhas não
fiquem sobrepostas. Cada ponto de luz que embate no tambor cria uma carga elétrica no ponto de impacto. O
tambor roda e passa pelo toner (um pó que funciona como tinta e é extremamente tóxico se for inspirado). O
toner adere então às áreas com carga elétrica, que ficam cobertas por ele. Em seguida, o papel é comprimido
de encontro ao tambor e recebe o toner. Finalmente o papel é aquecido, sendo o toner então fundido no papel.

Placa de som

As placas de som atuais permitem que o computador produza sons de qualidade CD áudio a preços
extremamente módicos. Para tal deverão ser placas estéreo com no mínimo 16 bits e ter uma taxa de
amostragem de pelo menos 44,1 Khz.

As placas de som dispõem de uma saída para fones de ouvido ou para caixas de som e de uma entrada para
microfone.

Dispositivo de vídeo

O subsistema vídeo tem três componentes: Placa de vídeo (deve ser compatível quer com o computador quer
com o monitor), Software controlador da placa (fornecido com o adaptador ou com uma aplicação), Monitor
(deve ser compatível com o adaptador de vídeo).

O adaptador é responsável pela velocidade do processo de visualização. Quer o adaptador quer o monitor
determinam a qualidade da imagem obtida.

Uma propriedade importante do monitor é a diagonal do vídeo. Usualmente os computadores são equipados
com monitores de 14 ou 15 polegadas de diagonal de vídeo. O trabalho freqüente com bases de dados
extensas ou com gráficos poderá justificar um monitor de 17 ou até 20 polegadas.

A resolução de um vídeo é o número de pixels necessários para se desenhar uma tela. Em conjunto, o
adaptador de vídeo e o monitor determinam o leque de resoluções disponível. Quanto maior a resolução, maior
a quantidade de informação visualizável no vídeo. O aumento da resolução cria uma impressão de aumento da
área do vídeo, porque os elementos nele contidos parecem menores do que com resoluções menores.

Hoje em dia, já quase só se utilizam monitores policromáticos (a cores). É também freqüente que os monitores
tenham um baixo nível de emissão de radiações (indicado pela sigla LR _ Low radiation), muito embora se não
tenha comprovado que níveis mais elevados de radiações sejam prejudiciais para a saúde. É porém prudente
fazer intervalos de 10 minutos de descanso após um período de 1 hora de exposição ao monitor.

Fonte

As fontes de alimentação convertem a corrente alterna da rede elétrica em corrente contínua (a única que pode
ser utilizada pelos circuitos do PC). A potência necessária depende da configuração do PC que se pretende
utilizar, bem como dos projetos de expansão do mesmo.

13
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
A fonte de alimentação pode incorporar uma ventoinha que serve para arrefecer não só a fonte de alimentação
como o próprio computador.

Gabinete

As caixas apresentam-se em várias dimensões e formas, cuja importância não é meramente estética. Além de
servirem para proteger os componentes do PC, as caixas condicionam igualmente a expansão dos mesmos,
na medida em que as suas dimensões podem dificultar ou impossibilitar a inserção de novos dispositivos.
As caixas contêm orifícios que são aberturas para unidades, como unidades de disquetes ou discos rígido.

O esquema da Figura 04 representa a estrutura de um computador (Placa Mãe, processador, memórias,


controladoras, devices e periféricos) e a sua relação com uma rede de computadores (LAN) e com a
INTERNET.

Figura 04 – Estrutura de um computador

5. Computadores e o PC
Os computadores que utilizam um microprocessador (um circuito integrado dedicado ao tratamento das
instruções dos programas) denominam-se microcomputadores. Trata-se de computadores relativamente
pequenos, que são também geralmente os menos potentes e os mais baratos. O computador pessoal
(Personal Computer - PC) é geralmente utilizado apenas por uma pessoa numa dada ocasião. Os
computadores portáteis (Laptop ou Notebooks) são microcomputadores cujas dimensões e peso permite que
sejam facilmente transportados de um local para outro. O tipo de PC mais freqüentemente utilizado é o IBM
compatível.
14
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

O primeiro computador popular, vendido a preço acessível ao cidadão comum foi o SPECTRUM, que para
funcionar necessitava de um aparelho de TV e de um gravador de fita K7. Mais tarde surgiu o PC que utilizava
o microprocessador INTEL 8088 com 4.77 MHz de velocidade, o que representou a entrada da IBM na disputa
da fatia de mercado do computador popular.

Com a incorporação de uma unidade de disco interna com o objetivo de armazenar dados, o PC passou a ser
conhecido como PC-XT (Extended Technology), sendo muito bem aceito, tornando-se padrão de
microcomputador. O PC foi evoluindo aumentando a sua capacidade de processamento acompanhando a
evolução dos microprocessadores.

O novo computador da IBM que utilizava o microprocessador 80286 recebeu o nome de PC-AT (Advanced
Technology) e era aproximadamente seis vezes mais rápido que o PC-XT. A seguir vieram os
microprocessadores 80386, 80486 até os PENTIUM, ..., Tornando o PC cada vez mais presente no nosso
cotidiano.

Os computadores mais potentes (mainframes), geralmente mais volumosos, muito mais caros e que são
utilizados simultaneamente por mais de uma pessoa (por vezes até centenas de pessoas).

Os computadores cuja potência, volume e preço se situam entre estes dois extremos denominam-se
minicomputadores. São empregados como servidores de redes de computadores.

A distinção entre estas três categorias é arbitrária e pouco precisa. Nos últimos anos, tem-se assistido a um tal
aumento da potência dos microcomputadores que muitas das aplicações que antes requeriam
minicomputadores passaram a ser exeqüíveis em microcomputadores.

Exemplos de Computadores:
• Personal Computer –PC (Microprocessadores: Intel, AMD, Cirix)
• Estações de trabalho (SUN, IBM, DIGITAL,...)
• Computadores de grande porte (mainframes da IBM)

Inicialização de um PC
A seguir são apresentados os procedimentos que ocorrem no interior do PC logo que equipamento é ligado.

1) Ao ligar um sinal elétrico “limpa” os dados da CPU e reinicializa os seus registros.

2) A CPU ativa um programa que inicia o PC, localizado na BIOS (Basic Input/Output Sistem).
A BIOS faz com que a CPU teste todos os componentes do PC. Esses teste são conhecidos como testes
automáticos.

3) A CPU verifica o relógio interno do PC, com o objetivo de fazer com que todas as operações ocorram de
forma sincronizada.

4) A seguir teste da placa de vídeo verifica a memória da placa e os sinais de vídeo, nesse momento várias
informações começam a ser apresentadas no vídeo.

5) Os testes automáticos da CPU testa as memórias RAM (Random Access Memory) e verifica a quantidade
de memória disponível no PC, esse teste é apresentado no vídeo.

6) O teste verifica o teclado, as unidades de disco e os demais componentes do PC.

7) Neste momento o PC está preparado, o passo seguinte, que é carregar na memória RAM o Sistema
Operacional, transferindo os arquivos de inicialização, do disco rígido ou de um disquete preparado para iniciar
o PC (disquete de “BOOT”).

15
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
6. O Sistema Operacional
O sistema operacional – SO é um conjunto de programas que controla a execução de outros programas, sem o
qual o computador não funciona. O primeiro sistema operacional conhecido e utilizado em todo o mundo foi o
Disk Operating System - DOS. Substituído pelo Windows, que possui uma Interface Homem Máquina - IHM
gráfica.

16
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Características de um SO:
• Um Sistema Operacional é um programa que controla um computador.
• Ele é quem aloca os recursos e escalona tarefas.
• Provê uma interface para o usuário permitindo que este possa acessar os recursos do computador.

Principais Funções de um SO:


• Tem conhecimento dos arquivos e da sua localização no disco;
• Monitorar os dispositivos de entrada (teclado, mouse,...);
• Alocar memória para cada tarefa;
• Escalonar tarefas para que a CPU trabalhe com apenas uma, embora pareça estar executando mais
de um programa ao mesmo tempo.

Exemplos de Sistema Operacional:


• MSDOS (Windows 3.1, 3.11);
• Windows (95, 98, 2000, XP)
• Windows NT
• OS/2 (IBM)
• Unix
• Linux (e suas distribuições: Curumim)

Device driver
Um device driver (ou simplesmente “driver”) é um programa ligado ao sistema operacional quando o
computador é ligado, o qual contém a informação necessária para manusear um periférico, como uma placa de
som, uma placa aceleradora gráfica ou um leitor de CD-ROM. Aumenta a capacidade de controle do sistema
operacional e permitindo-lhe reconhecer um periférico que de outro modo ele não reconheceria.

Há dois tipos:
device do sistema - fazem parte do sistema operacional (plug and play); e
device instalável, que devem ser instalados por intermédio de um programa especial.

Os drivers dos devices instaláveis são um fator importante para o rendimento dos periféricos. Não é infreqüente
que as suas primeiras versões tenham erros ou aproveitem mal os periféricos que comandam. As suas versões
mais atualizadas são freqüentemente distribuídas de modo gratuito na Internet pelos respectivos fabricantes.

7. Organização dos Dados


O sistema operacional é responsável pelas diversas tarefas executadas pelo PC, citadas anteriormente e que
são imperceptíveis para quem está utilizando-o (ou em informatiquês “transparentes para o usuário”). Para
executá-las com precisão o sistema operacional trabalha com as informações organizadas segundo uma
estrutura de arquivos e diretórios.

O arquivo pode ser comparado a uma pasta etiquetada onde guardamos apenas um documento, que pode ser:
texto tabela, lista de instruções, foto, desenho, gráfico, etc.

17
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
O diretório pode ser comparado a uma gaveta etiquetada de um arquivo de aço, onde guardamos um grupo
pastas etiquetadas.

18
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Estrutura dos diretórios

Os diretórios podem ser subdivididos em vários níveis, cada qual vinculado ao diretório do nível anterior. Esses
diretórios são chamados de subdiretórios e são nada mais nada menos que diretórios criados dentro de
diretórios.

O diretório principal, raiz da árvore de diretórios, é designado pelo


conjunto formado por uma letra seguida de dois pontos.

Normalmente, quando o diretório raiz encontra-se em um hard disk, o


conjunto usado é C: e em um flop disk podemos ter A: ou B:.

Os conjuntos descritos anteriormente são usados para designar os


próprios drives de um PC padrão. Os demais drives, inclusive o drive
de CD-ROM e o Pen-drive podem receber as denominações D: até Z:

D ire tó rio R A IZ
A : ,B :,C :,D : ,...,Z :

Árvore de diretórios
D ir e t ó r io 1 D ir e t ó r io 2
A rq u iv o s
N ív e l 0 1 N ív e l 0 1

D ir e t ó r io 3
A rq u iv o s
N ív e l 0 2

A rq u iv o s

D IC A S * * O exemplo a seguir
procura demonstrar a
organização de uma árvore
de diretórios.

Exemplo:

João é representante
autônomo de duas fábricas
de sapatos e bolsas que
vende para três lojas. Em cada venda ele tira um pedido e ao final
do mês deve apresentar um relatório às fábricas.

Visando agilizar o atendimento às fábricas resolveu organizar os


pedidos e os relatórios em seu PC. O esquema abaixo representa
a estrutura adotada para os seus diretórios.

OBS:
A estrutura foi criada no hard disk designado pelo conjunto C:

19
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Abaixo do diretório raiz temos um diretório para cada fábrica (Fab_bol e Fab_sap).

Abaixo das fábricas foi criado um subdiretório para cada uma das lojas, onde ficam arquivados os pedidos e os
relatórios (pedido.txt e relat.txt).
Identificação dos arquivos

O sistema operacional permite que você nomeie livremente os seus arquivos e diretórios, desde que sejam
seguidas algumas regras:

1) A identificação pode ser formada por um nome e uma extensão separados por um ponto;

2) No antido Disk Operating System (MS-DOS), o nome só poderia ter até oito caracteres, hoje não tem limite
(mas não exagere) e a extensão deve ter três caracteres;

3) Podem ser utilizados os seguintes caracteres: A-Z, a-z, 0-9, ~`! @ # $ % & ( ) - _ { }

4) Podem ser utilizadas, mas devem ser evitadas as vogais acentuadas e a cedilha;

5) Não podem ser utilizados: o “branco” (espaço) e os outros caracteres não relacionados no item três; e

6) Devem ser usados nomes que melhor identifiquem o conteúdo armazenado.

Exemplo 02:

No exemplo anterior os diretórios foram nomeados como:

Fab_bol e Fab_sap identificando, respectivamente, a fábrica de bolsas e a de sapatos e loja_01, loja_02 e


loja_03 identificando as lojas.

Os arquivos foram nomeados como:

Pedido.txt e relat.txt identificando, respectivamente, o pedido e o relatório mensal. A extensão txt foi utilizada
para caracterizar que os conteúdos dos arquivos são textos.

Em síntese:

Arquivos

São meios pelos quais os dados, os resultados e os programas estão dispostos em um computador. Existem
vários tipos de arquivos e, no MS-Windows eles são geralmente diferenciados ou reconhecidos pela sua
extensão (.xxx). Por exemplo, podemos ter um arquivo contendo os dados de entrada, um arquivo contendo as
operações a serem executadas por um programa (arquivo executável), e um arquivo contendo os dados de
saída.

• TEXTO: são legíveis quando exibidos


• NÃO TEXTO:
Executável (.exe)
Objeto (.obj)
Figuras (.gif, .bmp, .jpg)
Documentos (.doc, .pdf, .xls)
Programa em PASCAL (.pas)
Diretórios

• São pastas onde arquivos são armazenados (agrupados) conforme seu tipo, conforme a sua
utilização pelos programas, conforme o proprietário.
• Objetivo: organização e estruturação

20
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
8. INTERNET
A Internet é um conjunto de centenas de redes de computadores que servem a milhões de pessoas em todo o
mundo. Apesar de seu objetivo inicial ter sido permitir que pesquisadores acessassem sofisticados recursos de
hardware, a Internet demonstrou excelentes níveis de velocidade e de eficiência e acabou transcendendo sua
missão original. Hoje, seus usuários são imensamente diversificados - educadores, bibliotecários, empresários,
pesquisadores, aficionados por computador,só para enumerar alguns tipos. E isso se deve a inúmeras razões,
que vão desde a simples comunicação interpessoal a diversão ou o acesso a informações e recursos de valor
inestimável. Para ter uma idéia do que a Internet é capaz de oferecer, imagine um sistema rodoviário que
diminui em horas a distância entre duas cidades. Ou uma biblioteca que pode ser acessada a qualquer hora do
dia ou da noite, com milhões de livros e recursos disponíveis.

O que é a WWW?

A WWW (World Wide Web - "Teia Global Ampla"), também chamada de W3, ou ainda, simplesmente, Web, é
um serviço da Internet que permite o acesso a uma vasta quantidade e variedade de informações e dados de
forma fácil. Esse é o serviço que mais cresce dentro da Internet. É fácil confundir a Internet com a WWW,
embora a primeira seja um conceito muito mais amplo. A WWW traz uma forte combinação de flexibilidade,
portabilidade e facilidade de uso, aliadas com uma enorme potencialidade. Tudo isso torna a WWW atrativa ao
mercado e ao desenvolvimento de novas ferramentas. Mas o que é a WWW? Oficialmente, a WWW é um
sistema de retenção e distribuição de informação na forma de Documentos Hipermídia.

Hipermídia estende o conceito de hipertexto, pois é capaz de ligar um hipertexto a diversos outros tipos de
informações, tais como: animação, áudio e gráficos. Para entendermos o conceito de hipertexto, utilizaremos o
próprio conceito.

O que são Documentos Hipermídia?

Por documentos hipermídia, podemos entender um tipo de arquivo ao qual pode estar associado um texto, uma
imagem, um vídeo, um som, ou qualquer outro tipo de mídia. Imagine um jornal que pudesse tocar uma
música, ou passar um vídeo e, sobretudo, ser capaz de mudar para transmitir qualquer tipo de mídia ainda a
ser inventada. Além disso, a WWW funciona como um jornal onde se lê apenas o que interessar, podendo
ainda aprofundar-se nas notícias por níveis quase ilimitados. Isso tudo é conseguido com o uso de um tipo de
arquivo chamado Hiper-Documento.

O que são Hiper-Documentos?

O termo hiper-documento vem do fato do arquivo gerado trazer elos para outros arquivos dentro dele mesmo.
Voltando à comparação com um jornal, seria o correspondente a ler uma notícia na página 2 que traz
referência a outra notícia na página 20 e poder acessar essa nova página imediatamente. Ou ainda, ler um
livro e poder, no meio do texto, acessar outro livro com um simples clicar de mouse. Esses elos entre
documentos são chamados de links. Os links podem acessar textos, imagens, ou qualquer outro tipo de
arquivo reconhecido pelo programa leitor de HTML (HyperText Markup Language). Os programas que
traduzem a linguagem HTML são chamados de browsers ou navegadores (daí o termo navegar na Internet).

Como Funciona a Web?

A Web funciona segundo o popular modelo cliente-servidor. Um servidor Web é um programa cujo único
propósito é servir documentos para os clientes quando requerido. Um cliente Web é um programa que faz a
interface com o usuário e realiza pedidos de documentos a um servidor especificado pelo usuário. A carga
causada pelo servidor normalmente é pequena, uma vez que não realiza nenhum processamento pesado e só
opera quando um documento é pedido pelo cliente. Aqui está um exemplo de como o processo funciona:

Através de um cliente Web (também chamado de browser), o usuário seleciona uma parte do hipertexto ligada
a outro documento - "The History of Computers". O cliente Web conecta-se a um computador especificado por
um endereço em algum lugar da Internet e pede ao servidor Web desse computador pelo documento "The
History of Computers". O servidor responde enviando o texto e qualquer outro elemento de mídia existente no
documento (figuras, sons, ou filmes) para a tela do usuário.
21
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Como Acessar a Web?

Para ter acesso a Internet antes de qualquer coisa é preciso ter um computador, um modem e uma linha
telefônica. Tendo isso, a conexão pode ser feita através de uma provedora de acessos (a forma mais comum
ao usuário padrão). Esse acesso é feito, geralmente, através de chamadas telefônicas locais com um servidor
ou computador. Os custos associados variam. Existe uma hierarquia dentro das redes que formam a Internet.
Nessa hierarquia, as redes centralizadoras de alta velocidade são conhecidas como redes centrais ou
backbones. Elas aceitam e enviam os dados que nela chegam à redes de nível médio que, por sua vez,
transmitem esses dados entre suas próprias redes. Toda essa transferência de dados ocorre de forma
imperceptível para os usuários.

O que são Provedores de Serviços?

O produto mais comercializável mais imediato relacionado com a Internet é o acesso a ela. Em seguida, são as
aplicações nela disponíveis.Originalmente, quando a Internet era primariamente acadêmica, o acesso à rede
era provido (instalado e operado) por instituições acadêmicas. Em paralelo, serviços online com limitada
intersecção com a Internet eram operados nos EUA e Europa por pequenas e grandes instituições de natureza
privada, variando de BBS (Bulletin Board Systems) de fundo de quintal a OSC (Online Service Companies)
gigantescas operando em escala mundial, como a COMPUSERV, AOL, etc. Abaixo estão relacionados alguns
provedores de acesso para todo o Brasil:

www.uol.com.br ; www.terra.com.br ; www.ig.com.br ; www.aol.com.br ; www.infolink.com.br ; entre outros

Um BBS (Bulletin Board System) é como uma Internet em miniatura. Na verdade, a Internet foi criada a partir
do modelo dos BBS. No Brasil, praticamente "pulamos" esta etapa e muitos desconhecem as vantagens que
um bom BBS pode oferecer. O Infolink, por exemplo, é um provedor que também é um BBS.

O boom da Internet tem feito com que todos tenham reciclado sua atuação para articular acesso para a
rede.Há portanto um grande e ainda crescente espaço de provedores de serviços Internet, que para fins
didáticos podemos dividir em:

Provedores de Backbone; Provedores de Acesso; Provedores de Informações.

Provedor de Backbone

Entidade mantenedora de rede de longa distância (WAN - WideArea Network), de âmbito multiregional
ou nacional, com o objetivo básico de "repassar" conectividade à rede através de vários Pontos-de-
presença judiciosamente distribuídos pela região a ser coberta. A Internet é uma coleção dessas redes,
mantidas por provedores de backbone.

No Brasil, um potencial provedor de serviços de backbone deverá contratar linhas de uma empresa que
provê meios para a comunicação digital: linhas telefônicas discadas ou dedicadas, circuitos digitais,
rede de fibras ópticas, canais de satélite (obs.: em geral, as empresas do Sistema Telebrás
desempenham este papel). Um provedor de serviços de backbone opera, pois, no atacado de
conectividade, vendendo acesso a outras empresas que farão a (re)venda de acesso para usuários
finais ou simplesmente utilizarão a rede para fins institucionais internos.

Provedor de Acesso

O provedor de acesso é aquele que se conecta a um provedor de backbone através de uma linha de
boa qualidade e revende conectividade na sua área de atuação a outros provedores (usualmente
menores), instituições e especialmente a usuários individuais, através de linhas dedicadas ou mesmo
através de linhas telefônicas discadas. O provedor de acesso é portanto um varejista de conectividade
à Internet, e como todo varejista pode operar em diversas escalas, desde um nível mínimo (ex.: uma
máquina e umas poucas linhas telefônicas para acesso discado) até um nível de ampla atuação em
uma região, aproximando-se da escala de atuação de provedores de backbone.

22
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
AS (Autonomous System): São provedores de acesso que possuem total independência no
gerenciamento de seu backbone, selecionando livremente um ou mais fornecedores de link (provedores
de backbone) de uma forma transparente para seus clientes; além de contar com um bloco de IP (Internet
Protocol) próprios.

Provedor de Informação

Uma outra forma de explorar comercialmente os recursos da Internet é através da disponibilização de


informações na rede. O exemplo mais simples seria a venda de informação de algum tipo.
O empreendedor seria dono de uma base de dados e estabeleceria contas para os usuários, que
acessariam o sistema mediante o uso de senhas. Este, contudo, não é o único meio de usar
comercialmente uma conexão de sua instituição à Internet.
A comunicação digital oferece uma oportunidade única para a propaganda e marketing de seu produto.
Constitui-se num excelente meio para construir a imagem pública de uma empresa, bem como dar
assistência on-line aos seus clientes, como por exemplo, no caso de apoio a usuários de software.
Portanto, nem toda informação a ser disponibilizada por instituições de caráter comercial precisa ser
vendida.
A comunidade cibernética tem opiniões fortes sobre uso indevido da rede. Devido a sua origem não-
comercial, nem todo tipo de comportamento é bem tolerado por seus usuários. Por exemplo, a distribuição
de material pela rede através de correio eletrônico é a pior forma de anunciar seus serviços. O "castigo"
para propaganda exagerada e principalmente não solicitada (SPAM) é a sobrecarga do sistema de correio
eletrônico de sua empresa com protestos (muitas vezes automáticos e intencionalmente produzidos em
grandes quantidades). Sistemas de informação e servidores de correio que possam ser acessados
voluntariamente pelos clientes em potencial, recheados com serviços atrativos, dados e aplicativos que
possam ser trazidos por FTP , são a melhor escolha.

USUÁRIO INSTITUCIONAL

Uma terceira razão para uma instituição comercial se ligar à Internet é permitir o acesso de sua rede local (ou
de longa distância) à grande gama de serviços que ela oferece. Ali existe uma infinidade de informações
relevantes a diversas áreas de atuação. Assim, as instituições podem se conectar à Internet, seja para obter
acesso a bancos de dados, para permitir que parte de seu staff participe de grupos eletrônicos de discussão,
para garantir a comunicação via correio eletrônico com clientes e fornecedores ou, simplesmente, para ver o
que a concorrência está fazendo. Os papéis acima definidos têm o objetivo de organizar a forma de atuação
das pessoas (físicas ou jurídicas) na Internet; uma mesma pessoa pode ser tanto um provedor de acesso
quanto um provedor de informação. Muitos provedores de acesso disponibilizarão informações na rede e
desejarão conectar suas redes locais, podendo ser considerados provedores de informação e donos de uma
conexão institucional. Muitas instituições desejam ter seu sistema de informações com acesso público.
Também podem dar acesso a fornecedores ou subsidiários que não podem pagar uma linha do porte
apropriado, nem desejam arcar com os custos de um provedor de acesso intermediário. As universidades têm
atuado tanto como provedoras de informação quanto de acesso. Em muitos países existem instituições que
acumulam os papéis de operadora de conexão, de backbone e de provedora de acesso. Da mesma forma,
nem todos os interessados na Internet necessitam ter linhas dedicadas de alta velocidade diretamente ligadas
a um backbone. A RNP, neste primeiro momento, dará prioridade de conexão ao backbone federal para os
provedores de acesso e informação que possam ajudar a criar uma infra-estrutura nacional de redes,
cumprindo exigências mínimas para que se aproveitem ao máximo os recursos limitados de telecomunicação
existentes no país. Os que desejarem conexões puramente institucionais serão incentivados a colocar serviços
e dados on-line, ou a esperar o surgimento de provedores de acesso. Isto deve estimular o surgimento de
serviços com efeito multiplicativo, que ajudem a desafogar a demanda reprimida por serviços de redes
existentes no país, através da participação da iniciativa privada.

NOMES E ENDEREÇOS

Para você poder acessar um computador ligado a Internet é preciso que você saiba qual seu endereço. Há
duas formas de identificar um computador ligado à Internet. Normalmente, cada computador central, ou host,
possui um nome e um endereço numérico – IP Internet Protocol (o qual é exclusivo a um único computador).
O nome do computador na Internet é composto por palavras separadas por pontos, como em www.uol.com.br.
Cada palavra dentro do endereço tem um significado, seguindo ou não um padrão.
No caso, em www.uol.com.br temos o endereço de WWW da uol que é uma empresa COMercial do BRasil.
23
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

ESPECIFICAÇÕES DE DOMÍNIO

Após a identificação do domínio há a identificação do país (como br para o Brasil). Uma organização pode se
registrar com um nome de domínio, selecionando uma dentre as especificação mencionadas abaixo, que
melhor descreva seu domínio. Esse nome, no entanto, deve ser único.

EDU (educacional); COM (comercial); GOV (governo); IND (industrias); ORG (organização); NET(redes); G12
(instituições 1º e 2º Grau); MIL (militares); ETC (instituições que não se enquadram);

SITES DE BUSCA

Os catálogos de busca , ou simplesmente , a busca na internet , são site onde estão catalogados todos as
homepages, isso em cada um deles com o seu grupo . São homepages especializadas em busca na internet,
lá você irá, através de seus recursos, procurar as homepages com os assuntos de sua preferência . Exemplos:

www.altavista.com; www.excite.com; www.metacrawler.com; www.infoseek.com; www.yahoo.com;


www.lycos.com; www.northernlight.com; www.hotbot.com; www.google.com.br; www.cade.com.br;
www.bookmarks.com.br

Para quem não tem tempo de ficar olhando todos, se quiser uma busca simples, ao nível de Brasil, pode ir no
“cadê",a nível mundial, vá no "altavista" ou no “google” (também pode ser usado para pesquisas no Brasil).

CHATS

Quando você entra na internet, além de poder entrar em homepage, enviar e receber e-mail , você pode
participar de chat, entrar em chats. Os chats são lugares virtuais onde se encontram varias pessoas que
também estão na internet. São na sua maioria divididos em sala, tal como sala por idade, sala por cidades, por
assuntos etc.. "Chat" quer dizer conversa, em inglês.

Os dois programa de chats mais conhecido no mundo todo são o IRC (Internet Relay Chat, ou "Conversa por
Revezamento via Internet" - tradução literal) e ICQ (do inglês, "I Seek You", que significa "Eu Procuro Você"). O
IRC também é conhecido como mIRC. Nesse caso , eles são programas , que você deverá instalar também no
seu computador , também via internet. Mas existem diversas homepages que são chat's , que tem sala de
conversa. Para pegar o IRC ou mIRC ou o ICQ, você deve procurar através de sites de busca , nos catálogos,
pois eles variam de região para região , tem várias versões, que chamamos de script's e cada região tem sua
configuração certa.

E-MAIL

Uma das ferramentas de maior alcance na Internet é o Correio Eletrônico (Eletronic Mail). Com ele, mensagens
podem ser enviadas para qualquer parte do mundo, possibilitando trocas de informações de forma rápida e
extremamente eficiente. O correio eletrônico (ou e-mail) é o meio de comunicação que apresenta a melhor
velocidade pelo menor custo. Através dele, empresas podem enviar catálogos para seus clientes, anúncios de
novos produtos, imagens, sons, vídeos, enfim, qualquer arquivo que puder estar num computador. As
mensagens podem ser preparadas sem que o usuário esteja conectado na rede, exigindo que o mesmo ligue-
se à Internet apenas para envia-las. Para enviar uma mensagem, primeiro é preciso que você saiba o endereço
da outra pessoa para quem você vai enviar a mensagem. Um endereço de correio eletrônico, assim como um
endereço postal, contém todas as informações necessárias para que uma mensagem chegue ao destinatário.
Os endereços de correio eletrônico são compostos por duas partes: uma contendo informações sobre o usuário
e outra referente ao host (o provedor do endereço). Essas partes são separadas pelo símbolo @ da seguinte
forma:

nome_do_usuário@dados_do_host, como por exemplo: helio.valim@infolink.com.br

• Que se refere ao endereço eletrônico de um usuário de login Helio.Valim, cuja caixa postal eletrônica
está em Terra (endereço: terra.com.br). Ao ser enviada, a mensagem segue o caminho definido pelo
roteador até chegar ao provedor definido no endereço.

24
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
• O servidor de e-mail do provedor recebe a mensagem, distribui para o usuário especificado e guarda a
mensagem em um arquivo de acesso restrito ao destinatário.

• A mensagem fica lá guardada até que o usuário leia-a. É importante salientar que o usuário deve estar
conectado à Internet para poder ler as mensagens e, quando não estiver, terá suas mensagens
guardadas pelo servidor.

• Para ler ou enviar mensagens, o usuário pode utilizar qualquer programa de correio eletrônico, como o
Netscape, o Microsoft Outlook, etc. Há uma infinidade de programas destinados a este fim. Estes
programas apresentam diferenças entre si, mas possuem alguns comandos e ferramentas básicas que
são comuns à grande maioria. De forma genérica, o comando para envio de mensagens na maioria
dos programas é Send (Enviar); com o comando Reply é possível responder uma mensagem ao
remetente com uma repetição dessa mensagem; é possível enviar um arquivo de qualquer formato
(documento do Word, imagem, etc) como um Attachmnet (Anexo); dar um Título (Subject) à
mensagem; e enviá-la com uma Cópia (c.c. - Carbon Copy) para outra pessoa.

• Ao receber uma mensagem, o usuário terá acesso a informações de quem a enviou (o endereço de
quem enviou a mensagem) em um cabeçalho.

• Caso o endereço eletrônico do destinatário não exista ou haja qualquer problema no servidor, uma
mensagem de erro será enviada ao remetente.

TELNET

É o recurso da INTERNET que permite estabelecer uma conexão com outro computador da rede. Ele oferece a
oportunidade de estar em um sistema computacional e trabalhar em outro, não importando se o sistema está
localizado na sala ao lado, em um prédio próximo, na mesma cidade, ou a milhares de quilômetros de
distância. Você acessa um outro computador como se o seu terminal (microcomputador PC, Macintosh,
estação de trabalho, etc.) estivesse ligado diretamente àquele computador. A única diferença é que, se este
outro computador estiver distante, a resposta aos seus comandos pode ser um pouco mais lenta, ou seja, os
caracteres digitados levam um pouco mais de tempo para aparecer na tela (em torno de um segundo ou mais).
Na maior parte dos casos, você pode continuar digitando mesmo se o que já foi digitado ainda não apareceu
na tela. Após algum tempo, o computador que está sendo acessado dará o retorno. Através do uso do Telnet
você poderá ter acesso ao seu E-Mail, mesmo estando em outra cidade. Também poderá acessar bancos de
dados, catálogos de bibliotecas, ferramentas de procura de informações (Archie, Gopher, Netfind), etc.

Para utilizar o Telnet, em primeiro lugar você deverá saber o nome do computador ou Host que deseja acessar.
Normalmente, esta máquina solicitará a identificação do usuário e também uma senha. A identificação do
usuário, também chamada de conta, user-id, username, login, serve para que o computador que está sendo
acessado identifique se você é um usuário autorizado a utilizá-lo. Já a senha, também chamada de password,
prova que é realmente você que está solicitando acesso. Este processo é semelhante ao que você realiza
quando utiliza um caixa eletrônico de banco.

FTP

O FTP (File Tranference Protocol) é o protocolo usado na Internet para transferências de arquivos entre
computadores. O FTP é um dos recursos mais importantes disponíveis na Internet, e também responsável por
um grande volume de tráfego de dados.

A principio, o FTP é feito para transferir arquivos de uma máquina remota conectada a Internet, na qual o
usuário deve ter uma conta (login) e uma senha (password) para entrar nessa conta. A partir disso, pode-se
navegar entre os diretórios dessa conta e transferir os arquivos dela para seu computador local, ou vice-versa.
Contudo, uma possibilidade muito interessante, é o fato de muitos computadores permitirem que você os
acesse remotamente (embora de forma restrita) mesmo sem ter uma conta ou senha - o chamado FTP
anônimo (anonymous FTP).

FIREWALL

25
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
O objetivo principal de Firewall é controlar o tráfego entre redes de computadores. Além de agir como um
escudo para proteger a rede interna de possíveis ataques originados da Internet, faz a proteção no sentido
contrário, filtrando tráfego oriundo da rede interna.
A Maioria das empresas possui firewall a fim de proteger os ataques externos (hackers), mas também para
controlar o que seus funcionários devem ou não acessar.

Segurança: Quando a você se conecta à Internet através do seu computador, surgem uma série de riscos a
segurança dos dados e informações do seu computador, podendo ocasionar graves perdas. É ilusão
pensar que existe uma rede completamente livre de erros, porém uma estrutura adequada é projetada de
forma a maximizar a segurança e minimizar os riscos sem degradar a utilização dos serviços oferecidos.
Por isso deve-se tomar as precauções necessárias.

• Precauções:

Correio Eletrônico: Muitos dos vírus tem como meio de propagação as mensagens eletrônicas que são
recebidas com anexo. NUNCA abra um arquivo anexado à mensagem, quando você não reconhece o
destinatário. UTILIZE O ANTIVÍRUS da sua confiança.

WWW: Evite os sites de bate-papo, CUIDADO ao fazer transações eletrônicas, verifique se o site que você
vai fazer a transação possui criptografia (os sites que utilizam criptografia possuem um cadeado fechado
em algum lugar da página).

Que Software Utilizar?

• Software para utilização dos serviços da Internet : Microsoft Internet Explore. Mas a turma antimicrosoft
pode usar o concorrente Netscape Navegator.
• Correio Eletrônico: Pode ser usado Outlook Express, componente do Microsoft Internet Explore.
• WWW: Pode ser usado o Microsoft Internet Explore.
• FTP: O Microsoft Internet Explore é capaz de fazer a maior parte dos “downloads”.

Como navegar?

Navegar pela Internet é muito interessante. A primeira providência é entender o Software (programa de
navegação), o Microsoft Internet Explore, por exemplo. A seguir estão relacionados os botões que são
utilizados mais freqüêntemente.

• Barra de Endereços: Exibe a URL (Endereço) da página apresentada na tela.


• Botão Atualizar: Utilizado para recarregar a página novamente, no caso de alguma atualização depois
da última visita.
• Botão Página Inicial: Utilizado para voltar para a página principal do seu provedor ou outra qualquer
cadastrada como página inicial.
• Botão Parar: Utilizado para parar de carregar uma página muito demorada
• Botão Voltar: Utilizado para voltar para as páginas anteriores
• Botão Avançar: Utilizado para avançar páginas já visitadas depois de retornar
• Barra de Status: Utilizada para visualizar o processo de carga de uma página, arquivos e percentual
faltante
• Janela do Explorer: Exibe janela do Windows em movimento quando carregando uma página.

GLOSSÁRIO SOBRE VIRUS

a) ANTIVÍRUS:
Programa ou software especificamente desenvolvido para detectar, anular e eliminar vírus de computador.

b) BACKDOOR:
Programa que permite a um invasor retornar a um computador comprometido. Normalmente este programa é
colocado de forma a não ser notado, sem precisar recorrer aos métodos utilizados na realização da invasão. A
forma usual de inclusão de um backdoor consiste na adição de um novo serviço ou substituição de um
determinado serviço por uma versão alterada, normalmente incluindo recursos que permitam acesso remoto
26
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
(através da Internet). Uma outra forma se dá através de pacotes de software, tais como o BackOrifice e
NetBus, da plataforma Windows.

c) CAVALO DE TRÓIA (Trojan Horse):


Programa que além de executar funções para as quais foi aparentemente projetado também executa outras
funções normalmente maliciosas e sem o conhecimento do usuário. Por definição, o cavalo de tróia distingue-
se de vírus e worm, por não se replicar, infectar outros arquivos, ou propagar cópias de si mesmo
automaticamente. Podem existir casos onde um cavalo de tróia contenha um vírus ou worm. Geralmente um
Cavalo de Tróia vem anexado a um e-mail ou está disponível em algum site na Internet. O simples fato de ler
uma mensagem é suficiente para que qualquer arquivo (executável) anexado seja executado.

d) COOKIES:
Cookies são pequenas informações que os sites visitados por você podem armazenar em seu browser, tais
como: guardar a sua identificação e senha quando você vai de uma página para outra.

e) CRIPTOGRAFIA:
Criptografia é a ciência e arte de escrever mensagens em forma cifrada ou em código. é parte de um campo de
estudos que trata das comunicações secretas. é usada, dentre outras finalidades, para: autenticar a identidade
de usuários; autenticar transações bancárias; proteger a integridade de transferências eletrônicas de fundos, e
proteger o sigilo de comunicações pessoais e comerciais.

f) DENIAL OF SERVICE (Negação de Serviço):


Nos ataques de negação de serviço (DoS - Denial of Service) o atacante utiliza um computador para tirar de
operação um serviço ou computador conectado `a Internet. Exemplo deste tipo de ataque é gerar uma grande
sobrecarga no processamento de dados de um computador, de modo que o usuário não consiga utilizá-lo.

g) ENDEREÇO IP:
Este endereço é um número único para cada computador conectado à Internet, composto por uma seqüência
de quatro números que variam de 0 até 255 separados por ".".

h) ENGENHARIA SOCIAL:
Método de ataque onde uma pessoa faz uso da persuasão, muitas vezes abusando da ingenuidade ou
confiança do usuário, para obter informações que podem ser utilizadas para ter acesso não autorizado a
computadores ou informações, tais como um ataque realizado por telefone.

i) FIREWALL:
Dispositivo constituído pela combinação de software e hardware, utilizado para dividir e controlar o acesso
entre redes de computadores.

j) FIREWALL PESSOAL:
Um software ou programa utilizado para proteger um computador contra acessos não autorizados vindos da
Internet, e constitui um tipo específico de firewall.

k) HOAX (boato):
Mensagem recebida por e-mail, cujo conteúdo é alarmante e normalmente falso. Pode ser visto como um vírus
social, pois utiliza a boa fé das pessoas para se reproduzir, sendo esse o seu principal objetivo.

l) SENHA:
Conjunto de caracteres, de conhecimento único do usuário, utilizado no processo de verificação de sua
identidade, assegurando que ele é realmente quem diz ser.

m) SITE:
Local na Internet identificado por um nome de domínio, constituído por uma ou mais páginas de hipertexto,
que podem conter textos, gráficos e informações multimídia

n) SPAM:
Termo usado para se referir aos e-mails não solicitados, que geralmente são enviados para um grande número
de pessoas. Quanto o conteúdo é exclusivamente comercial, este tipo de mensagem também é referenciada
como UCE (do inglês Unsolicited Commercial Email). Spammer, pessoa que envia SPAM.
27
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

o) VÍRUS:
Vírus é um programa capaz de infectar outros programas e arquivos de um computador. Para realizar a
infecção, o vírus embute uma cópia de si mesmo em um programa ou arquivo, que quando executado também
executa o vírus, dando continuidade ao processo de infecção.

p) VÍRUS DE MACRO:
Uma macro é um conjunto de comandos que são armazenados em alguns aplicativos, e utilizados para
automatizar algumas tarefas repetitivas. Um vírus de macro é escrito de forma a explorar esta facilidade de
automatização e é parte de um arquivo que normalmente é manipulado por algum aplicativo que utiliza macros.
Para que o vírus possa ser executado, o arquivo que o contém precisa ser aberto e, a partir dai, o vírus pode
executar uma série de comandos automaticamente e infectar outros arquivos no computador.

q) VULNERABILIDADE:
Vulnerabilidade é definida como uma falha no projeto ou implementação de um software ou sistema
operacional, que quando explorada por um atacante resulta na violação da segurança de um computador.

r) WORM:
Worm é um programa capaz de se propagar automaticamente através de redes, enviando cópias de si mesmo
de computador para computador. Diferente do vírus, o worm não necessita ser explicitamente executado para
se propagar. Sua propagação se dá através da exploração de vulnerabilidades existentes ou falhas na
configuração de softwares instalados em computadores. Geralmente o worm não tem como conseqüência os
mesmos danos gerados por um vírus, Worms são notadamente responsáveis por consumir muitos recursos.
Degradam sensivelmente o desempenho de redes e podem lotar o disco rígido de computadores, devido à
grande quantidade de cópias de si mesmo que costumam propagar.

9. Construção de Algoritmos
Denomina-se algoritmo um conjunto finito de regras bem determinadas para a resolução de um só problema
(expressas numa linguagem qualquer). Estas regras representam seqüências de instruções que determinam o
que o computador vai fazer (o quê?), o modo como o vai fazer (como?) e a ordem pela qual as instruções irão
ser executadas (quando?).

Uma receita de cozinha é um exemplo de algoritmo. Na realidade, ela apresenta uma descrição cronológica
dos passos necessários para transformar os ingredientes num produto comestível. No entanto, o fato de uma
receita existir na mente de alguém, ou se encontrar descrita num livro, não significa que o prato a que
corresponde esteja já servido em cima da mesa.

A metáfora da cozinha poderá ajudar a compreender melhor o que se passa quando utilizamos um
computador. Admita-se que numa cozinha se verifica a seguinte situação. Trabalham nela 2 pessoas. Uma
limita-se a conceber as receitas da comida, mas recusa-se a prepará-la. A outra apenas executa essas
receitas, que não é capaz de conceber. Nestas circunstâncias, para que se consiga fazer um prato é
necessário que o autor da receita a comunique primeiro ao executante da receita e que este então a execute.
Sucede, porém, que, na nossa situação hipotética, estas 2 pessoas falam línguas diferentes e nenhuma
compreende a língua da outra.

Uma tal “babilônia culinária” é muito análoga ao que se verifica no que respeita à relação entre quem concebe
um programa (o autor da "receita") e o computador que o executa (o executante da "receita"). O computador
não é capaz de entender o que lhe dizemos em linguagem vulgar (também chamada linguagem natural). As
pessoas também só com muita dificuldade compreendem a linguagem do computador (uma linguagem feita de
números e operações). Além disso, ainda não foi possível administrar um curso de línguas ao computador que
lhe permita falar normalmente conosco. Pôr outro lado, é também extremamente difícil que as pessoas sejam
capazes de se exprimir na língua materna do computador.

A solução de compromisso presentemente adotada consiste em ensinar, quer à pessoa quer ao computador,
uma nova língua na qual é de fato possível que ambos comuniquem (uma espécie de língua veicular, como o é

28
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
para nós, portugueses, o inglês). Estas línguas que o computador é capaz de perceber denominam-se
linguagens de programação.

Algumas linguagens de programação têm uma estrutura muito mais próxima da língua falada do que outras. As
primeiras denominam-se linguagens de programação de alto nível e as segundas denominam-se linguagens de
programação de baixo nível. É mais difícil elaborar programas em linguagens de programação de baixo nível,
na medida em que estas requerem instruções muito mais detalhadas e crípticas (estão mais próximas da
linguagem cabalística do computador).

A língua materna do computador, que ele de fato utiliza, denomina-se linguagem máquina (Assembler). O único
dote lingüístico de que o computador dispõe é a capacidade para traduzir, instruções que são expressas numa
linguagem de programação para instruções expressas em linguagem máquina, sem a ajuda direta do usuário.

Um programa é um conjunto de frases que exprimem um ou mais algoritmos, frases essas expressas numa
linguagem de programação (para que possam ser "compreendidas" pelo computador).

O termo software é um termo geral que designa os programas utilizados pelos computadores. Não abrange o
suporte material, como disquetes ou CD-ROM, em que estão incorporados e refere-se apenas às instruções
abstratas que constituem os programas.

O tratamento de problemas por computador geralmente envolve grande quantidade de dados, e são em geral
de natureza simples com grande volume de dados (área de processamento de dados) ou de natureza
complexa que envolve poucos dados (área de processamento científico).

Como solucionar problemas utilizando o computador

Criar de uma seqüência de passos (operações ou comandos) que, quando executados, produzem o resultado
do problema (Algoritmo). A seguir executara seqüência de passos mencionada.

Cuidados devem ser tomados no desenvolvimento de algoritmos: algoritmo errado gera resultado errado.

Representação de Algoritmos: Pseudo-Linguagem

Algoritmos podem ser representados de duas maneiras:


a) uma mais próxima (entendida) pelas pessoas (desenvolvido usando pseudo-linguagem ou pseudo-código)
b) uma entendida pelo computador (desenvolvido usando linguagem de programação)

Uma pseudolinguagem possui as seguintes características:

• Utilização de certas palavras-chave, que indicam a natureza da operação a ser efetuada em certos
passos do algoritmo.
• Utilização de espaços no começo das linhas do algoritmo para ressaltar a estrutura do algoritmo
• Numeração do passos do algoritmo

Comandos

• Inicio-algoritmo representa o inicio do algoritmo;


• Fim-algoritmo  representa o fim do algoritmo;
• Leia A  significa ler um valor de uma unidade de entrada e armazenar em A. Caso exista um valor
em A este é destruído e substituído pelo novo valor lido.
• Escreva A  significa exibir o conteúdo de A. Não destrói o valor exibido. Pode-se exibir uma
mensagem colocando entre aspas. Escrever “resposta”
• A C+B significa A recebe a soma do conteúdo de C com B;
• Atenção o símbolo  tem significado diferente da matemática pois primeiro realiza a operação depois
atribui o resultado para a variável A

Exemplo: algoritmo para somar dois números.

29
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Início-Algoritmo
1. pegar o primeiro número
2. pegar o segundo número
3. somar o primeiro número com o segundo
4. mostrar o resultado da soma
Fim-algoritmo.

Em um algoritmo, os passos podem pertencer a uma das três naturezas (estruturas):

1. uma operação elementar


2. uma operação de controle especificando uma seleção entre seqüência de passos (comandos)
3. uma operação de controle especificando a repetição de uma seqüência de passos (comandos)

Seleções (Decisão)

1. com um ramo
se (condição)
então seqüência de passos

2. com dois ramos


se (condição)
então seqüência de passos 1
senão seqüência de passos 2

Repetições

1.Enquanto (teste do início)


Enquanto (condição)
seqüência de passos
Fim enquanto

2. Repita (teste no fim)


Repita
seqüência de passos
Até que (condição)

3. Para (repetir um número conhecido de vezes)


Para (número de repetições)
seqüência de passos
Fim para

Exemplo de algoritmo

Atividade: “Confeccionar um bolo”

Passos da atividade:
• Selecionar os ingredientes;
• Verificar se falta algum;
• Comprar se faltar;
• Preparar a massa;
• Colocar a massa na forma;
• Assar até o bolo ficar pronto; e
• Tirar da forma o bolo pronto.

O Fluxograma ao lado representa graficamente o algoritmo da


atividade descrita acima. Nele podem ser vistas as duas
estruturas: Uma seleção simples e uma repetição com a
condição no final.

30
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Algoritmo “Confeccionar um bolo”

Início-algoritmo

Selecione Ingredientes
Se (falta ingrediente)
Então
Compre ingrediente
Fim-se
Prepere a massa
Coloque a massa na forma
Repita
Asse o bolo
Até que (bolo pronto)
Tire da forma

Fim-algoritmo

10. Comunicação com o PC


A Linguagem do PC

Sempre que desejamos conhecer novas culturas e adquirir mais conhecimento, a primeira dúvida com que nos
deparamos é de que forma será feita essa comunicação, que recursos serão empregados e que linguagem
será utilizada.

Se o diálogo entre pessoas apresenta essas dificuldades iniciais, o que podemos dizer sobre a comunicação
entre o homem e a máquina.

O “diálogo” entre o PC e o usuário é realizado através dos componentes de entrada e saída do computador,
também conhecidos como elementos de I/O.

As interfaces diretamente relacionadas aos procedimentos de troca de informações entre o usuário e o PC são:
o teclado, o monitor de vídeo e a impressora. Com o advento dos softwares de apresentação gráfica (tipo
windows) o mouse passou a ser uma das ferramentas mais importantes, atuando para que esse troca ocorra
de forma ágil.

Sem que se note toda instrução digitada no teclado, ou passada através do mouse é traduzida internamente no
PC para a “linguagem de máquina” (que só o computador entende). Essa tradução é feita a partir de um código
padrão denominado ASCII (American Standard Code for Information Interchange).

O código ASCII foi criado em 1968 e tem por objetivo representar letras e outros caracteres gráficos através de
códigos numéricos, ou seja, cada símbolo possui um código que pode ser traduzido para o sistema binário.

Na memória do computador os caracteres são armazenados sob a forma de bytes (cada byte é formado por
um conjunto de oito ou mais bits) que é a unidade básica de medida de dados do PC.

Para executar procedimentos tais como, apresentar um caracter na tela, os programas do PC têm que informar
o código ASCII ao computador, para que o caracter seja apresentado.

Por exemplo, quando pressionamos a tecla “A” é enviado para a memória do computador o código ASCII 65
(em bytes: 0100 0001). Para o usuário do PC tal procedimento é “transparente”.
31
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Linguagem de Programação

A representação de algoritmos em uma pseudo-linguagem (pseudo-código) mais próxima às pessoas é


bastante útil principalmente quando o problema a ser tratado envolve um grande número de passos. No
entanto, para que esses passos possam ser entendidos pelo computador é necessário representar tal algoritmo
em uma linguagem de programação.

• Pascal
• Delphi
• Fortran
• C
• C++

As linguagens de programação obrigam o uso de formas rígidas na especificação de seus passos, ou seja,
obrigam as pessoas a detalharem as operações que deverão ser executadas. Uma dica aqui é refinar a
solução do problema de um nível mais abstrato até chegar ao nível de detalhamento que deve ser
representado em uma linguagem de programação. Essa prática, além de prover um tipo de documentação,
também ajuda muito no tratamento dos erros que eventualmente possam surgir.

Convencionamos aqui que um algoritmo representado em uma linguagem de programação é um programa.


Ex.: programa em Pascal para somar dois números.

program somadoisnum;
{ esse programa soma dois números e exibe o resultado na tela }
var
n1, n2, result : integer;
begin
readln(n1);
readln(n2);
result := n1 + n2;
writeln(result);
end.

Os algoritmos descritos em pseudolinguagem (pseudocódigo) não podem ser executados (entendidos) por
computadores. sendo necessário ainda uma fase de tradução da linguagem de programação para a linguagem
que a máquina entenda. Essa fase é conhecida por compilação, e é realizada pelo Compilador.

Para editar, descobrir erros em um programa e gerar o seu executável podem ser usadas as seguintes
ferramentas:

• Editor de Programas - é um software cuja finalidade é facilitar a criação, edição e gravação do


código-fonte dos programas.

• Depurador - é um software utilitário normalmente incluído em compiladores ou interpretadores com a


finalidade de ajudar os programadores a identificar e corrigir erros de lógica que possam existir no
código-fonte.

• Compilador – é um software que lê as instruções escritas numa linguagem de programação legível


pelas pessoas (Ex.: Pascal), e as traduz num programa executável que o computador consegue
entender e processar diretamente. O Compilador analisa o texto do programa e fornece a descrição e
localização dos erros de sintaxe porventura existentes.

• Link-editor - é um software que combina programas separados e padroniza as chamadas ou


referências dentro delas.

32
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
• Executor de programas - é um software que processa as instruções de um programa.

11. Introdução ao Pascal


Pascal é uma linguagem de programação que foi desenvolvida entre 1968 e 1970, pelo professor Niklaus
Wirth, docente da Universidade de Zurique, Suíça, que lhe atribuiu esse nome em homenagem ao filósofo e
matemático francês, Blaise Pascal, inventor da primeira calculadora.

O TURBO PASCAL da Borland Corporation é um ambiente integrado de desenvolvimento. A sua primeira


versão data do início dos anos 80, nesta época implementada para os equipamentos de 8 bits. Desde então
tem sido aprimorado continuamente, tanto para facilitar o seu uso pelo usuário quanto para incorporar novas
técnicas e recursos na linguagem de programação.

O TURBO PASCAL não se trata apenas de um compilador, mas de um Ambiente Integrado,pois inclui um
Editor de Programas, um Compilador, um Link-editor, o Executor de Programas e um Depurador.

Os conceitos de programação Pascal serão abordados por meio de exemplos, que serão implementados no
compilador Pascal ZIM!.

O compilador PASCAL ZIM!, fruto de muitos anos de pesquisa e trabalho na área de tradutores e linguagens,
foi desenvolvido dentro do Departamento de Ciências da Computação da Universidade de Brasília.

A ferramenta foi exaustivamente testada em laboratório, mas ainda assim não se encontra livre de erros de
implementação. A correção destes será efetuada tão breve quanto sua descoberta, levando à disponibilidade
de versões mais atualizadas do compilador.

O compilador implementa um subconjunto da linguagem Pascal e contém as estruturas de dados, funções e


comandos mais utilizados por iniciantes no estudo dessa linguagem. O arquivo de ajuda que acompanha o
produto especifica as instruções suportadas.

O Pascal ZIM! foi concebido com finalidade meramente educacional e sua distribuição é livre.

• Estrutura principal

Um programa escrito na linguagem Pascal`pode ser, basicamente, estruturado em três regiões significativas:
1. SEÇÃO DE CABEÇALHO, que dá nome ao algoritmo;
2. SEÇÃO DE DEFINIÇÃO E DECLARAÇÃO DE DADOS;
3. SEÇÃO DE COMANDOS, que contém as instruções do programa.

O cabeçalho de um programa é iniciado com a palavra reservada Program, seguido de um nome identificador
do programa e um ponto e vírgula.

Exemplo
Program MeuPrograma;

A seção de definição e declaração de dados segue o cabeçalho do programa, e é o local onde são definidas as
constantes e os tipos que serão usados dentro do programa. Nesta seção também são declaradas as variáveis
globais do programa, e definidas as funções e procedimentos que podem vir a ser utilizados pelo programa
principal.

Essa seção consiste das seguintes partes:

Parte Função Exemplo


USES Informa as unidades a serem utilizadas. Caso uma rotina
USES CRT; (usa o monitor)
Declaração não esteja no corpo do programa, a instruções
USES PRN; (usa a impressora)
das UNITs necessárias serão procuradas nas unidades relacionadas
33
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
CONST
Atribui a identificadores valores constantes que não CONST
Declaração
poderão ser alterados dentro do programa NMAX = 100;
das constantes
VAR
VAR Define as variáveis usadas e seu tipo NOME: STRING[30];
IDADE:INTEGER;
TYPE
TYPE Define um tipo de variável criada pelo usuário
ALUNO=STRING[60];
PROCEDURE Define as instruções de um sub programa PROCEDURE LER;
FUNCTION Define as instruções de uma função FUNCTION SOMA:INTEGER;

A definição de cada uma dessas partes é opcional, mas deve seguir a ordem estabelecida. Por exemplo, uma
função não pode ser definida antes da declaração de uma variável.

Em seguida, deve ser elaborada a região de comandos. Esta região é iniciada com a palavra reservada Begin
e terminada com a palavra reservada End, seguida de um ponto. Entre as palavras Begin e End devem ser
colocados os comandos do programa.

34
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
O formato genérico de um programa escrito na linguagem Pascal tem a seguinte estrutura:
program cabeçalho;
{declarações}
begin
{comandos}
end.
Onde: Program, Begin e End são palavras reservadas da linguagem Pascal.

As palavras reservadas ou palavras chave da linguagem, que não podem ser declaradas como identificadores.
Elas definem o tipo de dados ou estrutura que se deseja utilizar.

• Palavras Chaves (reservadas):

And, array, begin, case, const, div, do, downto, else, end, file, for, function, goto, if, in, label, mod, nil, not, of, or,
packed, procedure, program, record, repeat, set, then, to, type, until, var, while, with

• Identificador

Os identificadores são os nomes das variáveis, dos programas, das constantes, das rotinas e das unidades.

As regras para formação dos identificadores são:


 Podem ter qualquer tamanho, porém somente os 63 primeiros caracteres serão considerados;
 Podem ter letras e números ou underscore (sublinhado _);
 Não podem ter espaços em branco ou caracteres especiais ( )*&%$#@!+-=/?><.;
 Não pode ser uma palavra reservada;
 Podem ser usadas letras maiúsculas ou minúsculas;
 Iniciam sempre por uma letra;
 Um identificador é formado por uma única letra, ou então por uma letra seguida de letras ou dígitos, em
qualquer quantidade;
 Considera-se dois identificadores como distintos quando considerados seus oito primeiros caracteres.

Portanto, um identificador válido na linguagem Pascal é qualquer seqüência de caracteres que obedeça às
seguintes regras:

1. Seja iniciada por um caractere alfabético (a, b, ..., z) ;


2. Possui, após o primeiro caractere, uma seqüência de caracteres que podem ser alfabéticos,
numéricos (1, 2, ... , 9, 0) ou ainda o caractere _ ;
3. Não seja uma palavra reservada da linguagem Pascal.

Exemplos
• Identificadores válidos na linguagem Pascal:
A
Nota
P1
Meu_identificador

• Identificadores inválidos na linguagem Pascal:


1A
E(13)
A:B

• Comentários

Os comentários são identificados por estarem delimitados pelos caracteres { e }, ou pelo caracteres (* e *).
Comentários são ignorados pelo compilador na fase de tradução do programa. Comentários são úteis no
sentido de destacar ou documentar o programa, para torná-lo mais legível e fácil de entender o seu objetivo,
quando retomado para correção ou alteração depois de determinado tempo.

35
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Podem ser utilizados, também, // no início (à esquerda) do comando a ser ignorado.

Declarações

As declarações em um programa estão relacionadas à alocação de memória para os dados que serão
utilizados no decorrer do programa. O montante da memória alocado está relacionado ao tipo de dado a ser
utilizado. Podem ser declarados aqui regiões de memória que podem ter seu conteúdo alterado (variáveis),
regiões de memória que não são permitidos a alteração de seu conteúdo, e também outros tipos além dos pré-
definidos pela linguagem.

11.1 Tipos
Todas as variáveis declaradas dentro de um programa devem ser especificadas através de um tipo.
Um tipo é uma especificação que:
• Indica o espaço em memória necessário para o armazenamento de um dado (ou conjunto de dados)
• Define o conjunto de operações que pode ser aplicada a um dado (ou conjunto de dados)

Os tipos implementados no compilador podem, basicamente, serem classificados em três categorias:


• Tipos predefinidos (Boolean, Char, String, Integer e Real)
• Tipos estruturados (Enumerações, Vetores, Ponteiros e Registros)
• Tipos definidos (seção de definição de tipos é indicada através da palavra reservada Type)

Os tipos de dados predefinidos na linguagem Pascal, e implementados no compilador PASCAL ZIN!, são:

 Boolean
Define dois valores lógicos: FALSE e TRUE.
Um dado do tipo booleano ocupa um byte de espaço na memória.

 Char
Define os elementos do conjunto de caracteres que compõem o alfabeto ASCII, adicionados dos
caracteres representados pelos códigos de 128 a 255.
Um dado do tipo char ocupa um byte de espaço na memória.

 String
Define uma cadeia de caracteres. Se nenhuma restrição de tamanho for especificada, um dado do tipo
string é capaz de armazenar uma sequência contendo até 255 caracteres, onde cada caracter ocupa
um byte de espaço na memória.

Uma cadeia de caracteres pode ter seu tamanho definido (contendo menos de 255 caracteres), onde o
tamanho especifica o número máximo de caracteres contidos na cadeia. Essa especificação deve ser
indicada entre colchetes, logo após a palavra reservada string,
Exemplo:
string [6] define uma cadeia capaz de armazenar até 6 caracteres.

Uma cadeia de caracteres definida com n caracteres ocupa n bytes de espaço na memória

Tipos Numéricos

Os tipos numéricos podem ser inteiros ou reais.

 Integer
Define os valores inteiros compreendidos no intervalo de - 32.768 até 32.767
Um dado do tipo integer ocupa dois bytes de espaço na memória.

 Real
Define os valores reais definidos no intervalo de De 2,9 x 10 –39 a 1,7 x 10 38 (10 a 12 dígitos).
Um dado do tipo real ocupa seis bytes de espaço na memória.
36
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

• Os números inteiros podem ser positivos ou negativos e não possuem parte fracionária.

37
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
A faixa de valores inteiros possíveis está relacionada com a definição do seu tipo
Tipo Faixa Tamanho em bytes
Shortint De - 128 a 127 1
Integer De – 32.768 a 32.767 2
Longint De – 2.147.483.648 a 2.147.483.648 4
Byte De 0 a 255 1
Word De 0 a 65.535 2

Exemplos:
4 -123 57

• Os números reais podem positivos ou negativos e possuem parte fracionária


A faixa de valores inteiros possíveis está relacionada com a definição do seu tipo
Tipo Faixa Tamanho em bytes
Real De 2,9 x 10 –39 a 1,7 x 10 38 (10 a 12 dígitos) 6
Single De 1,5 x10-45 a 3,4 x10 38 4
Double De 5,0 x 10 –324 a 1,7 x 10 308 8
Extended De 3,4 x 10 –4932 a 1,1 x 10 4932 10
Comp De –9,2 x 10 18 a 9,2 x 10 18 8

Observações:
• Nos números reais, a separação da parte inteira da parte fracionária é representada pr um (.) ponto e não
pela (,) virgula;
• Não pode haver espaços em branco entre os algarismos usados;
• Se existir o ponto decimal, pelo menos um dígito deve preceder e um dígito deve suceder o ponto;
• Podemos representar os valores reais pela notação escalar ou exponencial.

Exemplos:
5.32 -34.89
7.8E3 – onde a letra E significa 10 elevado a, assim teremos 7.8 x 1000 = 78000
7.8 E-1 – significa 7.8 x 0,1= 0,78

11.2 Variáveis
A declaração de uma variável faz com que o compilador reserve uma quantidade de espaço em memória
suficientemente grande para armazenar um tipo de dados, além de associar também um “nome” a esta posição
de memória. As variáveis são declaradas na seção de declaração de variáveis, contida na seção de definição e
declaração de dados.
O início da seção de declaração de variáveis é indicado através da palavra reservada Var. A palavra reservada
Var deve aparecer somente uma única vez dentro da seção de definição e declaração de dados.
Sintaxe
var
Identificador1, identificador2, .... , identificadorn : tipo ;

Exemplo: A declaração abaixo define: duas variáveis do tipo real, duas variáveis do tipo inteiro, uma variável
do tipo booleano, duas variáveis do tipo caractere e uma variável do tipo string com 10 posições.

var
moeda, X12 : real;
j, codigo : integer;
flag : boolean;
letra1, letra2 : char;
nome : string[10];

11.3 Constantes
Define identificadores que não se alteram durante a execução do algoritmo.
38
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
As constantes são declaradas na seção de declaração de constantes, definida dentro da seção de definição e
declaração de dados.

O início da seção de declaração de constantes é indicado através da palavra reservada const. A palavra
reservada const marca o início da seção de definições de constantes, e deve aparecer somente uma única vez
dentro da seção de declarações e definições.

Sintaxe
const
Identificador1, identificador2, .... , identificadorn = constante ;
onde constante deve ser uma constante inteira, real, uma cadeia de caracteres ou um único caractere.

Exemplo: A declaração abaixo define a constante PI:


const
pi = 3,1415;

11.4 Declaração de outros Tipos


Além dos tipos pré-definidos pela linguagem Pascal, há a possibiliade de se definir outros tipos.

Exemplo:
type
LETRASMA = ´A´ .. ´Z´;
INDICES = 0 .. 100;
DIAS = (dom, seg, ter, qua, qui, sex, sab);
var
diasemana : DIAS;

11.5 Expressões Aritméticas


A lista seguinte mostra as operações aritméticas básicas da linguagem com sua prioridade de execução
quando agrupadas em uma expressão aritmética.

Prioridade Operadores Operação


1 * a*b retorna o valor real do produto
1 / a/b retorna o valor real do quociente de a/b
1 div a div b retorna o valor inteiro do quociente de a/b.
1 mod a mod b retorna o valor do resto da divisão a/b.
2 + a+b retorna o valor real da soma
2 – a-b retorna o valor real da subtração
OBS: Pode-se definir a prioridade de execução das operações com a utilização de parenteses.

Exemplo: a =1, b = 2, c = 3
• a+b*c=9
• c / b * a = 0.5
• c div b = 1
• c mod b = 1

11.6 Funções Numéricas Pre-definidas


Em Pascal há algumas funções numéricas pré-definidas.
sintaxe função sintaxe função
ln(EA) logaritmo neperiano sqr(EA) quadrado
exp(EA) número “e” elevado a EA sqrt(EA) raiz quadrada
abs(EA) valor absoluto sin(EA) seno
trunc(EA) valor truncado cos(EA) coseno

39
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
round(EA) valor arredondado arctan(EA) arco tangente
onde: EA é uma expressão aritmética.

Exemplos: a =1, b = 2, c = 3

Sqrt (c * a + a – sqr (b + a) / 9) = 3
Cos (sqr (a + 2 * b) + 20 * c + 5) = 0

11.7 Expressões Lógicas


Expressão lógica é uma expressão cujos operadores são os operadores lógicos e cujos operandos são
relações e/ou variáveis.

Uma relação é uma comparação realizada entre valores do mesmo tipo. Estes valores são representados na
relação por constantes, variáveis ou expressões do tipo correspondente. A natureza da comparação é indicada
por um operador relacional que pode ser:

Operadores relacionais relações


= igual
<> diferente
<= menor ou igual
< menor
>= maior ou igual
> maior
IN contido em (conjunto)

O resultado de uma relação é sempre um valor lógico: TRUE ou FALSE

Exemplos:

a <> b
nome = ´Maria´
x*y+5*b>0
x = 10
Operadores lógicos Operação
and conjunção
or disjunção
not negação
Exemplos:
(a + b = 0) and (c <> d)
Sim or (a * b > c)
Not verdade and cor = “verde”

11.8 Prioridades
Pascal permite a construção de expressões compostas de várias pequenas expressões, desde que os tipos de
dados das expressões sejam os mesmos, a ordem em que a expressão é escrita também é levada em
consideração. Veja o exemplo:

x*y*z

Neste exemplo em particular, a ordem em que a expressão foi escrita é irrelevante, numa multiplicação, não
importa a ordem, o resultado é sempre o mesmo. Mas isto não é verdade para todas as operações, algumas
expressões dão resultados diferentes, dependendo de qual operação é realizada primeiro. Veja o exemplo

x + y / 100

40
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Usando parênteses ( ), você pode direcionar o compilador Pascal para executar uma operação primeiro. Por
exemplo, para a expressão de o exemplo anterior deixar de ser ambígua, você deveria escrever (x + y) / 100.

Sem parênteses, o compilador vai efetuar as operações na ordem em que aparecem e seguindo uma certa
prioridade, as operações com maiores prioridades são efetuadas primeiro.

é equivalente a: x + (y / 100)

Para tornar seu código mais fácil de ler e manter, é recomendável, deixar explícito e indicado com parênteses
qual a operação que deve ser realizada primeiro. Segue abaixo uma tabela de prioridades.

Prioridade Operadores
1 not
2 *, /, div, mod, and
3 +, -, or
4 =, <> , <, <=, >, >=, in

11.9 Comando de Atribuição


Um comando de atribuição altera o conteúdo de um identificador (lado esquerdo) pelo valor resultante da
expressão (lado direito). A variável e a expressão devem ser do mesmo tipo, exceto no caso em que a variável
é do tipo real e o resultado da expressão é do tipo inteiro, quando o valor inteiro da expressão é transformado
em real.

identificador := expressão

Exemplos:

var
a, c, n, soma, x , y : integer;
k, media, total: real;
cod, sim,teste : boolean;
cor : string;

k := 1;
cor := ´verde´;
teste := FALSE;
a := b;
media := soma / n;
cod := sqr(n) + 1 >= 5;
sim := (x=0) and (y <> 2);
total := sqrt(n) + sqr(x) + y;
n := x / y;
11.10 Comandos de Entrada e Saída
READ e READLN
São os comandos de entrada usados em Pascal. Lista de variáveis são os nomes das variáveis do tipo
STRING, INTEGER, CHAR, ou REAL, cujos valores serão lidos na unidade de entrada. Os identificadores
contidos na lista, devem estar separados por vírgula.

A diferença entre estes dois comandos de entrada é que o comando READ lê os valores das variáveis da lista
deixando o valor seguinte desta linha, se houver, disponível para o próximo comando de entrada. Ao contrário,
o comando READLN lê os valores das variáveis da lista e salta, se houver, os valores restantes da linha. Assim
o próximo comando de entrada não receberá esses valores adicionais contidos na linha. Os valores de entrada
deverão estar separados por espaço(s) ou por fim de linha.

41
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Os comandos read e readln são usados para ler o valor de uma variável de um dispositivo de entrada de
dados.

A leitura de dados pode ser direcionada para um arquivo, identificado por uma variável do tipo TEXT.

Sintaxe
READ ( < Lista de variáveis > );
onde < lista de variáveis > é uma sequëncia de uma ou mais variáveis separadas por vírgula.

A sintaxe de um comando read para leitura a partir de um arquivo é:


READ ( VariavelArquivo, < Lista de variáveis > );
onde VariavelArquivo é uma variável do tipo TEXT.

A diferença entre os dois comandos é que o comando readln processa uma quebra de linha após a leitura do
valor de uma variável, enquanto o read não o faz.
READLN ;

Exemplo
Program ExemploEntradaArquivo ;
var
arq: Text ;
caractere: char ;
begin
assign( arq, 'Teste.Pas' );
reset( arq );
while not eof( arq ) do
begin
read( arq, caractere );
write( caractere );
end;
end.

WRITE e WRITELN
São os comandos de saída usados em Pascal. lista-de-identificadores são os nomes das variáveis do tipo
STRING, INTEGER, CHAR, REAL ou BOOLEAN, cujos valores serão lidos na unidade de entrada. Os
identificadores contidos na lista, devem estar separados por vírgula.

Constantes e expressões de mesmo tipo podem aparecer nos comandos de saída. A diferença entre estes dois
comandos é que o comando WRITE escreve os valores numa ou mais linhas, deixando que o próximo
comando de saída continue escrevendo na última linha, se ainda houver espaço. Ao contrário, o comando
WRITELN escreve os valores em uma ou mais linhas, de modo que o próximo comando de saída comece a
escrever após a última linha.

Os comandos write e writeln são usados para imprimir o valor de uma sequência de expressões em um
dispositivo de saída de dados. A diferença entre os dois comandos é que o comando writeln processa uma
quebra de linha após imprimir o valor de uma sequência de expressões.
A escrita de dados pode ser direcionada para um arquivo, identificado através de uma variável do tipo TEXT.

A sintaxe de um comando write / writeln para impressão na tela de uma sequência de expressões é:
WRITE ( expressão1 , expressão2 , .... , expressãon ) ;

A sintaxe de um comando write / writeln para impressão em arquivo de uma sequência de expressões é:
WRITE ( VariavelArquivo, expressão1 , expressão2 , .... , expressãon ) ;
onde VariavelArquivo é uma variável do tipo TEXT.

A impressão de uma linha em branco é dada através de um comando writeln como abaixo:
WRITELN ;

42
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Exemplo
Program ExemploSaída1 ;
var
c: char ;
begin
writeln( 'Please press a key' );
c := Readkey;
writeln( ' Você pressionou ', c, ', cujo valor ASCII é ', ord(c), '.' ) ;
end.

Os parâmetros do comando write podem conter a especificação do seu comprimento. Tal especificação é
definida através da seguinte regra sintática:

expressão1 : tamanho
Onde expressão1 define o parâmetro e seu tamanho é uma expressão do tipo inteiro.

A impressão de constantes em ponto flutuante pode conter, além da especificação de comprimento, a


especificação do número de casas decimais a serem impressas. Essa especificação é dada através da
seguinte regra sintática:

Expressão2 : tamanho : casas decimais


Onde expressão2 é um parâmetro do tipo real, tamanho e casas decimais são expressões do tipo inteiro.

Exemplo
Program ExemploSaída2 ;
var
arq: text;
begin
assign( arq,'teste.txt' ) ;
rewrite( arq ) ;

writeln; { Impressão na tela }


writeln( 1:10, 2:20, 3:30 ) ;
writeln( 'a':10, 'b':20, 'c':30 ) ;
writeln( 'asd':10, 'bnm':20, 'cvb':30 ) ;
writeln( 2.1:10, 3.2:20, 4.3:30 ) ;
writeln( 2.1:10:2, 3.2:20:3, 4.3:30:4 ) ;

writeln; { Impressão no arquivo “teste.txt” }


writeln( arq, 1:10, 2:20, 3:30 ) ;
writeln( arq, 'a':10, 'b':20, 'c':30 ) ;
writeln( arq, 'asd':10, 'bnm':20, 'cvb':30 ) ;
writeln( arq, 2.1:10, 3.2:20, 4.3:30 ) ;
writeln( arq, 2.1:10:2, 3.2:20:3, 4.3:30:4 ) ;

writeln( arq ) ;
close( arq ) ;
end.

Exemplo apresentando a saída na tela:


program exemplo1;
var
a, b : real;
k : char;
begin
a := 3.2;
b := 5.81;
k := ´*´;
43
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
writeln('resultado: ', a:5, ' + ', b:5, ' = ', a+b:5, k);
writeln('resultado: ',a:5:1, ' + ', b:5:1, ' = ', a+b:5:1, k:1);
writeln('resultado: ',a:5:2, ' + ', b:5:2, ' = ', a+b:5:2, k:2);
writeln('resultado: ',a:5:3, ' + ', b:5:3, ' = ', a+b:5:3, k:3);
end.

Saída:
resultado: 3.2e+00 + 5.8e+00 = 9.0e+00*
resultado: 3.2 + 5.8 = 9.0*
resultado: 3.20 + 5.81 = 9.01 *
resultado: 3.200 + 5.810 = 9.010 *

11.11 Estruturas Condicionais


A condição deve ser uma expressão lógica. O comando pode ser um comando simples ou um comando
composto. Um comando composto é formado por diversos comandos (simples ou compostos), delimitados
pelas palavras BEGIN e END, além das estruturas de controle (condicional e de repetição).

Condição Simples

if condição
then comando1

Neste caso, comando1 só será executado se a condição for verdadeira.

Condição Composta

if condição
then comando1
else comando2

Neste caso, se a condição for verdadeira, será executado o comando1. Caso contrário será executado o
comando2.

Exemplo:
program condicional;
var
i, j: integer;
begin
i := 1;
j := 3;
if i < j then
writeln('i maior do que j'); else
writeln('j maior do que i'); if (i+j) > 0 then
writeln('soma de i com j é maior do que 0');
end.

11.12 Estruturas de repetição


Comando While

• Condição no Início
while condição do comando

Essa estrutura significa que enquanto a condição for verdadeira, o comando será executado repetidamente. Se
a condição for falsa, então a repetição será interrompida. Comando pode ser simples ou composto e condição
é uma expressão lógica.

44
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
Exemplo:
program repeticaoinicio;
var
i, soma : integer;
begin
i := 1;
soma := 0;
while (soma < 100) do
begin
i := i * 2;
soma := soma + i; end; writeln(soma);
end.

Comando Repeat

• Condição no Fim
repeat
comando
until condição

Nessa estrutura o comando é executado, e em seguida é verificada a condição. Se a condição for falsa, então
se repete a execução do comando. Se for verdadeira, então o laço é interrompido. Comando pode ser simples
ou composto e condição é uma expressão lógica. Nesta estrutura o comando é executado pelo menos uma
vez. Um ponto interessante para colocarmos aqui é a questão da condição.

Exemplo:
program repeticaofim;
var
i, soma : integer;
begin
i := 1;
soma := 0;
repeat
i := i * 2;
soma := soma + i;
until (soma >= 100);
writeln(soma);
end.

Comando For

• Número de Repetições Conhecido


for var-controle := valor-inicial to valor-final do comando
for var-controle := valor-inicial downto valor-final do comando

O significado dessas repetições é: a var-controle recebe o valor-inicial; verifica-se se o valor de var-controle


ultrapassa o valor-final; se não ultrapassa, o comando será executado; a seguir, var-controle recebe o valor
seguinte (no caso do for-to) ou valor anterior (no caso for-downto); verifica-se se ultrapassa o valor-final; se não
ultrapassar, o comando será executado; e assim sucessivamente.

Exemplo:
program repeticaofor; { Esse programa calcula 2 elevado n }
var
i, n, s : integer;
begin
s := 0;
read(n);
for i:= 1 to n do

45
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
s := s * 2;
writeln(s);
end.

11.13 Estruturas de Dados


Vimos anteriormente como um identificador referencia um tipo, como inteiro, real, char, boolean e string. A
linguagem Pascal também dispõe meios para que um mesmo identificador referencie vários dados, do mesmo
tipo ou de tipos diferentes.
Isso é conhecido em Pascal como variável estruturada. Há dois tipos dessas variáveis:

• Variáveis Compostas Homegêneas


• Variáveis Compostas Heterogêneas

Variáveis Compostas Homogêneas

São variáveis conhecidas em Pascal como arrays (vetores), e correspondem a um conjunto de dados de um
mesmo tipo. Essas variáveis podem ser unidimensionais ou multidimensionais, ou seja, dependem da
quantidade de índices necessários para individualização de cada elemento do conjunto.

1. Variáveis Compostas Homegêneas Unidimensionais

São variáveis compostas que necessitam de somente um índice para individualizar um elemento do conjunto. A
criação desse tipo de variável é feita com a seguinte declaração:

lista-de-identificadores : ARRAY[k] OF tipo

Lista-de-identificadores são nomes associados as variáves que se deseja declarar.


k é da forma I1..I2, em que l1 é o índice inferior do intervalo de variação do índice e l2 é o limite superior. t é o
tipo dos componentes da variável.

Para se declarar uma variável nota do tipo real com 6 elementos basta escrever nota : array[1..6] of real; Os
índices para a variável nota estão no intervalo 1,2,3,...,6. Para acessar um elemento i dessa variável basta
referenciá-lo como nota[i]. Por exemplo, nota[1], nota[6], que referenciam respectivamente o valor do primeiro e
o valor do sexto elemento da variável nota.

Utilizando-se, por exemplo um variável i do tipo inteiro, tem-se a possibilidade de acesso a qualquer um dos
elementos. Seja nota[i] uma referência em um programa. Antes da variável nota ser consultada, a variável i
seria substituída pelo seu conteúdo no dado instante. Se i=2, então o elemento da acessado seria nota[2]. Os
elementos da variável nota podem ser referenciados por expressões como por exemplo nota[i+1] e nota[i+j+1].

Exemplo 4.1:
ÍNDICE 1 2 3 4 5 6
NOTA 8,0 7,0 7,5 10,0 8,5 9,0
variáveis nota[1] = 8,0 nota[2] = 7,0 nota[3] = 7,5 nota[4] = 10,0 nota[5] = 8,5 nota[6] = 9,0

program array_uni; { Lê dez notas e calcular a médida}


var
nota : array[1..6] of real;
soma, media : real;
i : integer;
begin
soma := 0;
writeln('Digite os valores das 6 notas:');
for i:= 1 to 6 do
read(nota[i]); for i:= 1 to 6 do
soma := soma + nota[i]; media := soma/6;
writeln('Média das notas: ',media:1:1);
46
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
end.

Saída na tela:
Digite os valores das 6 notas:
8,0 7,0 7,5 10,0 8,5 9,0
Média das notas: 8,0

2. Variáveis Compostas Homegêneas Multidimensionais

São variáveis compostas que necessitam de mais de um índice para individualização de seus elementos.
A criação desse tipo de variável é feita com a seguinte declaração:

lista-de-identificadores : ARRAY[k] OF tipo

Lista-de-identificadores são os nomes que serão acossiados às variáveis multidimensionais.


k é da forma l11..l12,l21..l22, ... ,ln1..ln2, que são limites do intervalo de variação de cada um dos n índices da
variável.
t é o tipo a que pertencem os componentes do conjunto.

Por exemplo, para criar uma variável notas2, contendo as notas de alunos em cada disciplina, onde as linhas
representam os alunos e as colunas representam as disciplinas, faz-se o seguinte

notas2 : array[1..10,1..5] of real;

Isso indica que temos 10 alunos e 5 disciplinas, ou o contrário, conforme a convenção que se adotar para linha
e para coluna. Para acessar a nota do aluno 3 na disciplina 5 basta referenciá-lo por
nota2[3,5] ou nota[3][5]. Outros exemplos de acesso aos elementos neste tipo de variável são:
notas2[3,4], notas2[5,5], notas2[i,j]
ou
notas2[3][4], notas2[5][5], notas2[i][j]

Exemplo 4.2:
program matrizes;
{ Calcular a média das notas de cada aluno e as médias das notas em cada disciplina }
var
notas2 : array[1..10,1..5] of real;
media_aluno : array[1..10] of real;
media_disc : array[1..5] of real;
i, j : integer;
soma, media : real;

begin { preenche a matriz notas2, linha a linha (aluno) }


for i:= 1 to 10 do
for j:= 1 to 5 do
read(notas2[i,j]);

{ calculando as médias das notas dos alunos}

for i:= 1 to 10 do
begin
soma := 0;
for j:= 1 to 5 do
soma := soma + notas2[i,j]; media := soma/5;
media_aluno[i] := media; end;

{ calculando as médias das notas em cada disciplina }

for j:= 1 to 5 do

47
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
begin
soma := 0;
for i:= 1 to 10 do
soma := soma + notas2[i,j]; media := soma/10;
media_disc[j] := media; end;

{ Imprimindo os resultados }

writeln('Média das notas dos alunos:');


for i:= 1 to 10 do
writeln('Aluno[', i:2, '] = ', media_aluno[i]:3:2); writeln('Média das notas em cada disciplina:');
for j:= 1 to 5 do
writeln('Disciplina[', j:2, '] = ', media_disc[j]:3:2);
end.

Variáveis Compostas Heterogêneas

1. Registros

São conjuntos de dados logicamente relacionados, mas de tipos diferentes (inteiro, real, literal, ...).
Para se utilizar estruturas desse tipo, deve-se declará-las da seguinte forma:

Lista-de-identificadores : record
componenetes
end;

lista-de-identificadores são os nomes que estão sendo associados aos registros que se deseja declarar.
componentes são declarações de variáveis, separadas por ponto-e-vírgula.

Exemplo 4.3: Para se declarar um registro com os campos abaixo, faz-se o seguinte:

Cadastro
Nome:
Rua: Número: CEP:
RG: CPF: Nascimento: Sexo:

var
cadastro : record
nome : string[30];
rua : string[40];
numero : integer;
cep : real;
rg : real;
cpf : real;
nascimento : string[10];
sexo : char;
end;

É possível também, declarar um registro como um tipo. No exemplo abaixo o registro endereco é declarado
como um tipo. Na declaração das variáveis a variável cadastro (que é um registro) tem como um dos seus
componentes a variável do tipo endereco, refereciado pela variável ender.

Type endereco = record


rua : string[40];
numero : integer;
CEP : real
end;

48
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
var
cadastro : record
nome : string[30];
ender : endereco;
CPF: real;
Sexo : char;
nascimento : real;
rg : real;
end;

Para se referencia a cada campo (ou componente) de um registro utiliza-se a seguinte notação:

identificador.variável

Por exemplo, do registro cadastro acima, imprimimos os valores de cada campo da seguinte forma:

writeln(cadastro.nome);
writeln(cadastro.ender.rua);
writeln(cadastro.ender.numero);
writeln(cadastro.ender.CEP);
writeln(cadastro.CPF);
writeln(cadastro.Sexo);
writeln(cadastro.nascimento);
writeln(cadastro.rg);

2. Conjunto de Registros

Assim como pode ter conjuntos de dados de mesmo um tipo referenciados por um mesmo identificador, e
individualizados por índices, temos a possibilidade de fazer isso com registros. Nos exemplos abaixo exibimos
duas formas de de declarar estes tipos de estruturas em Pascal. A primeira como a declaração do registro junto
com a declaração do vetor(array), e a segunda como declaração do tipo cadastro (que é um registro) e a sua
utilização em um vetor do tipo cadastro.
Exemplo 4.4:

bd : array[1..10] of record
nome : string[30];
ender : endereco;
CPF: real;
Sexo : char;
nascimento : real;
rg : real;
end;

Type cadastro = record


nome : string[30];
ender : endereco;
CPF: real;
Sexo : char;
nascimento : real;
rg : real;
end;

var
bd : array[1..10] of cadastro;

Embora a tenham o mesmo sentido quanto a utilização, nesses dois tipos de declaração com vetores de
índices as variáveis são referenciados de maneira diferente. Por exemplo, no primeiro caso basta acrescentar
um ponto e o nome da variável para referenciar o devido campo. No segundo caso deve-se colocar o nome do

49
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
tipo do vetor. A seguir, são mostrados os exemplos desses dois casos, quando imprimindo-se os valores do
registro do vetor da posição i.

Exemplo 4.5:
Caso 1
writeln(bd[i].nome);
writeln(bd[i].ender.rua);
writeln(bd[i].ender.numero);
writeln(bd[i].ender.CEP);
writeln(bd[i].CPF);
writeln(bd[i].Sexo);
writeln(bd[i].nascimento);
writeln(bd[i].rg);

Caso 2
writeln(bd[i].cadastro.nome);
writeln(bd[i].cadastro.ender.rua);
writeln(bd[i].cadastro.ender.numero);
writeln(bd[i].cadastro.ender.CEP);
writeln(bd[i].cadastro.CPF);
writeln(bd[i].cadastro.Sexo);
writeln(bd[i].cadastro.nascimento);
writeln(bd[i].cadastro.rg);

11.14 Arquivos
Em Pascal estruturas de dados manipuladas fora do ambiente do programa são conhecidas como arquivos.
Considera-se como ambiente do programa a memória principal, onde nem sempre é possível ou conveniente
manter certas estruturas de dados. Um arquivo, armazenado num dispositivo de memória secundária, como
discos e disquetes, pode ser lido ou escrito por um programa através de registros.

Antes de se declarar arquivos em um programa, deve ser declarar primeiramento o seu tipo. As formas das
declarações é a seguinte:

type identificador-do-tipo = file of tipo;


lista-de-identificadores : identificador-do-arquivo;

onde:
• type é uma palavra-chave;
• identificador-de-tipo é o identificador associado ao novo tipo;
• file of são palavras reservadas;
• tipo é o tipo a que pertencem os registros do arquivo;
• lista-de-identificadores são nomes associados aos arquivos.

Exemplo 4.6:
Aproveitando a declaração do tipo cadastro acima, abaixo seguem exemplos de sua utilização com arquivos.

Type cadastro = record


.
end;

arqcad = file of cadastro;

var
arquivo : arqcad;
arquivo2 : file of cadastro;

1. Operações com Arquivos


50
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

As operações básicas realizadas sobre um arquivo são abertura, leitura, escrita e fechamento.

A abertura de arquivos corresponde à ação de se associar o arquivo declarado no programa com o arquivo
físico. O primeiro registro do arquivo fica disponível para leitura através do seguinte comando:

reset(nome-do-arquivo);

Caso o arquivo já exista, para começar a escrever novamente no arquivo, ignorando-se os registros anteriores,
utiliza-se o seguinte comando:

rewrite(nome-do-arquivo);

O nomo-do-arquivo é o identificador do arquivo no programa. Para se fazer uma associação desta identificação
interna com a identificação externa, usa-se o comando assign, cuja forma é:

assign(nome-do-arquivo,'nome-externo');

nome-externo é o nome pelo qual o arquivo é conhecido externamente ao programa.

O comando assign deve anteceder a abertura do arquivo e nunca deve ser utilizado quando o arquivo já estiver
sendo manipulado.

O fechamento do arquivo desvincula o arquivo do programa, atualizando as informações do arquivo no


ambiente do sistema operacional. Para se fechar um arquivo, usa-se o comando:

close(nome-do-arquivo);

Para ler um arquivo, ou seja ler o seu conteúdo, é utilizado o seguinte comando:

read(nome-do-arquivo,registro);

Esse comando lê o conteúdo do registro corrente do arquivo associado à nome-do-arquivo e armazena-o em


na variável registro, que deve ser do mesmo tipo do arquivo. Após a execução desse comando, o registro
corrente é lido, e o próximo passa a ser o registro corrente.

Para escrever em um arquivo, é utilizado o seguinte comando:

write(nome-do-arquivo,registro);

Esse comando, quando executado, grava no registro corrente do arquivo associado à nome-do-arquivo o
conteúdo da variável registro.

Usando somente os comandos read e write, os registros estão acessíveis somente sequencialmente, ou seja,
um registro será acessado somente após todos os seus anterioes sejam acessados.

É possível acessar um registro qualquer do arquivo diretamente, desde que se saiba a sua posição física no
arquivo. Esse tipo de acesso é conseguido pelo comando:

seek(nome-do-arquivo,n);

Com esse comando é possível acessar o n-ésimo registro do arquivo associado à nome-do-arquivo, caso n
seja menor que o número de registros do arquivo. O primeiro registro é o de número 0 (zero).

Para se obter o número de registros de um arquivo, utiliza-se o comando:

filesize(nome-do-arquivo);
51
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

Com a utilização dos comandos seek e filesize temos um outro tipo de organização ou acesso aos arquivos: a
organização direta. Neste caso temos que escolher uma chave para indexar os registros, ou seja, essa chave
será utilizada para indicar em que posição no arquivo um registro será armazenado.

Exemplo 4.7:
program sequencial;

type
endereco = record
rua : string[40];
numero : integer;
CEP : real;
end;
cadastro = record
nome : string[30];
ender : endereco;
CPF: real;
Sexo : char;
nascimento : real;
rg : real;
end;

arqcad = file of cadastro;


var
arq_in, arq_out : arqcad;
reg: cadastro;
begin
assign(arq_out,'sample.dat'); {associando nome interno com nome externo}
rewrite(arq_out); {abrindo arquivo para gravação}
write('Nome: ');
readln(reg.nome);
while (reg.nome <> 'fim') do
begin
write('Rua: ');
readln(reg.ender.rua);
write('Numero: ');
readln(reg.ender.numero);
write('CEP: ');
readln(reg.ender.CEP);
write('CPF: ');
readln(reg.CPF);
write('Sexo(M/F): ');
readln(reg.Sexo);
write('Data de Nascimento(dd/mm/aaaa): ');
readln(reg.nascimento);
write('RG: ');
readln(reg.rg);
write(arq_out,reg); {grava registro após o último registro do arquivo}
readln(reg.nome); end; close(arq_out);
assign(arq_in,'sample.dat'); {associando nome interno com nome externo}
reset(arq_in); {abrindo arquivo para leitura}
read(arq_in,reg);

while (not EOF(arq_in)) do


begin
write(reg.ender,rua,' ');
write(reg.ender.numero,' ');
write(reg.ender.CEP,' ');
52
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
write(reg.CPF,' ');
write(reg.Sexo,' ');
write(reg.nascimento,' ');
writeln(reg.rg,' '); end; writeln('O número de registros do arquivo é: ',filesize(arq_in));
end.

Este programa a seguir exemplifica a utilização dos comando seek. Neste caso assumimos que as chaves
estão no intervalo entre 1 e 100.
program acesso_direto;
type
endereco = record
rua : string[40];
numero : integer;
CEP : real;
end;
cadastro = record
chave : integer;
nome : string[30];
ender : endereco;
CPF: real;
Sexo : char;
nascimento : real;
rg : real;
end;

arqcad = file of cadastro;


tammax = 100;

var
arq_out : arqcad;
reg : cadastro;

begin
assign(arq_out,'sample.dat'); {associando nome interno com nome externo}
rewrite(arq_out); {abrindo arquivo para gravação}
write('Chave: ');
readln(reg.chave);
while (reg.chave <> 0) do
begin
if (reg.chave >= 1) and (reg.chave <= 100) then
begin
write('Nome: ');
readln(reg.nome);
write('Rua: ');
readln(reg.ender.rua);
write('Numero: ');
readln(reg.ender.numero);
write('CEP: ');
readln(reg.ender.CEP);
write('CPF: ');
readln(reg.CPF);
write('Sexo(M/F): ');
readln(reg.Sexo);
write('Data de Nascimento(dd/mm/aaaa): ');
readln(reg.nascimento);
write('RG: ');
readln(reg.rg);
seek(arq_out,chave-1);
write(arq_out,reg); { grava registro após o último registro do arquivo} end
53
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
else
begin
writeln('Chave deve estar no intervalo [1,100].'); end;
write('Chave: ');
readln(reg.chave); end; close(arq_out); end.

2. Arquivos texto

Na aula anterior, vimos como acessar arquivos e as operações existentes para essa finalidade. Os arquivos
gerados pelo programa exemplo 4.7 são arquivos bináros. Esse tipo de arquivo não legível às pessoas, embora
seja útil para fins de armazenamento de informações, visto que os dados são armazenados de forma
comprimida, que diminui o tamanho do arquivo, e também resreinge o acesso às informações contidas no
arquivo. A linguagem Pascal também provê meios para lidar com um arquivo texto. A seguir mostramos como
tratar arquivos em Pascal.
As operações de abertura, de associação entre o nome interno e externo, de fechamento, de leitura, de escrita
de um arquivo texto são as mesmas que dos arquivos binários. No entanto, para se declarar um arquivo texto
utiliza-se uma outra notação:

lista-de-identificadores:text
lista-de-identificadores são nomes associados aos arquivos declarados como texto.

Outra diferença com relação às operdoções é a possibilidade de utilização dos comandos readln e writeln
sobre arquivos texto, o que não é possível sobre arquivos binários, visto que estes não possuem marca de final
de linha. A diferença entre os comandos read e readln, write e writeln é basicamente a mesma quando
utilizados como cmomandos de entrada e saída. Os comandos read e write operam sobre campos, enquanto
que os comandos readln e writeln operam sobre linhas.

Exemplos
Esse programa lê um arquivo texto, exibe o seu conteúdo na tela e o número de linhas do arquivo.

program le_arquivo_texto;
var
entrada : text;
linha : string[100];
nlinhas : integer;

begin
nlinhas = 0;
assign(entrada,'arq1.txt');
reset(entrada);
readln(entrada,linha); {lê cada linha do arquivo}
while (not EOF(entrada)) do
begin
writeln(linha);
readln(entrada,linha);
nlinhas := nlinhas + 1; end; writeln('Número de linhas do arquivo: ',nlinhas);
close(entrada);
end.

O próximo programa lê 10 linhas contendo três campos do tipo inteiro, lê 10 linhas contendo três campos do
tipo real, somando os valores de cada linha e colocando o resuldato em um arquivo de saída. O programa
assume que o arquivo de entrada já esteja no formato correto.

program le_valores_inteiro_real;
var
arq_in, arq_out : text;
vi1, vi2, vi3, somai : integer;
vr1, vr2, vr3, somar : real;

54
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
i : integer;
begin
assign(arq_in,'dados.txt');
assign(arq_out,'saida.txt');
reset(arq_in);
rewrite(arq_out);
for i:= 1 to 10 do
begin
readln(arq_in,vi1,vi1,vi3);
somai := vi1 + vi2 + vi3;
writeln(arq_out,'linha ',i ,' - soma = ',somai); end;
for i:= 1 to 10 do
begin
readln(arq_in,vr1,vr1,vr3);
somar := vr1 + vr2 + vr3;
writeln(arq_out, 'linha ',i+10 ,' - soma = ',somar:10:4); end; close(arq_in);
close(arq_out);
end.

11.15 Modularização
A linguagem Pascal oferece facilidades necessárias no tocante a modularização de programas, por meio de
procedimentos e funções, que permitem a confecção de programas modulares e bem estruturados. A idéia
principal do conceito de modularização, informalmente falando, é dividir o programa em sub-programas, o que
torna o trabalho de desenvolvimento e manutenção menos desgastante. Em Pascal o conceito de
modularização é implementado por meio de sub-rotinas. Um módulo em Pascal é definido como sendo uma
procedure ou uma function. Esses módulos podem ter variáveis próprias ou utilizar as variáveis declaradas no
programa principal. E possível a declaração de variáveis com o mesmo identificador em módulos diferentes no
mesmo nível ou em módulos aninhados (um módulo dentro do outro). Conforme o contexto em está inserido,
uma variável pode ser considerada uma variável local ou um variável global. Por exemplo: as variáveis
declaradas em um módulo A são considereadas locais à A, porém são consideradas variáveis globais aos sub-
módulos contidos em A. Dessa forma, todas as variáveis declaradas no programa principal são consideradas
globais as procedimentos.

Variáveis locais com o mesmo identificador declaradas em módulos diferentes e no mesmo nível são invisíveis
umas para o outras, ou seja, não causam conflito. Quando os módulos estão aninhados, as variáveis
declaradas em cada módulo, podem ser vistas e/ou utilizadas pelos respectivos sub-módulos. Porém, não
serão utilizadas se forem declaradas variáveis com o mesmo identificador em seus sub-módulos, onde valerá
somente as variáveis locais. Ou seja, se forem declaradas variáveis locais em um módulo A com o mesmo
identificador que as variáveis globais à A, valerá as variáveis locais. Isso define as regras de escopo das
variáveis, ou seja, até onde as variáveis podem ser utilizadas e/ou visíveis à outros módulos. No caso de
existirem variáveis locais e globais com o mesmo nome, alterações feitas nas variáveis locais não afetam as
globais. Já no caso onde um variável global é modificada, o próximo instrução que acessá-la irá encontrar o
valor dessa última atualização.

Exemplo:
program A;
{ declaração de variáveis }
var
m, n : real;

procedure B;
{ declaração de variáveis }
var
i, j : integer;
begin
{ corpo do procedimento B }
end;

55
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ

procedure C;
{ declaração de variáveis }
var
i, j : integer;
k, l : real;
procedure D;
{ declaração de variáveis }
var
k, l : integer;
begin
{ corpo do procedimento D }
end;
begin
{ corpo do procedimento C }
end;
begin
{ corpo do programa principal }
end.

• As variáveis “i” e “j” declaradas nos procedimentos A e B são invisíveis entre si, portanto nào
causam conflito.
• As variáveis “k” e “l” são válidas como inteiros em C. Apesar de serem globais, são invisíveis a
D, pois foram redeclaradas como tipo real. É como se k e l fossem declaradas com outros identicadores.
• As variáveis “i” e “j” declaradas em C são globais a D, assim como as variáveis m e n são
globais à todos os procedimentos.

11.16 Procedimentos
Convencionamos aqui que módulos do Pascal como procedimentos do Pascal. Procedimento é um trecho do
programa que possui seus objetos (variáves, arquivos, etc.) e comandos próprios e que para ser executado
deve ser ativado por um programa principal ou por outro procedimento. A criação de um procedimento em
Pascal é feita através de sua declaração em um programa, ou seja, o procedimento é um objeto da linguagem
que deve ser declarado, como os demais objetos, no início do programa ou de outro procedimento. Um
prodecimento em Pascal pode, por sua vez, conter outros procedimentos, que só serão conhecidos dentro do
mesmo.

A declaração de um procedimento em Pascal é constituída de um cabeçalho e de um corpo. O cabeçalho


identifica o procedimento através de um nome, e o corpo contém as declarações dos objetos locais, além de
comandos e estruturas do procedimento. A ativação de um procedimento, atendidas às condições de escopo, é
feita através da referência ao seu nome em algum ponto do programa. Em Pascal existem dois tipos de
procedimentos: procedure e function. Não confunda procedimento com a tradução de procedure, pois esta
última é uma palavra reservada do Pascal, que define um tipo de procedimento.

1. Procedures

O objetivo de se declarar uma procedure é associá-la a um identificador para que a mesma possa ser ativada
por um comando do programa. A sua declaração é feita da seguinte forma:

procedure nome;
declaração dos objetos locais à procedure
BEGIN
comandos da procedure
END;

A chamada ou ativação de uma procedure é feita referenciando-se o seu nome no local do programa onde a
mesma deve ser ativada, ou seja, onde a sua execução deve ser iniciada. Ao terminar a execução dos
comandos de um procedure, a seqüência do programa retorna sempre à instrução seguinte que provocou a

56
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
sua chamada. Ao nível de execução, a chamada de uma procedure valeria como se fosse feita uma cópia dos
comandos do procedimento no local do programa onde foi ativada, ajustando-se os objetos locais para atender
as regras de escopo.

Exemplo:
program procedimentos;
var
{ declaração das variáveis do programa principal }

procedure entrada_de_dados;
var
{ declaração das variáveis do procedimento entrad_de_dados }
begin
{ comandos do procedimento entrada_de_dados }
end;

procedure processa_dados;
var
{ declaração das variáveis do procedimento processa_dados }
begin
{ comandos do procedimento processa_dados }
end;

procedure imprime_resultados;
var
{ declaração das variáveis do procedimento imprime_resultados }
begin
{ comandos do procedimento imprime_resultados }
end;

begin
{ corpo programa principal }
entrada_de_dados;
processa_dados;
imprime_resultados;
end.

Este exemplo ilustra como procedimentos podem facilitar o entendimento do programa. Neste caso, o corpo do
programa principal se contitui apenas de três chamadas à procedimentos.

2. Functions

As functions são como procedimentos. No entanto, são distintas pela característica de retornar um valor. Isso
caracteriza o fato de uma function ser ativada na avaliação de expressões, como as funções matemáticas.
Como vimos, a linguagem Pascal possui algumas funções pré-definidas, o que faz com que o programador não
tenha que implementá-las.

A declaração de uma function tem como objetivo associá-la a um identificador para que possa se ativada em
uma expressão do programa. A declaração de uma function é feita da seguinte forma:

function nome: t
{declararação dos objetos locais à function}
BEGIN
comandos da function
nome := X;
END;

57
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
t é tipo que a função irá retornar. X é o valor do mesmo tipo t que será retornado pela função. Vemos aqui que
o corpo da função precisa necessariamente conter um comando de atribuição no qual o nome da function
aparece à esquerda do sinal de atribuição. A ativação de uma function é feita posicionando-se o nome da
mesma em uma expressão de mesmo tipo.

Exemplo:

program exemplo_function;
{ program que calcula o fatorial de N com a utilização de uma função }
var N : integer;

function fatorial : integer;


var i, acumul : integer;
begin
acumul := 1;
i := 1;
while (i <= N) do
begin
acumul := acumul * i;
i := i + 1;
end;
fatorial := acumul;
end;

begin
write('Digite o valor de N: ');
readln(N);
writeln('O valor do Fatorial de ',N , ' é = ', fatorial);
end.

3. Parâmetros de Procedimentos

Vimos que as procedures e functions utilizam objetos (variáveis, arquivos, etc) locais (declarados em seu
corpo) e objetos globais (declarados nos níveis mais externos). Variáveis globais servem para implementar um
mecanismo de trasmissão de informações de um nível mais externo para um nível mais interno, como o
exemplo do fatorial acima. Analogamente, o mesmo mecanismo pode ser usado inversamente para transmitir
informações de dentro para fora dos procedimentos, ou seja, quando se altera o conteúdo de uma variável
global dentro de um procedimento, a próxima instrução após o término do procedimento terá disponível o valor
da última atualização dentro do procedimento.

A utilização de variáveis globais, no entanto, não constitui uma boa prática de programação, visto que podem
amarrar os procedimentos (tornando-os dependentes) e quebrar a questão de modularidade. Em um
procedimento, as suas variáveis locais têm vida somente durante a sua execução. ou seja, são criadas e
alocadas quando no momento da ativação, e liberadas quando de seu término. Além do mais, essas variáveis
não podem ser acessadas pelos níveis externos ao procedimento. Então, para transmissão de informações de
dentro para fora dos procedimentos a linguagem Pascal utiliza o mecanismo de parâmetros.

Por meio dos parâmetros faz-se a comunicação de fora para dentro e de dentro para fora de um procedimento,
o que torna os módulos indepententes e reusáveis em outros programas. Os parâmetros são objetos utilizados
dentro do procedimento e representam os objetos do nível mais externo (parâmetros de definição). Para
declarar procedures e functions que utilizam parâmetros basta acrescentar ao cabeçalho a lista de parâmetros
a ser utilizada, que deverá estar entre parênteses. Isso é feito da seguinte forma:

procedure nome(lista-de-parametros);
function nome(lista-de-parametros);
lista-de-parametros é da forma: parâmetro1 : tipo, parâmetro2 : tipo, ..., parâmetron: tipo.

58
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
A ativação de um procedimento se faz por meio de uma refência a seu nome seguido pela lista de parâmetros
envolvida por parênteses. Esses parâmetros são conhecidos por parâmetros de chamada, e podem ser
constantes, variáveis ou expressões dos módulos externos cujos valores serão transmitidos para os
parâmetros de definição do procedimento e após a sua execução receberão de volta, ou não, os valores
contidos nos parâmetros de definição. Dependendo de como são declarados os parâmetros de definição no
procedimento, é determinado se os parâmetros de chamada conterão ou não os valores contidos nos
parâmetros de definição. Isso define o modo de passagem dos parâmetros: passagem por referência e
passagem por valor. Quando se declara um parâmetro como sendo de referência, as atribuições à ele são
refletidas no parâmetro de chamada correspondente, após a execução do procedimento o parâmetro de
chamada conterá o mesmo valor que o parâmetro de definição correspondente. Para especificar se um
parâmetro terá passagem por referência, a sua declaração deverá ser precedida pela palavra-chave var.

Caso a declaração não seja precedida por var, então o parâmetro possui passagem por valor. Neste caso, os
parâmetros de definição conterão os mesmos valores de seus parâmetros de chamada correspondente no
momento da ativação, mas alterações nos parâmetros de definição não serão refletidas nos parâmetros de
chamada correspondente. Pode-se dizer também que um parâmetro com passagem por referência é um
parâmetro de entrada e saída, enquanto que um parâmetro com passagem por valor é um parâmetro de
entrada.

Exemplo:
program exemplo_function_2;
{ program que calcula o fatorial de N com a utilização de uma função
com passagem de parâmetros }
var N : integer;

function fatorial(fat : integer): integer;


var i, acumul : integer;
begin
acumul := 1;
i := 1;
while (i <= fat) do
begin
acumul := acumul * i;
i := i + 1;
end;
fatorial := acumul;
end;

begin write('Digite o valor de N: ');


readln(N);
writeln('O valor do Fatorial de ',N , ' é = ', fatorial(N));
end.

program exemplo_procedure_2;
{ programa que utiliza uma procedure para ler os valores em uma matriz
N x M e uma procedure que imprime os valores de uma matriz M x N }
const
M = 10;
N = 10;
type
matriz = array[1..M,1..N] of integer;
var
a : matriz;
numlin, numcol : integer;
procedure le_matriz(var mat : matriz; lin, col : integer);
var i, j : integer;
begin
for i:= 1 to lin do
for j := 1 to col do
59
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
read(mat[i,j]);
end;

procedure imprime_matriz(mat : matriz; lin, col : integer);


var
i, j : integer;

begin
for i:= 1 to lin do
begin
for j := 1 to col do
write(mat[i,j]:10,' ');
writeln;
end;
end;

Begin { programa principal }


write('Entre com o número de linhas da matriz (<',M, '): ');
readln(num_lin);
write('Entre com o número de colunas da matriz (<',N, '): ');
readln(num_col);
le_matriz(a,num_lin,num_col);
imprime_matriz(a,num_lin, num_col);
End.

60

You might also like