Apostilaipd
Apostilaipd
Apostilaipd
IME-
UERJ
APOSTILA
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.
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.
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 .
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).
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.
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 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 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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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
Exemplo 02:
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.
• 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.
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 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).
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
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 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:
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:
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
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:
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.
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:
• 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).
• 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.
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.
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.
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).
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.
• 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
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.
Seleções (Decisão)
1. com um ramo
se (condição)
então seqüência de passos
Repetições
Exemplo de algoritmo
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.
30
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
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
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
• 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.
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:
32
Helio Valim Introdução ao Processamento de Dados
IME-
UERJ
• Executor de programas - é um software que processa as instruções de um programa.
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 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.
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.
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.
Portanto, um identificador válido na linguagem Pascal é qualquer seqüência de caracteres que obedeça às
seguintes regras:
Exemplos
• Identificadores válidos na linguagem Pascal:
A
Nota
P1
Meu_identificador
• 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
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 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
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
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:
type
LETRASMA = ´A´ .. ´Z´;
INDICES = 0 .. 100;
DIAS = (dom, seg, ter, qua, qui, sex, sab);
var
diasemana : DIAS;
Exemplo: a =1, b = 2, c = 3
• a+b*c=9
• c / b * a = 0.5
• c div b = 1
• c mod b = 1
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
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:
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
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 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.
Exemplo
Program ExemploSaída2 ;
var
arq: text;
begin
assign( arq,'teste.txt' ) ;
rewrite( arq ) ;
writeln( arq ) ;
close( arq ) ;
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 *
Condição Simples
if condição
then comando1
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.
• 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
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.
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.
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:
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
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
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:
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
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;
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;
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 }
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.
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;
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:
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.
var
arquivo : arqcad;
arquivo2 : file of cadastro;
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');
O comando assign deve anteceder a abertura do arquivo e nunca deve ser utilizado quando o arquivo já estiver
sendo manipulado.
close(nome-do-arquivo);
Para ler um arquivo, ou seja ler o seu conteúdo, é utilizado o seguinte comando:
read(nome-do-arquivo,registro);
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).
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;
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;
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.
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;
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;
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;
begin
for i:= 1 to lin do
begin
for j := 1 to col do
write(mat[i,j]:10,' ');
writeln;
end;
end;
60