SlideShare uma empresa Scribd logo
1 de 104
Baixar para ler offline
Organização de Computadores
2014
Editorial
© UniSEB © Editora Universidade Estácio de Sá
Todos os direitos desta edição reservados à UniSEB e Editora Universidade Estácio de Sá.
Proibida a reprodução total ou parcial desta obra, de qualquer forma ou meio eletrônico, e mecânico, fotográfico e gravação ou
qualquer outro, sem a permissão expressa do UniSEB e Editora Universidade Estácio de Sá. A violação dos direitos autorais é
punível como crime (Código Penal art. 184 e §§; Lei 6.895/80), com busca, apreensão e indenizações diversas (Lei 9.610/98 – Lei
dos Direitos Autorais – arts. 122, 123, 124 e 126).
Comitê Editorial
Fernando Fukuda
Simone Markenson
Jeferson Ferreira Fagundes
Autor do Original
Marco Fábio Polli
Sumário
Organização de Computadores
Capítulo 1: Processamento de
Dados e Estrutura Básica do Computador.... 7
Objetivos da sua aprendizagem ................................. 7
Você se lembra?................................................................. 7
1.1  Organização e arquitetura de computadores.................... 8
1.2  Processamento de dados, Informação e Conhecimento......... 8
1.3  Breve histórico dos computadores............................................ 11
1.4  Visão geral do computador pessoal............................................... 19
1.5  Elementos Básicos da Arquitetura de Von Neumann........................ 21
1.6  Construção de algoritmos simples........................................................ 24
Atividades....................................................................................................... 29
Reflexão............................................................................................................. 30
Leituras recomendadas.......................................................................................... 30
Referêncais bibliográficas....................................................................................... 30
No próximo capítulo ................................................................................................. 31
Capítulo 2: Representação de Dados...................................................................... 33
Objetivos da sua aprendizagem ................................................................................... 33
Você se lembra?............................................................................................................. 33
2.1  Elementos binários fundamentais: bits, bytes e words............................................ 34
2.2  Bases numéricas....................................................................................................... 37
2.3  Representação de caracteres..................................................................................... 42
2.4  Tipos de dados e uso de variáveis em algoritmos ................................................... 43
Atividades ..................................................................................................................... 49
Reflexão....................................................................................................................... 50
Leitura recomendada ................................................................................................. 50
Referências bibliográficas ....................................................................................... 50
No próximo capítulo ............................................................................................ 51
Capítulo 3: Álgebra Booleana e Operações Lógicas em Algoritimos......... 53
Objetivos da sua aprendizagem..................................................................... 53
Você se lembra? ........................................................................................ 53
3.1  Álgebra booleana............................................................................ 54
3.2  Portas lógicas.............................................................................. 59
3.3  Operações aritméticas e lógicas em algoritmos..................... 60
Atividades................................................................................. 68
Reflexão.............................................................................. 68
Leituras Recomendadas................................................................................................... 68
Referências Bibliográficas............................................................................................... 68
No próximo capítulo ....................................................................................................... 69
Capítulo 4: Instruções e Processamento...................................................................... 71
Objetivos da sua aprendizagem: ..................................................................................... 71
Você se lembra? .............................................................................................................. 71
4.1  Componentes fundamentais para o processamento.................................................. 72
4.2  Instruções de computador......................................................................................... 74
4.3  Aspectos de arquitetura nos computadores pessoais................................................. 77
Atividades........................................................................................................................ 86
Reflexão........................................................................................................................... 86
Leitura Recomendada...................................................................................................... 86
Referências Bibliográficas............................................................................................... 86
No próximo capítulo........................................................................................................ 87
Capítulo 5: Memória e Dispositivos de Entrada e Saída............................................ 89
Objetivos da sua aprendizagem:...................................................................................... 89
Você se lembra?............................................................................................................... 89
5.1  Memória.................................................................................................................... 90
5.2  Dispositivos de entrada e saída E/S.......................................................................... 99
5.3  Tipos de Computadores.......................................................................................... 100
Atividades...................................................................................................................... 102
Reflexão......................................................................................................................... 102
Leitura recomendada...................................................................................................... 103
Referências bibliográficas.............................................................................................. 103
Apresentaç
ão Prezados(as) alunos(as)
No fim da década de 1970, os computa-
dores pessoais começam a ser introduzidos
no mercado. Ferramentas de processamento
de dados que antes eram apenas disponíveis para
grandes empresas, por meio de máquinas que ocupa-
vam salas inteiras, passaram a estar em cima da mesa
dos escritórios e das casas das pessoas. Só esse desenvolvi-
mento já seria suficente para mudar a nossa sociedade, mas a
história não parou aí. A interligação desses computadores e dos
servidores na internet, transformou a maneira com que as pessoas
se comunicam, compram, se divertem e criam. Por fim, o próprio
computador pessoal deixou de ser o centro desse modo de vida, com
smartphones, tablets e dispostivos que ainda estão sendo criados.
Em sua história, os computadores mostraram ser uma base de ino-
vações contínuas e de uso criativo, uma história que ainda continua e
podemos influenciar. Para tanto, devemos conhecer como os computa-
dores funcionam e são organizados. Esse conhecimento é essencial tanto
para o desenvolvimento de hardware, de software ou mesmo para se
fazer um bom uso dessa tecnologia.Com essa preocupação, o conteúdo da
disciplina é organizado do seguinte modo:
Capítulo 1 – Entenderemos o que é processamento de dados e o funciona-
mento básico de um computador.
Capítulo 2 – Será explicada a linguagem binária.
Capítulo 3 – Entenderemos a álgebra booleana e a sua implementação
em algoritmos simples.
Capítulo 4 – Veremos com mais detalhes como o computador trata
dados e instruções na Unidade Central de Processamento.
Capítulo 5 – Exploraremos os tipos de memória e suas inter-
-relações.
Bons estudos!
CCCCCCCCCC
Processamento de
Dados e Estrutura Básica
do Computador
Computadores não se limitam aos notebooks
e aos desktops nos escritórios, eles estão nos
equipamentos médicos, carros, aparelhos de TV,
celulares e em simples brinquedos. É impossível dis-
sociar a computação do nosso estilo de vida. Porém, são
poucas pessoas que de fato entendem como funciona um
computador e como dados são processados. Esse conheci-
mento é importante para que os computadores e seu modo de
usar continuem a se desenvolver.
Aqui vamos descrever os elementos básicos de computação e sua
história, servindo de base para os demais capítulos da disciplina.
Vamos entender o conceito de dados e seu processamento. Um breve
panomora da trajetória histórica dos computadores será apresentado
para que depois discutamos a arquitetura da Von Neumann. Dessa for-
ma, teremos uma visão fundamental sobre o funcionamento do compu-
tador.
Objetivos da sua aprendizagem
•	Compreender a diferença entre organização e arquitetura de compu-
tadores.
•	Dominar o conceito de dados e do seu processamento.
•	Entender a trajetória de evolução dos seus computadores e seus tipos
principais.
•	Identificar as partes principais de um computador segundo a arqui-
tetura de Von Neumann.
Você se lembra?
Você já deve ter visto diversos filmes e artigos que discutem
o tema da inteligência artificial. Seria possível mesmo que
computadores sejam inteligentes? Eles poderiam ter von-
tade ou consciência? Ao ler esse capítulo, busque re-
fletir sobre o que um computador pode ou não fazer,
relembrando as obras de ficção e opiniões sobre o
assunto.
8
Organizações de Computadores
Proibidaareprodução–©UniSEB
1.1  Organização e arquitetura de computadores
A organização dos computadores trata da estrutura dessas máquinas,
preocupando-se com circuitos, tipos de memória e demais componentes
físicos usados, como os periféricos. Ou seja, busca-se saber como se dá
o funcionamento do computador. Já a arquitetura dos computadores for-
nece elementos críticos a serem usados pelo programador: dados e suas
representações, operações lógicas e rotinas, etc. Por isso, a da descrição
da arquitetura possui uma natureza mais abstrata. Devido à importância
de se integrar conhecimento de hardware e software, esta disciplina cobri-
rá aspectos tanto de organização quanto arquitetura, seguindo o caminho
de obras de referência na área (NULL & LOBUR, 2010; MURDOCA &
HEURING; 2000; STALLINGS, 2002; MONTEIRO, 2007).
Por mais simples ou complexa que seja a estrutura de um compu-
tador, a sua função básica é o processamento de dados. A seguir, vamos
discutir qual é o significado dessa atividade e a sua relação com o conhe-
cimento.
1.2  Processamento de dados, Informação e
Conhecimento
Vamos discutir um pouco esses conceitos e as diferenças entre eles?
a seguir, apresento trechos da definição dada pelo professor Dr. Val-
demar W. Setzer, disponibilizada em: <http://www.ime.usp.br/~vwsetzer/
dado-info.html>.
Segundo o professor Dr. Valdemar Setzer, podemos dizer que dado é:
(...) uma sequência de símbolos quantificados ou quantificáveis.
Portanto, um texto é um dado. De fato, as letras são símbolos
quantificados, já que o alfabeto, sendo um conjunto finito, pode por
si só constituir uma base numérica (a base hexadecimal emprega
tradicionalmente, além dos 10 dígitos decimais, as letras de A a E).
Também são dados fotos, figuras, sons gravados e animação, pois
todos podem ser quantificados a ponto de se ter eventualmente di-
ficuldade de distinguir a sua reprodução, a partir da representação
quantificada, com o original. É muito importante notar-se que, mes-
mo se incompreensível para o leitor, qualquer texto constitui um
dado ou uma sequência de dados (...). (SETZER,– ano)
9
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Segundo o Dr. Setzer, o dado é uma entidade matemática puramente
sintática, ou seja, os dados podem ser descritos por estruturas de represen-
tação. Assim sendo, podemos dizer que o computador é capaz de arma-
zenar dados. Estes dados podem ser quantificados, conectados entre si e
manipulados pelo Processamento de Dados.
Podemos definir dado também como unidades básicas a partir das
quais as informações poderão ser elaboradas ou obtidas. São fatos brutos,
ainda não organizados nem processados.
Já a informação seria:
(...) uma abstração informal (isto é, não pode ser formalizada atra-
vés de uma teoria lógica ou matemática), que está na mente de
alguém, representando algo significativo para essa pessoa. Note-
-se que isto não é uma definição, é uma caracterização, porque
“algo”, “significativo” e “alguém” não estão bem definidos; assu-
mo aqui um entendimento intuitivo (ingênuo) desses termos. Por
exemplo, a frase “Paris é uma cidade fascinante” é um exemplo de
informação – desde que seja lida ou ouvida por alguém, desde que
“Paris” signifique para essa pessoa a capital da França (supondo-se
que o autor da frase queria referir-se a essa cidade) e “fascinante”
tenha a qualidade usual e intuitiva associada com essa palavra.
Assim, a informação depende de algum tipo de relacionamento,
avaliação ou interpretação dos dados.
Veja também que informação e dado mantêm relações:
(...) Se a representação da informação for feita por meio de dados,
como na frase sobre Paris, pode ser armazenada em um computador.
Mas, atenção, o que é armazenado na máquina não é a informação,
mas a sua representação em forma de dados. Essa representação
pode ser transformada pela máquina, como na formatação de um
texto, o que seria uma transformação sintática. A máquina não pode
mudar o significado a partir deste, já que ele depende de uma pessoa
que possui a informação. Obviamente, a máquina pode embaralhar
os dados de modo que eles passem a ser ininteligíveis pela pessoa
que os recebe, deixando de ser informação para essa pessoa. Além
disso, é possível transformar a representação de uma informação de
10
Organizações de Computadores
Proibidaareprodução–©UniSEB
modo que mude de informação para quem a recebe (por exemplo, o
computador pode mudar o nome da cidade de Paris para Londres).
Houve mudança no significado para o receptor, mas no computador
a alteração foi puramente sintática, uma manipulação matemática
de dados.
Assim, não é possível processar informação diretamente em um
computador. Para isso é necessário reduzi-la a dados. No exemplo,
“fascinante” teria que ser quantificado, usando-se por exemplo uma
escala de zero a quatro. Mas então isso não seria mais informação
(...).
Podemos agrupar dados isolados e torná-los consistentes ao se
transformarem em informações. Por exemplo, se tivermos um conjunto de
dados que descreva a temperatura do ambiente num local, horário e data,
poderíamos ter a seguinte relação:
Em Ribeirão Preto, SP,
no dia 3 de fevereiro,
às 15h10 estava uma
temperatura de 24°.
15h10
3 de fevereiro
24°
Entrada
(Dados)
Processamento
Classificar
Filtrar
Organizar
Saída
(Informações)
Ribeirão
Preto-SP
ADAPTADODE(CÔRTES,2008)
Figura 1 ― Geração de informações a partir do processamento de dados.
Assim, o conjunto de dados inicial foi organizado de maneira que
“faça sentido” àqueles que o estiverem lendo. Isto os torna informação.
No entanto, a representação no computador é feita baseada nos dados.
E como fica o conhecimento?
11
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Caracterizo Conhecimento como uma abstração interior, pessoal, de
algo que foi experimentado, vivenciado, por alguém. Continuando
o exemplo, alguém tem algum conhecimento de Paris somente se a
visitou.
Desta maneira, o conhecimento precisa ser descrito por informações.
(...) A informação pode ser inserida em um computador por meio
de uma representação em forma de dados (se bem que, estando na
máquina, deixa de ser informação). Como o conhecimento não é
sujeito a representações, não pode ser inserido em um computador.
Assim, neste sentido, é absolutamente equivocado falar-se de uma
“base de conhecimento” em um computador. O que se tem é, de
fato, é uma tradicional “base (ou banco) de dados”.
Um nenê de alguns meses tem muito conhecimento (por exemplo,
reconhece a mãe, sabe que chorando ganha comida etc.). Mas não
se pode dizer que ele tem informações, pois não
associa conceitos. Do mesmo modo, nesta
conceituação não se pode dizer que um
animal tem informação, mas certa-
mente tem muito conhecimento. (...)
A informação, segundo o Dr. Setzer,
associa-se à semântica, enquanto o conheci-
mento está associado à pragmática, ou seja,
algo existente no mundo real.
1.3  Breve histórico dos computadores
Um dos pontos interessantes na história do surgimento dos compu-
tadores foi a rápida evolução das tecnologias utilizadas para sua produção.
O primeiro computador de grande porte a usar eletrônica digital
foi o ENIAC (Electrical Numerical Integrator and Calculator). Ele era
de grande porte, devido à quantidade de cálculos que ele era capaz de
realizar: cerca de 5 mil somas ou 360 multiplicações por segundo (muito
pouco comparado à capacidade de nossos computadores atuais).
Conexão:
Recomendações 1.3
Leia na íntegra o artigo do Dr.
Setzer em: <http://www.ime.usp.
br/~vwsetzer/dado-info.html>.
Acesso em: 24 jul. de 2014.
12
Organizações de Computadores
Proibidaareprodução–©UniSEB
WIKIMEDIA
Figura 2 – ENIAC (Parte dele, na verdade, pois aqui vemos sua interface de operação.)
O ENIAC começou a ser desenvolvido por John Eckert e John
Mauchly. O desenvolvimento iniciou-se em 1943, com financiamento
militar, para ser usado na Segunda Guerra Mundial, mas só se tornou ope-
racional em 1946. Tinha cerca de 30 toneladas e ocupava 180 m2 de área.
Em 1944, juntou-se ao grupo de pesquisadores o engenheiro John Von
Neumann. Este criou a arquitetura (chamada de arquitetura de Von Neu-
mann) que é usada até hoje nos computadores comerciais. WIKIMEDIA
Figura 3 – O ENIAC numa visão mais ampla
13
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
O ENIAC não tinha sistema opera-
cional e todas as operações eram inseridas
diretamente na máquina usando códigos
numéricos.
Foi produzido usando a tecnologia
de válvulas a vácuo, que foi a tecnologia
inicial para computadores eletrônicos. Por
isto, ele é o marco da Primeira Geração de
Computadores. O problema das válvulas
era o custo alto para manutenção. Para
você ter uma ideia, o ENIAC foi cons-
truído usando mais de 17 mil válvulas e
gastava mais de 200.000 watts, aquecendo
muito!
As válvulas eletrônicas possuíam
o tamanho aproximado de uma lâmpada
elétrica.
A era da computação comercial
iniciou-se no ano de 1951, quando o UNI-
VAC (Universal Automatic Computer) foi
entregue ao primeiro cliente: o escritório
do Censo do Estados Unidos para tabulação dos dados do censo do ano
anterior. Pode-se dizer que o UNIVAC foi o resultado de modificações
positivas no ENIAC.
Em 1947, os cientis-
tas John Bardeen, Walter H.
Brattain e William Shockley
desenvolveram o transistor. O
transistor é um pequeno dis-
positivo que transmite sinais
eletrônicos usando um resis-
tor. Os transistores revolucio-
naram a eletrônica e a maneira
de construir computadores.
Além de serem muito menores
do que as válvulas, consu-
miam muito menos energia e
geravam menos calor. Tam-
WIKIMEDIA
Figura 4 – Foto de uma válvula
eletrônica
Figura 5 – Foto de um transistor simples
ANNEDAVE/DREAMSTIME.COM
14
Organizações de Computadores
Proibidaareprodução–©UniSEB
bém eram mais rápidos e mais confiáveis do que as válvulas. Um novo
avanço, nesta mesma época, foi a criação de uma linguagem simbólica
para manipular instruções das máquinas em vez de códigos numéricos,
e isto tornou um pouco menos ardil a tarefa de criar programas para os
computadores. Depois das linguagens assembly (as linguagens simbóli-
cas), surgiram as linguagens de “mais alto nível”, como Fortran e CO-
BOL. São linguagens com comandos em inglês, em vez de símbolos e
marcações como nas linguagens assembly. E esta foi chamada a segunda
geração dos computadores. Nesta época, os computadores ainda não
atingiam as pessoas “comuns” da sociedade, sendo usados apenas por
universidades e por organizações do governo e militares.
Entre 1965 e 1970, surgiu o Circuito Integrado (CI). Trata-se de
um circuito eletrônico completo num pequeno chip feito de silício. Em
1965, os CIs começaram a substituir os transistores nos computadores e
aí nós tivemos os Computadores de Terceira Geração.
ALEXSKOPJE/DREAMSTIME.COM
Figura 6 – Foto de circuitos integrados
O silício é um material chamado semicondutor, pois conduz corren-
te elétrica quando misturado com impurezas químicas em sua constituição
(você pode pesquisar os detalhes de materiais semicondutores se ficar
curioso!).
15
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
O marco importante desta terceira geração foi o lançamento do com-
putador da série IBM 360 em 1964. Trata-se de uma linha de computadores
projetada pela IBM tanto para uso comercial quanto científico. Foi uma série
com o intuito de inserir o uso de computadores nos negócios e em operações
comerciais.
NASA/WIKIMEDIA
Figura 7 – O IBM 360
Já a quarta geração de computadores, com início na década de 1970,
traz consigo a criação do microprocessador. Os computadores atuais são
muito menores, mais de 100 vezes menores que aqueles de primeira ge-
ração, mas um único chip é mais poderoso que o próprio ENIAC. Para
você ter uma ideia, em 1977 uma calculadora podia fazer cerca de 250
multiplicações por segundo, custava de 300 a 500 dólares e pesava mais
de 500 gramas. Hoje, uma calculadora pesa muito pouco, custa 1 dólar ou
menos às vezes (depende da cotação) e realiza muito mais cálculos. Em
comparação ao ENIAC, um Pentium de 150 MHz era capaz de mais de
300 milhões de operações de soma por segundo, enquanto que o ENIAC
processa apenas 5.000 operações.
International Business Machines (IBM) – trata-se de uma empre-
sa de desenvolvimento de hardware e software, estadunidense, com quase
um século de existência. Mais informações em <http://www.ibm.com/ibm/br/pt/>.
16
Organizações de Computadores
Proibidaareprodução–©UniSEB
Dê uma olhada na figura a seguir.
Figura 8 – Evolução dos computadores
Retirado de A
história dos processa-
dores, desde ENIAC até
Nehalem/INTEL.
Claro que a his-
tória mais recente dos
computadores você já
conhece, mas vamos
apenas comentar um
pouco sobre os compu-
tadores pessoais. Estes
SWTPC6800/WIKIMEDIA
Figura 9 – MITS Altair
17
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
A evolução na velocidade dos
microprocessadores é tida para alguns
como a quinta geração dos computadores.
O marco seria o microprocessador Intel 386,
que permitia a execução de várias tarefas ao
mesmo tempo.
computadores mudaram completamente
o paradigma do uso de computadores.
O primeiro computador pes-
soal que foi disponibilizado ao
público em geral foi o MITS Altair,
produzido em 1975. Na época, foi
“choque” grande, pois os computa-
dores só faziam sentido para empre-
sas, universidades, o governo ou os
militares! Para que ter um computador
em casa? Se fosse para investir, investiria
em maquinários, em ferramentas, mas um
computador? Não teria serventia! Esse seria um típico discurso de um pai
cujo filho acabou de lhe fazer um pedido naquela época!
Quando Steve Jobs e Steve Wozniak mostraram ao público jovem
o Apple I, todo mundo foi ao delírio! Ele possuía um teclado fácil de
usar e tela! A Apple mostraria, mais tarde, sua facilidade em conseguir
sucesso comercial com o Apple II
e o software de planilha eletrônica
VisiCalc.
Figura 10 – Apple I
VOLKERSTEGER/SCIENCEPHOTOLIBRARY/SPLDC/LATINSTOCK
VOLKERSTEGER/SCIENCEPHOTOLIBRARY/SPLDC/LATINSTOCK
Figura 11 – Apple II
18
Organizações de Computadores
Proibidaareprodução–©UniSEB
Em 1981, a IBM lançou seu primeiro computador pessoal e captu-
rou a maior fatia de mercado em 18 meses. O padrão IBM PC foi adotado
e copiado por outras empresas.
HO/IBM/AFP
Figura 12 – IBM PC
Não podemos nos esquecer de um nome importantíssimo no século
passado. Claro, ainda é um nome muito importante: Microsoft. A hoje gigante
empresa de software forneceu o sistema operacional para o computador pesso-
al da IBM. Este software, chamado de MS-DOS, foi usado pela IBM e pelas
empresas que criaram computadores pessoais baseadas no padrão IBM PC.
Com grande expansão, a Microsoft logo evoluiu para novas versões de seu
sistema operacional até que “descobriram” e popularizaram a interface gráfi-
ca com o sistema operacional Windows! Os sistemas
Windows mudaram o conceito de interface entre
usuário e computador. Não foi a Microsoft que
criou o conceito de interface gráfica, mas foi
uma das principais empresas (senão a principal)
a popularizá-lo!
Conexão:
Recomendações 2.1
Assista ao filme história
do computador em minutos
disponível em <www.youtube.com/
watch?v=F3qWg1JBPZg>.
Acesso em: 24 jul. de 2014.
19
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
1.4  Visão geral do computador pessoal
O hardware de seu computador pessoal precisa dos seguintes com-
ponentes para um efetivo funcionamento:
•	dispositivos de entrada;
•	dispositivos de saída;
•	dispositivos de armazenamento secundário;
•	unidade de processamento.
O funcionamento básico de um computador convencional acontece
de acordo com a figura a seguir:
Armazenamento secundário
O dispositivo de
armazenamento
secundário armazena
dados e programas
O dispositivo
de entrada envia
dados à unidade
central de
processamento
A unidade central de
processamento (UCP)
executa instruções
de computador
A memória mantém
dados e programas em
uso no momento
O dispositivo
de saída
disponibiliza
os dados
processados
(as Informações)
Entrada Processamento Saída
ADAPTADODE:(CAPRONEJOHNSON,2004)
Figura 13 – Componentes principais de um computador e mecanismo de funcionamento.
As informações são inseridas no ambiente computacional por meio
dos dispositivos de entrada. Estes dispositivos permitem que nós, seres
humanos, ou equipamentos forneçamos informações para serem proces-
sadas. Exemplos seriam o mouse, o teclado, leitores óticos, dentre outros.
20
Organizações de Computadores
Proibidaareprodução–©UniSEB
Estas informações de entrada são arma-
zenadas na memória, e a unidade central de
processamento (UCP) realiza o devido tra-
tamento destas. Após isto, dispositivos de
saída podem exibir o resultado do proces-
samento. Exemplos de dispositivos de saída
são monitores, impressoras, dispositivos de
som etc.
Além disso, existem componentes que permi-
tem a gravação de dados de maneira permanente e também o intercâmbio
de dados. Estes dispositivos são chamados de dispositivos de armazena-
mento secundário.
Detalhando um pouco mais os componentes de um computador, te-
mos a figura a seguir.
1
2 3
4
5
6
7
8
9
Figura 14 – Componentes básico do computador: 1 – monitor, 2 – placa-mãe, 3 –
processador, 4 – memória RAM, 5 – placas de expansão, 6 – fonte de alimentação, 7 – leitor
ótico (DVD, CD etc.), 8 – disco rígido (hd), 9 – mouse, 10 – teclado.
Dispositivos de entrada: 10 e 9
Dispositivos de saída: 1
Armazenamento secundário: 7 e 8
Elementos da UCP: 2, 3, 4, 5 e 6.
Conexão:
Recomendações 2.3
Veja o vídeo do Olhar Digital
sobre o que considerar na
hora de comprar um computa-
dor, em <www.youtube.com/
watch?v=vYo6IceDsVQ>.
21
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
A UCP representa toda a unidade que faz o processamento, mas
não é um único componente, pois reúne diversos outros. Por exem-
plo, a placa-mãe, que recebe este nome em razão de todos os demais
componentes da UCP, periféricos de entrada e de saída, dependerem
dela para conexão. É uma placa que faz a interligação entre todos os
componentes do computador. Nela há os slots de memória, onde fica a
memória RAM do computador. A memória RAM (memória de acesso
randômico) é a memória de trabalho da máquina. Nela ficam os progra-
mas que estão sendo processados e todas as informações necessárias.
Além da memória RAM, temos o próprio processador, a unidade capaz
de realizar complexas operações matemáticas, e as placas de expansão,
que permitem adicionarmos novas funcionalidades ao nosso computador,
como uma placa que faça processamento dedicado de vídeo. Enquanto a
memória RAM guarda as informações de trabalho, os discos rígidos guar-
dam todas as informações e todos os programas. Quando desligamos o
computador, as informações são salvas no disco. Quando ligamos o com-
putador, os programas necessários para utilização dele, bem como aquele
que desejarmos, são carregados do disco para a memória RAM.
Além dos componentes vistos, podemos enumerar um outro tipo de
dispositivo: Dispositivo para Comunicação Externa. No hardware de seu
computador, ele é tratado com um dispositivo de entrada e saída, mas é
interessante diferenciá-lo. Exemplos destes dispositivos são:
•	placas de rede;
•	hub;
•	switch;
•	modems.
1.5  Elementos Básicos da Arquitetura de
Von Neumann
Lembra-se de termos comentado sobre John Von Neumann, que par-
ticipou da criação do ENIAC? Apesar de Von Neumann ter sua formação
na área de matemática, sua contribuição foi muito importante em diversas
outras áreas e, ele popularizou a chamada Arquitetura de Von Neumann,
que será nosso objeto de estudo agora.
A arquitetura de Von Neumann é a base da construção da principal
arquitetura dos computadores modernos, os PCs.
22
Organizações de Computadores
Proibidaareprodução–©UniSEB
De maneira bem simples, ela funciona assim:
A unidade central de processamento (UCP) faz operações com
1.	 Informações. Estas operações podem ser:
a)	operações de entrada e saída, como leitura de dados do teclado
e escrever dados na tela. São operações para inserção de dados
na memória do computador ou para exibição de informações
que estejam armazenadas nesta.
b)	operações aritméticas como adição, subtração, multiplicação
e divisão de valores inteiros ou ponto flutuante (basicamente,
números reais representados num formato definido);
c)	operações lógicas e relacionais como comparações, testes de
condições lógicas etc.;
d)	movimentação de dados entre os vários componentes, ou seja,
resgate e inserção de informação na memória ou em dispositi-
vos de entrada e saída.
2.	Para fazer estas operações, necessitará de que as informações
estejam na memória. Trata-se de um componente eletrônico
para armazenar informações.
3.	Além da memória, existem os dispositivos de entrada e saí-
da, como teclado e mouse (entrada) ou monitor e impressora
(saída), que emitirão as informações num formato legível ao
usuário do computador.
Memória Primária Dados
Dados
Dados
Controle
Unidade Lógico
e Aritmética
Unidade de
Controle
Unidade de
Entrada e
Saída
Figura 15 – A arquitetura de Von Neumann – Visão interna do funcionamento de um
computador.
23
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Então, basicamente, na arquitetura de Von Neumann, o que ocorre
é que uma máquina pode armazenar seus programas e executá-los numa
unidade responsável por diferentes operações.
Pela figura, pudemos ver que as informações podem ser dados ou
informações de controle. As informações de controle são aquelas que
dizem o que deve ser feito com os dados. Por exemplo, se tivéssemos, de
alguma maneira, na memória a informação da expressão “5 + 7 < 10 ?”,
saberíamos que estamos tentando comparar a soma de 5 e 7 com o valor
10 e saber quem é maior. Logo, 5, 7 e 10 são dados e “+” , “<” e “?” são
informações de controle. O computador entenderia que deve somar os da-
dos 5 e 7 (controle +) e verificar se o resultado é menor que 10 (controle
< e resultado ?).
As duas outras unidades da figura são a ULA (Unidade Lógica e
Aritmética) que serve para realizar as operações, efetivamente, e a UC
(Unidade de Controle), que serve para decodificar as operações, ou seja,
entender o que precisa ser feito, e disparar novas operações, caso neces-
sário.
A UCP entende operações num determinado formato. Vamos aqui
chamar formato de linguagem, ok?
Bom, o computador entende a linguagem eletrônica que popular-
mente é chamada de binária, devido à sua representação. Como um pro-
gramador vai escrever códigos que descrevam operações em binário? Não
vai (geralmente)!
Neste ponto, entrará em cena uma camada intermediária que cuidará
disto para ele! Um programador de hoje escreve código em linguagem de alto
nível. Isto quer dizer que a linguagem é de mais fácil compreensão humana!
Os passos seguidos por um programador são:
1.	Ele pensa no problema e o analisa;
2.	depois formula algoritmos que possam resolver este problema;
3.	na sequência, transforma os algoritmos em código de alto ní-
vel (esta fase é chamada de codificação ou programação);
4.	após isto, traduz o código de alto nível, que resultará num
“executável”;
5.	um executável é um programa que roda sobre uma plataforma;
24
Organizações de Computadores
Proibidaareprodução–©UniSEB
6.	uma plataforma é um computador com sua arquitetura e um
sistema “principal” de gerenciamento de seus recursos, chama-
do sistema operacional;
7.	o sistema operacional “sabe” como fazer o executável funcio-
nar, usando memória, dispositivos de entrada e saída etc.
8.	O Windows, o Linux, o Solarix e o Unix, dentre outros, são
exemplos de sistemas operacionais (veremos mais sobre siste-
mas operacionais no capítulo seguinte).
9.	Mas sistema operacional – por exemplo Windows–, não é
aquela interface que você vê com editores de texto e planilhas.
Ele compreende os programas, as rotinas que estão por trás de
todo o funcionamento de seu computador (também veremos
mais disto no capítulo seguinte).
1.6  Construção de algoritmos simples
Algoritmos são conjuntos sistemáticos e formalizados de intruções
voltados para resolução de um problema (PIVA JR. et al, 2012). O concei-
to de algoritmo não é exclusivo da computação: uma receita de bolo, por
exemplo, pode ser considerado como tal. Porém, a estrutura de algoritmos
se tornou mais difundida a partir da programação.
Nos próximos dois capítulos, vamos relacionar os conceitos de
organização e arquitetura de computadores com sua implementação em
algoritmos simples. Para tanto, vamos apresentar um ambiente de progra-
mação que pode ser facilmente usado pelo aluno, além de uma explicação
introdutória sobre a estrutura de algoritmos.
1.6.1  Indicação de ambiente de desenvolvimento
Para simplificar o processo de codificação de algoritmos por meio de
pseudocódigos que utilizaremos neste e no próximo capítulo um ambien-
te de desenvolvimento conhecido como VisuAlg. Este ambiente pode ser
obtido gratuitamente e permite a construção e simulação de algoritmos. O
programa VisuAlg é muito indicado para programadores iniciantes, uma
vez que possui uma interface simplificada e de fácil compreensão. O qua-
dro 1.1 apresenta os endereços principais do ambiente de desenvolvimento
VisuAlg.
25
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Site oficial
http://www.facom.ufu.br/~claudio/Cursos/PP/Docs/Visualg2.pdf
Download (endereço abreviado)
goo.gl/n8YLk
Download (endereço completo)
http://www.guanabara.info/2007/09/visualg-v25/
Quadro 1.1 – Ambiente de Desenvolvimento VisuALg.
Inicialmente utilize um dos endereços apresentados no quadro 1.1
para realizar o download do ambiente. Escolha uma pasta no seu com-
putador para armazenar o arquivo. Finalizado o processo de download
clique duas vezes sobre o arquivo e você visualizará uma tela semelhante
a ilustrada na figura 15.
Figura 16 – Tela inicial do instalador do VisuAlg.
Clicando no botão avançar você poderá definir o diretório para ins-
talação do programa. Geralmente não é necessário modificar o diretório,
assim, clique novamente no botão avançar. Na tela Componentes Sele-
cionados, você também não precisará realizar nenhuma alteração, dessa
forma, clique novamente no botão avançar. A tela Selecione o grupo do
menu Iniciar, permite a especificação do nome que será definido para
menu, o que novamente não necessita de modificação. A tela seguinte
Selecionar Tarefas Adicionais, também já possui as principais configura-
ções definidas, com isso, você pode clicar no botão avançar, e em seguida,
26
Organizações de Computadores
Proibidaareprodução–©UniSEB
clique no botão instalar. A instalação é rápida e dura apenas alguns se-
gundos. No final, você já poderá iniciar o ambiente VisuAlg.
Para a criação de um novo algoritmo no ambiente VisuAlg, você de-
verá utilizar o menu Arquivo>Novo, ou simplesmente pressionar as teclas
de atalho CTRL+N. Dessa forma, um novo algoritmo será criado confor-
me ilustra a figura 2. Para salvar os algoritmos codificados você deverá
utilizar o menu Arquivo>Salvar (CTRL+S). O ambiente VisuAlg utiliza a
extensão .alg para representar os arquivos com algoritmos.
Figura 17 – Criação de um novo algoritmo no ambiente VisuAlg.
Neste momento você já tem o ambiente para desenvolvimento de al-
goritmos VisuAlg instalado no seu computador. Além disso, você já sabe
como criar um novo algoritmo. Poderemos agora iniciar um estudo mais
detalhado a respeito da construção de algoritmos.
1.6.2  Estrutura básica de um algortimo
O primeiro passo para a construção de algoritmos computacionais
é o entendimento do conceito de algoritmo. Segundo Forbellone (2005),
um algoritmo é uma sequência de passos que visa atingir um objetivo
bem definido. Outra definição pode ser encontrada em Ascencio e Edilene
(2002), em que um algoritmo é descrito como uma sequência de passos
que deve ser seguida para a realização de uma tarefa. Dentro deste con-
texto, você pode entender o termo algoritmo como um conjunto de passos
que busca a solução de um problema.
27
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
No cenário computacional, os algoritmos têm como fundamento a
elaboração de uma sequência de passos de forma que o computador seja
capaz de solucionar um determinado problema. Em geral, os algoritmos
são utilizados para abstrair1 problemas do mundo real, e transformá-los
em soluções no mundo computacional.
A escrita de algoritmos é a base para o processo de desenvolvimento
dos programas de computador. No ciclo de vida do desenvolvimento de
um programa, o primeiro estágio é a elaboração da representação algo-
rítmica. Assim, inicialmente, os programadores criam uma especificação
algorítmica do problema computacional, antes de transformá-lo no código
fonte de uma determinada linguagem de programação. Com a representa-
ção algorítmica do problema é possível especificar quais as principais fun-
cionalidades do futuro programa, bem como, identificar possíveis erros
que ocorrerão com a execução do programa.
Para a construção de um algoritmo computacional é necessário a
utilização de uma estrutura básica, que é definida a partir de uma sintaxe
específica e contém blocos pré-determinados para codificação. Nesta es-
trutura, é especificado, por exemplo, o nome do algoritmo, quais variáveis
serão utilizadas e o bloco de instruções que contém a lógica do programa.
O código 1 apresenta a estrutura básica de um algoritmo computacional,
a qual foi definida utilizando uma representação conhecida como pseudo-
código. Este tipo de representação também é comumente descrita como
português estruturado ou portugol.
Código 1
1	algoritmo “semnome”
2	// Função :
3	// Autor :
4	// Data : 20/10/2011
5	// Seção de Declarações
6	var
7	
8	inicio
9	// Seção de Comandos
10	fimalgoritmo
Na primeira linha do algoritmo é necessário especificar um nome,
da mesma maneira que você define nomes para documentos em editores
1	 Avaliar características e propriedades em separado; considerar à parte.
28
Organizações de Computadores
Proibidaareprodução–©UniSEB
de texto. As linhas 2, 3 e 4 apresentam informações gerais a respeito dos
algoritmos. É importante destacar que estas linhas começam pelos ca-
racteres //, os quais são chamados de comentários. Uma linha de comen-
tário tem como objetivo auxiliar o entendimento do algoritmo, assim,
você poderá utilizá-las sempre que necessário. Outro detalhe interessan-
te sobre os comentários, é que as linhas comentadas não influenciam na
execução do algoritmo, dessa forma, você poderá escrever comentários
em português da maneira que determinar mais adequada. Na linha 5 te-
mos a seção de declarações, a qual será utilizada para declaração das va-
riáveis que fazem parte do programa. A linha 8 define o início do algo-
ritmo, e as linhas seguintes (Seção de Comandos), especificam a lógica
de programação utilizada no algoritmo. Por fim, a linha 10, denominada
fimalgoritmo, representa o término do algoritmo.
Para demonstrar a utilização do ambiente VisuAlg na codificação
de algoritmos, vamos escrever nosso primeiro algoritmo. Este algoritmo
tem como objetivo exibir seu nome completo na tela, assim, inicialmen-
te você deverá abrir o ambiente e escrever o algoritmo conforme apre-
sentado na figura 17.
Figura 18 – Codificação do algoritmo para exibir o nome na tela.
Finalizada a codificação do algoritmo é fundamental salvar o código
antes de realizar a execução. Para isso, utilize o menu Arquivo>Salvar,
ou simplesmente pressione a tecla de atalho Ctrl+S. Você pode escolher a
pasta de sua preferência para armazenar o arquivo. A escolha do nome do
algoritmo é importante, assim, recomenda-se não utilizar espaços, acen-
29
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
tos, ou caracteres especiais. Para este exemplo, utilizaremos o seguinte
nome unid3_exemplo01.alg. A extensão .alg é utilizado pelo ambiente
VisuAlg para identificar arquivos do tipo algoritmo.
Para facilitar o acompanhamento da codificação, você pode exibir
os números das linhas, dessa forma, utilize o menu Exibir>Número de
linhas para habilitar o recurso. Em seguida, poderemos executar o algorit-
mo e visualizar o resultado na tela. A execução de um algoritmo no am-
biente VisuAlg é realizada por meio do menu Algoritmo > Executar, alter-
nativamente, você poderá utilizar a tecla de atalho F9. A figura 4 apresenta
o resultado da execução do algoritmo.
Figura 19 – Resultado da execução do algoritmo no ambiente VisuAlg.
Com isso, você aprendeu os procedimentos para codificação de um
algoritmo no ambiente VisuAlg, bem como, sua execução e visualização
dos resultados.
Atividades
01.	 Especifique a diferença entre organização e arquitetura de computa-
dores.
02.	 Descreva a arquitetura de Von Neumann.
03.	 Pode-se dizer que o computador pessoal extinguiu os mainframes?
Justifique.
04.	 Pesquise sobre outras arquiteturas de computadores além daquela de
Von Neumann.
30
Organizações de Computadores
Proibidaareprodução–©UniSEB
Reflexão
Vimos até aqui que há muito mais sobre computadores do que sim-
plesmente entender como eles funcionam. A história e a evolução dos
computadores determinaram, de certa forma, como as pessoas passaram a
pensar em tecnologia e a “consumir” tecnologia. Mesmo que você não se
torne especialista na área de tecnologia da informação, é sempre impor-
tante saber como funcionam os equipamentos que serão usados no dia a
dia. Isto facilita o diálogo entre nós e as novas tecnologias.
Leituras recomendadas
Artigo – O papel da informação no processo de capacitação tecno-
lógica das micro e pequenas empresas. Escrito por Paulo César Rezende
de Carvalho Alvim.
Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext
&pid=S0100-19651998000100004>.
Livro – Administração de Sistemas de Informação, do autor Pedro
Luiz Cortes. Livro muito interessante e abrangente sobre o uso de siste-
mas de informação nas empresas.
Referêncais bibliográficas
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São
Paulo: Pearson Prentice Hall. 2004.
LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren-
ciais. São Paulo: Prentice Hall. 2007.
MONTEIRO, M. A. Introdução à Organização de Computadores.
5a ed. São Paulo: LTC, 2007.
MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de
Computadores. Rio de Janeiro: Campus, 2000.
NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi-
zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010.
31
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIAN-
CHI, F. Algoritmos e Programação de Computadores. Rio de Janei-
ro: Elsevier, 2012.
STALLINGS, W. Arquitetura e Organização de Computadores.
São Paulo: Prentice Hall, 2002.
No próximo capítulo
No próximo capítulo, entederemos como os dados são representa-
dos na computação. Serão vistos os conceitos de bit, byte, bases e a con-
versão entre elas.
32
Organizações de Computadores
Proibidaareprodução–©UniSEB
Minhas anotações:
Capítulo2
Representação de
Dados
No capítulo prévio, entendemos o com-
putador como uma máquina que processa
dados. Deve-se notar que existem artefatos
mecânicos que, mesmo com capacidade limitada,
conseguem fazer também processamento – tal como
calculadoras mecânicas criadas no séc. XVII. Claro que
pela sua capacidade e flexibilidade, o nosso interesse reside
nos computadores baseados em dispositivos eletrônicos, e as-
sim descrevemos no capítulo anterior a evolução das máquinas
baseadas em válvulas, transistores simples e microprocessadores.
Porém, não foi respondida uma pergunta importante: como os
computadores eletrônicos conseguem reconhecer dados.
Para tratar dessa questão, este capítulo começa com a definição de
elementos fundamentais da linguagem binária, partindo para bases
numéricas fundamentais.
Objetivos da sua aprendizagem
•	Compreender o que são bits, bytes e palavras (words).
•	Conhecer as principais bases numéricas.
•	Saber como o computador representa números e caracteres.
•	Entender, sob a perspectiva de programação, o relacionamento entre
variáveis e tipos de dados.
Você se lembra?
Ao preencher dados em formulários eletrônicos, muitas vezes recebe-
mos mensagens de erro, indicando incompatibilidade entre os dados
que entramos e o tipo de dados esperado. Qual seria a consequên-
cia de não haver esse controle?
34
Organização de Computadores
Proibidaareprodução–©UniSEB
2.1  Elementos binários fundamentais: bits, bytes e
words.
Pode-se pensar em diversas propriedades relacionadas ao compo-
nente eletrônico e à corrente elétrica, tais como voltagem, amperagem,
frequência de sinal, etc. Porém, fundamentalmente, um dispositivo tem ou
não corrente elétrica passando por ele, em suma, está desligado ou ligado.
Por isso, a forma básica de representação de dados em componentes ele-
trônicos se baseia na linguagem binária (LAUDON & LAUDON, 2007;
CAPRON & JOHNSON, 2004). Essa linguagem contém dois dígitos
apenas, os quais vão corresponder aos dois estados básicos. A represen-
tação desses dois dígitos foi convencionada como sendo 0 ou 1. Deve-se
comentar que a linguagem binária foi desenvolvida antes mesmo da ele-
trônica e da computação, porém se mostrou perfeitamente adequada para
esses campos de desenvolvimento (NULL & LOBUR, 2010).
À unidade de dígito binário (zero ou um) se dá o nome de bit, ter-
mo vindo do inglês binary digital unit (STALLINGS, 2002). Como bits
isolados podem conter apenas dois estados, números e palavras são re-
presentados por diversos bits seguindo determinada convenção. À época
do desenvolvimento do IBM 360, os engenheiros da empresa passaram a
usar conjuntos de 8 bits como unidade básica de endereçamento de me-
mória – este sendo um assunto tratado no capítulo 4. Esse conjunto de
8 bits é chamado de byte. Deve-se notar que a definição do byte estava
ligada à arquitetura e características do hardware. Com o tempo, as uni-
dades de endereçamento foram crescendo, sendo 32 bits e 64 bits as mais
encontradas hoje. O termo word ou palavra é usado
para identificar esses conjuntos de bits adjacen-
tes, sendo o seu número variável segundo o uso
(MONTEIRO, 2007), ver quadro 2.1.
Bit • Digito binário
Byte • Conjunto de 8 bits
WORD
• Número convencionado
de bits adjacentes
Figura 1 – Elementos fundamentais de Linguagem Binária (MONTEIRO, 2007).
Conexão:
Assista a um vídeo
sobre o funcionamento do
computador e o uso de bits e
bytes: https://www.youtube.com/
watch?v=6oDiJLg6xbE
Acesso em: 24 jul. de 2014.
35
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Tamanho
bits
Exemplo
1
nibble 1
byte 0
16 bits 0
32 bits 0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0
Quadro 2.1 – Conjunto de Dados mais Comuns
Fonte: adaptado de (MONTEIRO, 2007, p. 94)
O aumento de capacidade de processamento e armazenamento de
dados nos deixou familiares com termos como megabyte, gigabyte, etc.
Essas unidades se referem a potências de dez de quantidade de bytes, con-
forme está relacionado no quadro 2.2.
Múltiplos Símbolo Valor
kilo k 1000
mega M 10002
giga G 10003
tera T 10004
peta P 10005
exa E 10006
zetta Z 10007
yotta Y 10008
Quadro 2.2 – Múltiplos decimais de bytes
Fonte: (STALLINGS, 2002)
A definição simples desses múltiplos pode ser melhor ilustrada com
algumas estimativas de uso:
•	A Biblioteca do Congresso Americano guardava em 2011 cerca de
235 terabytes (MCKENNA, 2013).
•	Em 2008, o Google já processava 20 mil terabytes ao dia (SCHON-
FELD, 2010).
•	Os serviços de mapas do Google disponibilizam certa de 20 petabytes
de imagens (MCKENNA, 2013).
•	Em 2014, estima-se que o Facebook tinha nada menos do que
258 petabytes em arquivos de fotos e vídeos (LEUNG, 2014).
•	A capacidade do cérebro humano para armazenar memória seria equi-
valente a 2,5 petabytes (SMITH, 2010).
36
Organização de Computadores
Proibidaareprodução–©UniSEB
Deve-se reforçar que esses números são apenas estimativas, sendo
o cálculo preciso bastante complexo e sujeito a diversas questões metodo-
lógicas.
Figura 2 – Biblioteca do Congresso Americano, Washington.
http://commons.wikimedia.org/wiki/File:Library_of_Congress_Interior_Jan_2006.jpg
Acesso em 24 jul. de 2014
Figura 3 – Um dos datacenter do Facebook, Oregon.
Fonte: http://commons.wikimedia.org/wiki/File:Facebook_Data_Center.jpg
Acesso em 24 jul. de 2014
Até este ponto tratamos de alguns elementos básicos de linguagem
binária e demos alguma noção de escala de uso. Entretanto como números
37
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
e palavras são representados nesse tipo de convenção? Para explorarmos
esse assunto, é preciso conhecer algumas bases numéricas e como se pode
convertê-las.
2.2  Bases numéricas
2.2.1  Base decimal
O sistema numérico decimal foi adotado dos árabes pelo euro-
peus e é a base que usamos para contas simples a complexas transações
financeiras em nossa economia (NULL & LOBUR, 2010). Como é um
sistema muito comum, não nos detemos para pensar como funciona.
Veja o exemplo abaixo de decomposição de números em base decimal:
15 = 1x10 + 5x1
146 = 1x100 + 4x10 + 6x1
8303 = 8x1000 + 3x100 + 0x10 + 3x1
Outra forma importante de decompor números é com o uso de po-
tências. Os números acima podem ser reescritos como em termos de po-
tências de 10, lembrando que qualquer potência elevada a zero é igual a 1:
15 = 1x101 + 5x100
Neste caso, temos dois dígitos: o dígito 5, corresponde ao multipli-
cador da potência elevada a zero. O dígito 1, corresponde ao multiplicador
da potência elevada a 1. Por analogia, examine os casos seguintes:
146 = 1x102 + 4x101 + 6x100
8303 = 8x103 + 3x102 + 0x101 + 3x100
Em outras bases numéricas, usamos potências de base correspon-
dente. Mas por que estudamos outras bases? Dependendo da utilização, a
base decimal pode não ser a mais eficiente e eficaz. Deve-se saber que há
uma notação que explicita em que base o número deve ser entendido:
	 (153)10 refere-se a 153 na base decimal.
	 (1110)2 refere-se a 1110 na base binária, que será vista a seguir.
38
Organização de Computadores
Proibidaareprodução–©UniSEB
2.2.2  Base binária
Como sabemos, é mais adequado implementar dados em base biná-
ria no computador. No quadro 3, temos uma relação da representação dos
números de 1 a 15. Porém como esses números são formados? Podemos
entendê-los a partir de sua decomposição em potências de dois:
(14)10 = (1 1 1 0)2 = (1x23) + (1x22) + (1x21) + (0x20)
= 8 + 4 + 2 + 0 = 14
Por analogia, verifique estes três exemplos:
(1)10 = (1)2 = 1x20 = 1
(2)10 = (10)2 = 1x21 + 0x20 = 2 + 0 = 2
(9)10 = (1001)2 = 1x23 + 0x22 + 0x21 + 1x20 = 8 + 0 + 0 + 1 = 9
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
Quadro 2.3 – Representação Binária de Inteiros Positivos (zero a quinze)
Olhando novamente o quadro 2.3, vemos que o número 1 é repre-
sentado por um dígito, já o número nove por quatro. Para a estrutura do
39
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
computador, é interessante termos uma padronização dos processos de lei-
tura e alocação de memória para cada variável. O byte, também referido
como octeto (MURDOCA & HEURING; 2000), surgiu com essa preocu-
pação, definindo conjuntos em uma quantidade fixa de 8 bits. No caso do
número 1, os seus dígitos vacantes são preenchidos por zero, assim temos
na representação de inteiros positivos:
(1)10 = (000000001)2
(9)10 = (00001001)2
(255)10 = (11111111)2
Usando as combinações possíveis de zeros e uns em 8 bits, um byte
pode representar 256 valores numéricos, ou seja, 28. Se precisássemos
usar apenas inteiros positivos, poderíamos representar valores começando
por zero até chegar a 255. Contudo, para indicar se o valor é negativo ou
positivo em um byte, precisamos usar um dígito para ter essa informação.
Assim, usando-se o byte, chega-se a um intervalo que vai de -128 a 127
(STALLINGS, 2002) .
Bug do Milênio
Quando os sistemas computacionais estavam sendo desenvolvidos
no pós-guerra, um dos principais gargalos era a capacidade de memória
e processamento. Por essa razão, foi simplificada a representação dos
anos, subentendendo que todas as datas se referiam ao século 20. Assim,
a representação de “1985” correspondia a 85, subentendendo-se os dígitos
“19” à frente. Chegando a “2000”, porém, teríamos “00”, que seria enten-
dido como “1900”. Previu-se que esse problema de representação pudesse
causar o colapso de muitos sistemas computacionais, mas as consequên-
cias foram muito menores do que as previstas (BBC, 2014).
Também pela forma de representação de datas, estão previstos
problemas em 2038 com sistemas UNIX de 32 bits e programados na
linguagem C (SMAAL, 2011).
Para representar valores maiores ou menores do que esse intervalo,
há duas saídas principais. A primeira é lançar mão de words (palavras),
como de 16 bits ou 32 bits citados anteriormente. Em uma palavra de
16 bits, os valores de números inteiros podem variar de -32.768 a 32.767
(MONTEIRO, 2007). A quantidade de bits e o formato que são conven-
cionados a cada dado é importante. Antes de mais nada, quanto maior o
40
Organização de Computadores
Proibidaareprodução–©UniSEB
word, naturalmente maior é o uso de memória e capacidade de processa-
mento. Outro fator importante é que uma vez fixado o tamanho de certo
tipo de dado em um sistema, o custo de mudança pode ser considerável. O
problema (bug) do milênio e de 2038 são exemplos de problemas advin-
dos da fixação inadequada de bits para variáveis de data.
A passagem de bytes para words de 16 bits e de words de 16 para
32 bits requer mais capacidade e mudanças na estrutura de hardware.
Buscou-se evitar a necessidade dessas mudanças e ainda de aumentar
o escopo para representação de números reais por meio de método de
representação por ponto flutuante (STALLINGS, 2002). Esse método se
baseia na representação de números por seus algarismos significativos e
potências. O padrão mais usado para esse método denomina-se IEEE 754,
servindo de base para construtores de hardware e programadores (MON-
TEIRO, 2007).
Os números a seguir possuem grandezas bastante diferentes, mas
podem ser representados com basicamente a mesma quantidade de bits:
1,27 x 106 = 1,27 x 1000000 = 1270000
7,31 x 10-2 = 7,31 x 0,01 = 0,0731
Nos dois casos, temos três algarismos sig-
nificativos e determinada potência na base 10.
Assim, podemos representar números inteiros
e aproximar valores fracionários e dízimas,
ampliando consideravelmente o intervalo de re-
presentação numérica. O termo “ponto flutuante”
vem do fato da vírgula na representação numérica
poder estar na casa centesimal, unitária, de milhar, etc.
Assim como é possível somar e subtrair usando o sistema decimal,
é possível fazer as opções aritméticas com o sistema binário, incluindo
números de ponto flutuante.
2.2.3  Base hexadecimal
Esse sistema possui o número 16 como base e é indicado por con-
tração “hex”. Como notação, geralmente usa-se a convenção abaixo
(STALLINGS, 2002):
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
Conexão:
Saiba mais sobre o
método ponto flutuante e
padrão IEEE 754:
http://www.lia.ufc.br/~valdisio/
download/ieee.pdf
Acesso em: 24 jul.
2014.
41
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
O Excel tem funções
implementadas que permitem a
conversão entre bases numéricas. Se
você, por exemplo, possuir o número 14 em
uma célula A1, você pode implementar uma
função em uma célula A2 que use o 14 como ar-
gumento. Isso pode ser feito pelo ícone fx ou pelo
menu Inserir. Algumas funções disponíveis são:
BINADEC: converte da base binária para a
decimal.
BINAHEX: converte da base binária para a
hexadecimal.
DECABIN: converte da base deci-
mal para a binária.
Diversas representações computacionais, padrões e linguagens usam a
base hexadecimal. Um exemplo são as representações de cores em HTML,
em que se inicia com # para depois especificar quatro dígitos hexadecimais.A
cor azul primária, por exemplo, é representada por “#0000FF”.
2.2.4  Conversão entre bases
Ao usar o computador, sem perceber estamos usando a conversão
entre sistema decimal e binário a todo o tempo. Há diversas ferramentas
na WEB e em planilhas eletrônicas para fazer realizar a conversão entre
diversos sistemas.
Para ilustrar aqui uma conversão simples, vamos mudar o número 9 da
base decimal para binária. Vamos usar o método de divisão e resto (NULL &
LOBUR, 2011), que serve apenas a números inteiros sem sinal. Repare que os
dígitos da base binária vão corresponder ao resto da divisão:
9 2
1 4 2
0 2 2
0 1 2
1 0
Os passos feitos foram esses:
•	Dividindo-se 9 por 2, temos 4 com resto
1.	
•	Dividindo-se 4 por 2, temos 2 com resto 1.
•	Dividindo-se 2 por 2, temos 1 com
resto 0, para converter precisa-
mos fazer mais uma divisão.
•	Atenção: dividindo-se 1 por
2, considera-se o resultado
0 com resto 1.
Usando os restos, na or-
dem da esquerda para a direita,
temos:
(9)10 = (1001)2
Conexão:
Conheça um ferramenta
na Web para conversão entre
bases numéricas:
http://wims.unice.fr/wims/en_
tool~number~baseconv.en.html
Acesso em: 24 jul. 2014.
42
Organização de Computadores
Proibidaareprodução–©UniSEB
2.3  Representação de caracteres
Até agora exploramos a representação de números, mas como se
tratam as letras do alfabeto e os caracteres em geral? Também no pós-
-guerra, ainda em um contexto de escassez de memória, os sistemas
computacionais adotaram o padrão ASCII (American Standard Code for
Information Interchange).
Binário Decimal Caractere Binário Decimal Caractere Binário Decimal Caractere
0010 0000 32 0100 0000 40 @ 0110 0000 96 `
0010 0001 33 ! 0100 0001 41 A 0110 0001 97 a
0010 0010 34 “ 0100 0010 42 B 0110 0010 98 b
0010 0011 35 # 0100 0011 43 C 0110 0011 99 c
0010 0100 36 $ 0100 0100 44 D 0110 0100 100 d
0010 0101 37 % 0100 0101 45 E 0110 0101 101 e
0010 0110 38 & 0100 0110 46 F 0110 0110 102 f
0010 0111 39 ‘ 0100 0111 47 G 0110 0111 103 g
0010 1000 40 ( 0100 1000 48 H 0110 1000 104 h
0010 1001 41 ) 0100 1001 49 I 0110 1001 105 i
0010 1010 42 * 0100 1010 4A J 0110 1010 106 j
0010 1011 43 + 0100 1011 4B K 0110 1011 107 k
0010 1100 44 , 0100 1100 4C L 0110 1100 108 l
0010 1101 45 - 0100 1101 4D M 0110 1101 109 m
0010 1110 46 . 0100 1110 4E N 0110 1110 110 n
0010 1111 47 / 0100 1111 4F O 0110 1111 111 o
0011 0000 48 0 0101 0000 50 P 0111 0000 112 p
0011 0001 49 1 0101 0001 51 Q 0111 0001 113 q
0011 0010 50 2 0101 0010 52 R 0111 0010 114 r
0011 0011 51 3 0101 0011 53 S 0111 0011 115 s
0011 0100 52 4 0101 0100 54 T 0111 0100 116 t
0011 0101 53 5 0101 0101 55 U 0111 0101 117 u
0011 0110 54 6 0101 0110 56 V 0111 0110 118 v
0011 0111 55 7 0101 0111 57 W 0111 0111 119 w
0011 1000 56 8 0101 1000 58 X 0111 1000 120 x
0011 1001 57 9 0101 1001 59 Y 0111 1001 121 y
0011 1010 58 : 0101 1010 5A Z 0111 1010 122 z
43
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
0011 1011 59 ; 0101 1011 5B [ 0111 1011 123 {
0011 1100 60 < 0101 1100 5C  0111 1100 124 |
0011 1101 61 = 0101 1101 5D ] 0111 1101 125 }
0011 1110 62 > 0101 1110 5E ^ 0111 1110 126 ~
0011 1111 63 ? 0101 1111 5F _
Quadro 2.4 – Tabela ASC II – Caracteres imprimíveis.
Fonte: (MONTEIRO, 2007).
Esse padrão foi desenvolvido para os sistemas de telex originalmen-
te, o que se reflete na definição de 33 caracteres não imprimíveis que hoje
estão na maioria obsoletos e a reserva de um dígito para controle de erro
(MURDOCCA & HEURING, 2000).
O quadro 4 apresenta os caracteres imprimíveis do ASC II e a sua
correspondência binária. Assim, usando esse padrão, um sistema compu-
tacional lê “01000000” como “@”, “01111010” como “z”, etc. desde que
tenha sido definido que o dado é um caracter não um número.
Os limites do ASC, especialmente para lidar com caracteres de al-
fabetos além do latino e caracteres especiais, fez com que os construtores
de hardware e desenvolvedores de software ampliassem os caracteres de-
finidos. Nesse contexto, destaca-se o padrão Unicode ((NULL & LOBUR,
2011).
2.4  Tipos de dados e uso de variáveis em algoritmos
O principal objetivo dos algorit-
mos computacionais é a manipulação
de informações, as quais podem
ser especificadas pelo usuário, ou
geradas ao longo da execução do
algoritmo. Para manipulação de
informações nos algoritmos é ne-
cessário a utilização de um recur-
so denominado variáveis.
De acordo com o tipo de
informação que será armazenado, é
necessário especificar o tipo que será a
variável. Este conceito é conhecido como tipo
Uma variável é um elemento sintático
do algoritmo que tem como funcionalidade
armazenar um determinado valor. O valor
associado a variável depende do tipo de
informação que se deseja manipular, assim,
diversos tipos de valores podem ser atribuí-
dos as variáveis.
44
Organização de Computadores
Proibidaareprodução–©UniSEB
de dados. Um tipo de dados determina quais tipos de operações e quais
tipos de valores podem ser manipulados pelas variáveis.
O tipo de dados mais comum existente é utilizado para a manipu-
lação de valores numéricos do tipo inteiro. As variáveis do tipo de dados
inteiro armazenam valores do tipo: 25, 32, 0, 45, -92, -853, entre outros.
Para demonstrar a utilização deste tipo de dados, bem como, a declaração
de variáveis nos algoritmos, vamos codificar nosso segundo exemplo. A
figura 5 apresenta o código do algoritmo capaz de realizar a soma de duas
variáveis do tipo inteiro. Este algoritmo foi nomeado como unid3_exem-
plo02.alg.
Figura 4 – Codificação do algoritmo capaz de realizar a soma de dois números inteiros.
No algoritmo da figura 5 é importante notar o bloco de declaração
de variáveis, o qual é codificado nas linhas 6, 7, 8 e 9. A linha 6 contém a
palavra reservada var, que indica o início do bloco de declaração de vari-
áveis. Na linha 7 é apresentada a declaração de uma variável denominada
a do tipo inteiro. As linhas 8 e 9 declaram mais duas variáveis do tipo
inteiro, definidas como b e soma. Você pode perceber com as declarações
das variáveis um padrão sintático, o qual é representado por:
nome_da_variável: tipo_da_variável
Os algoritmos computacionais, bem como as linguagens de progra-
mação possuem algumas regras para a nomeação das variáveis. Uma va-
riável deve obrigatoriamente iniciar como um caractere literal, assim, não
é possível declarar variável que comecem com um número, por exemplo,
45
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
1soma. Outro detalhe importante é que nomes de variáveis não podem
conter espaços, por exemplo, soma total, então, caso seja necessário, você
poderá utilizar o caractere sublinhado (underline), da seguinte maneira:
soma_total. Outra regra importante sobre a identificação de variáveis é
não utilizar caracteres especiais, tais como @, #, $, %, bem como, não
utilizar acentos de qualquer tipo.
Observando ainda o algoritmo apresentado na figura 5, é importante
notar as linhas 12 e 13 que armazenam valores nas variáveis a e b. O ter-
mo computacional que indica o armazenamento de um valor em uma vari-
ável é atribuição. Assim, a linha número 12 atribui o valor 10 à variável a,
e da mesma maneira, a linha 13 atribui o valor 20 à variável denominada
b. Na linha 16 é apresentada uma atribuição como sendo o resultado de
uma expressão aritmética de adição, por conseguinte, a variável soma re-
cebe o resultado da operação da variável a somado com a variável b.
Finalmente, na linha 19 é apresentado na tela o resultado da soma
dos valores. É importante destacar que a instrução escreva é utilizada para
exibir uma informação na tela, em que todas as informações textuais de-
vem ser especificadas entre “aspas duplas”. Para a escrita de variáveis na
tela, não é necessário utilizar as aspas duplas. O resultado da execução do
algoritmo é apresentado na figura 6.
Figura 5 – Resultado da execução do algoritmo.
Outro tipo de dado utilizado para a manipulação de informações
numéricas é denominado real. Com o tipo de dados real é possível reali-
zar operações com números que contenham casas decimais, por exemplo,
2.34, 4.48, -5.82, 0.004, entre outros. Um detalhe importante que merece
destaque é com relação ao símbolo utilizado para separação das casas de-
cimais. Geralmente, pelo fato das linguagens de programação utilizarem
instruções na linguagem inglesa, a separação das casas decimais é reali-
zada com o símbolo de . (ponto), no entanto, é possível criar mecanismos
capazes de efetuar a substituição do ponto pelo símbolo de , (vírgula)
utilizado para separar a parte fracionária no Brasil. Para demonstrar a uti-
lização de números do tipo real, considere o problema de calcular a média
46
Organização de Computadores
Proibidaareprodução–©UniSEB
de um conjunto numérico. Podemos utilizar como exemplo, a necessidade
de calcular a média de notas de um conjunto de cinco alunos, por isso, a
figura 7 apresenta o resultado da codificação deste exemplo. Antes da exe-
cução, o arquivo foi salvo com o nome de unid3_exemplo03.alg.
Neste algoritmo é importante notar a declaração das variáveis nota1,
nota2, nota3, nota4 e nota5. Na linha 8, as variáveis que receberão os va-
lores referentes as notas são declaradas em uma mesma linha. Este tipo de
declaração é possível, pois todas as variáveis são do mesmo tipo. Dessa
forma, é possível simplificar a seção de declaração das variáveis. No en-
tanto, a escolha de como as variáveis serão declaradas, é exclusivamente
do programador, e este fato não interfere no desempenho da execução do
algoritmo ou do programa. Caso preferir, o programador pode declarar as
variáveis individualmente, uma em cada linha, como apresentado na lista-
gem código 2.
Código 2
1	var
2	 nota1: real
3	 nota2: real
4	 nota3: real
5	 nota4: real
6	 nota5: real
7	 media: real
Figura 6 – Algoritmo que demonstra a utilização de variáveis do tipo real.
47
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
O resultado da execução do algoritmo é apresentado na figura 8. Na
execução é importante notar que na separação das casas decimais o Visu-
Alg utiliza o símbolo de ponto.
Figura 7 – Resultado da execução do algoritmo.
Para manipulação de informações literais, as linguagens de progra-
mação e os algoritmos, possuem um tipo específico denominado carac-
tere. Com este tipo de dados é possível armazenar e manipular qualquer
tipo de valor, tais como uma letra do alfabeto, um símbolo, um número,
entre outros. Em linguagens de programação de alto nível, tais como Java
ou C#, a manipulação de caracteres pode ser realizada individualmente,
com um tipo exclusivo chamado char, ou ainda, por meio de um conjunto
de caracteres, com um tipo de dados específico conhecido como string.
A figura 9 apresenta um algoritmo que realiza a manipulação de infor-
mações com o tipo de dados caractere. Este exemplo foi nomeado como
unid3_exemplo04.alg.
Figura 8 – Algoritmo que demonstra a manipulação de informações com o tipo de dados
caractere.
48
Organização de Computadores
Proibidaareprodução–©UniSEB
Neste exemplo é importante notar que os valores do tipo caracte-
re são representados entre aspas duplas, como pode ser visualizado nas
linhas 13 e 14. Porém, algumas linguagens de programação realizam a
separação entre a representação de um único caractere, e a definição de
um conjunto de caracteres. Geralmente, a especificação de um único
caractere é definida utilizando aspas simples, por exemplo, ‘M’, e a
indicação de um conjunto de caracteres é realizada com aspas duplas,
por exemplo, “João da Silva”. Na linguagem VisuAlg, tanto a repre-
sentação de um único caractere, quanto de vários, é realizada com as-
pas duplas. O resultado da execução do algoritmo pode ser visualizado
na figura 10.
Figura 9 – Resultado da execução do algoritmo.
Os algoritmos ainda possuem um tipo de dados específico utilizado
para manipulação de valores lógicos, os quais são conhecidos em progra-
mação como booleanos. Um tipo de dados booleano permite o armazena-
mento de valores lógicos, por exemplo, verdadeiro (true) ou falso (false).
Em programação, um valor lógico pode ser utilizado para expressar a
presença ou ausência de uma determinada informação, tal como, um valor
do tipo sim ou não. Na linguagem algorítmica, o tipo de dados booleano é
definido como lógico.
Para demonstrar a utilização do tipo de dados lógico, vamos codifi-
car mais um algoritmo. Este exemplo, nomeado como unid3_exemplo05.
alg, apresenta um algoritmo que manipula informações de todos os tipos
de dados existentes, sendo eles inteiro, real, caractere e lógico. No exem-
plo, é importante destacar a atribuição de um valor lógico, que ocorre na
linha 18.
Na linguagem algorítmica utilizada pelo ambiente VisuAlg, uma va-
riável do tipo lógico pode assumir dois valores, verdadeiro ou falso, e nes-
te caso a atribuição de valores lógicos também utiliza os possíveis valores
(verdadeiro ou falso). A figura 11 apresenta o resultado da codificação do
algoritmo.
49
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Figura 10 – Algoritmo que demonstra a utilização dos principais tipos de dados e apresenta
a manipulação de valores do tipo lógico.
O resultado da execução do algoritmo, que pode ser visualizada uti-
lizando o menu Algoritmo>Executar, é apresentada na figura 12.
Figura 11 – Resultado da execução do algoritmo.
Com isso, você conheceu os principais tipos de dados que podem
ser utilizados para manipulação de informações nos algoritmos e progra-
mas. O próximo passo é aprender como ler informações fornecidas pelo
usuário, e como apresentar resultados na tela.
Atividades
01.	 Pesquise sobre a origem da linguagem binária, antes de seu uso pela
computação.
02.	 Por que o sistema binário é mais adequado para o uso em dispositvos
eletrônicos?
03.	 Decomponha 19583 em potências de base 10.
50
Organização de Computadores
Proibidaareprodução–©UniSEB
04.	 Converta 19583 na base binária.
05.	 Decomponha o resultado do exercício 4 em potências de base 2.
06.	 Pesquise sobre o padrão UNICODE e identifique os grupos de carac-
teres que são definidos.
Reflexão
Neste capítulo, entendemos melhor como o computador e dispositi-
vos eletrônicos podem representar números e letras. Também vimos que
o sistema binário permite manipulações aritméticas, o que seria suficiente
para caracterizar uma calculadora. Contudo, como os sistemas computa-
cionais conseguem fazer tarefas variadas como reconhecer voz e ajudar
em diagnósticos médicos? Como essas tarefas se traduzem em processa-
mento de dados?
Leitura recomendada
LEVY, S. Os Heróis da Revolução. São Paulo: Evora, 2012.
Comentário: a descrição de como computadores funcionam pode ser um as-
sunto bastante árido se esquecermos as pessoas e as motivações que residem por
cada característica da computação.Ao traçar o panorama dos atores que ajudaram a
desenvolver os primeiros sistemas computacionais, passando pelos PCs, chegando
aos programadores de aplicativos móveis, Levy nos mostra a feição humana, entu-
siasmada e obsessiva dos responsáveis pela revolução digital.
Referências bibliográficas
BBC. Y2K around the word. BBC, website. <http://news.bbc.co.uk/hi/
english/static/millennium_bug/countries/default.stm>. Acesso em: 19
jun. 2014.
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São
Paulo: Pearson Prentice Hall. 2004.
LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren-
ciais. São Paulo: Prentice Hall. 2007.
51
Representação de Dados – Capítulo 2
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
LEUNG, L. How much data x store? Techexpectations, 13 mar.
2014. Disponível em: <http://techexpectations.org/2014/05/17/how-
much-data-does-x-store/>. Acesso em: 19 jun. 2014.
MCKENNA, B. What does a petabyte look like? Computer Weelky,
março 2013. Disponível em: <http://www.computerweekly.com/featu-
re/What-does-a-petabyte-look-like>. Acesso em: 19 jun. 2014.
MONTEIRO, M. A. Introdução à Organização de Computadores.
5a ed. São Paulo: LTC, 2007.
MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de
Computadores. Rio de Janeiro: Campus, 2000.
NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi-
zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010.
REBER, P. What is the memory capacity of the human brain?
Scientific American, maio/junho, 2010. Disponível em: <http://www.
scientificamerican.com/article/what-is-the-memory-capacity/>. Acesso
em: 19 jun. 2014.
SCHONFELD, E. Google processing 20,000 terabytes a day, and
growing. Techcrunch, website, 9 jan. 2008. Disponível em: <http://
techcrunch.com/2008/01/09/Google-processing-20000-terabytes-a-
day-and-growing/>. Acesso em. 19 jun 2014.
SMAAL, 2011. 2038: o bug do milênio atacará novamente. Tec-
mundo, website, 25 fev 2011. Disponível em: <http://www.tecmundo.
com.br/historia/8795-2038-o-bug-do-milenio-atacara-novamente.>.
Acesso em: 19 jun. 2014.
STALLINGS, W. Arquitetura e Organização de Computadores.
São Paulo: Prentice Hall, 2002.
No próximo capítulo
No próximo capítulo, conheceremos a álgebra booleana, que permi-
te que os computadores possam manipular os dados logicamente.
52
Organização de Computadores
Proibidaareprodução–©UniSEB
Minhas anotações:
Capítulo3
Álgebra Booleana e
Operações Lógicas em
Algoritimos
No capítulo anterior, vimos a forma como dados
podem ser representados no computador em base nú-
mérica, ou seja, passível de operações como aritméticas
de adição. Mas quando usamos um caixa eletrônico, por
exemplo, há diversas outras operações envolvidas. A simples
comparação da senha que digitamos com aquela registrada
pede uma operação lógica que deve responder “a senha confere”
ou “a senha não confere”. Em um videogame, cada uma das ações
do jogador tem determinadas consequências tanto para o encadea-
mento posterior de eventos, quanto para o próprio ambiente do jogo.
Esses são apenas exemplos de como o processamento de dados depen-
de de operações lógicas (LAUDON & LAUDON, 2007; CAPRON &
JOHNSON, 2004). A implementação dessas operações em computador
estão, por sua vez, baseadas na álgebra booleana, tema principal deste
capítulo.
Objetivos da sua aprendizagem
•	Compreender os operadores principais da álgebra booleana.
•	Construir tabelas verdade para cada operador.
•	Identificar símbolos de portas lógicas.
•	Entender como os operadores aritméticos e lógicos são implementa-
dos em algoritmos.
Você se lembra?
No primeiro capítulo, foi dado o exemplo da receita de bolo
como um algoritmo não computacional. Como outros algorit-
mos, a receita de bolo é um conjunto de instruções formali-
zado para resolver um problema e, nesse caso específico,
as instruções seguem umas às outras diretamente. Bus-
que pensar em algoritmos condicionais, ou seja, cuja
realização de instruções depende de condições e
também de resultados de instruções anteriores.
54
Organização de Computadores
Proibidaareprodução–©UniSEB
3.1  Álgebra booleana
Segundo Linda Null e Julia Lobur, a álgebra booleana é “uma álge-
bra para a manipulação de objetos que podem assumir somente dois valo-
res, normalmente verdadeiro ou falso” (NULL & LOBUR, 2011, p. 141).
É fácil entender que essa álgebra seja adequada ao computadores, os quais
funcionam usando a linguagem binária. A seguir, vamos falar da origem
da álgebra booleana para, a seguir, passar para seus operadores.
3.1.1  Origens
A linguagem binária se tornou um componente fundamental da
computação, mesmo tendo sido desenvolvida muito antes dos primeiros
computadores. O mesmo aconteceu com a álgebra booleana: nascida no
séc. XIX fruto da formalização do pensamento lógico realizada por Geor-
ge Boole, um grande matemático inglês (figura 1). A motivação de Boole
era encontrar e formalizar leis universais do raciocínio, aproximando este
da álgebra matemática. Esse esforço foi estruturado em sua obra “As Leis
do Pensamento”, de 1854 (NULL & LOBOUR, 2011).
Figura 1 – George Boole (1814 – 1864)
Fonte: http://en.wikipedia.org/wiki/George_Boole#mediaviewer/
File:George_Boole_color.jpg. Acesso em: 24 jul. de 2014.
Uma ilustração simples da álgebra booleana pode ser dada avalian-
do as três afirmações abaixo:
Afirmação 1: Ana foi ao cinema.
Afirmação 2: Paulo foi ao show.
Afirmação 3: Ana foi ao cinema E Paulo foi ao show.
55
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Para a afirmação 3 ser verdadeira, tanto a afirmação 1 quanto a 2
devem ser também. Se Ana não foi ao cinema, ou se Paulo não foi ao
show, já fica comprometida a afirmação feita sobre os dois. Perceba que a
afirmação 3 equivale considerar a afirmação 1 e a afirmação 2 simultanea-
mente. Podemos organizar o que foi dito até aqui por uma tabela-verdade,
a qual relaciona os valores de proposições e operadores lógicos. Com
esse fim, vamos usar a notação:
Afirmação 1: p
Afirmação 2: q
Afirmação 3: Afirmação 1 E Afirmação 2: p.q
V: proposição verdadeira
F: proposição falsa.
Desse modo, a tabela-verdade fica:
p q p • q
V V V
V F F
F V F
F F F
Podemos ainda explicar mais um operador lógico a partir da seguin-
te assertiva:
Afirmação 4: Ana foi ao cinema OU Paulo foi ao show.
: Afirmação 1 OU Afirmação 2: p + q
A afirmação 4 será verdadeira caso ambas as afirmativas sejam ver-
dadeiras, mas também caso somente uma delas seja. Por exemplo, mesmo
Paulo não tendo ido ao show, basta que Ana tenha ida ao cinema para ga-
rantir essa veracidade. A afirmativa 4 só será falsa se ambas as afirmativas
também o forem. Consequentemente, a tabela-verdade neste caso terá a
seguinte configuração:
p q p+q
V V V
V F V
F V V
F F F
56
Organização de Computadores
Proibidaareprodução–©UniSEB
Figura 2 – Labirinto Teseu de Claude Shannon (Museu do MIT)
Fonte: Labirinto Teseus de Claude Shannon (Museu do MIT) http://
commons.wikimedia.org/wiki/Category:Claude_Shannon#mediaviewer/
File:Theseus_Maze_by_Claude_Shannon,_1952_-_MIT_
Museum_-_DSC03702.JPG. Acesso em: 24 jul. de 2014.
A utilidade da álgebra booleana e suas tabelas verdade para circui-
tos elétricos foi estabelecida pelo americano Charles Shannon em sua
dissertação de mestrado de 1937, concluída no MIT. Em lugar dos valores
“falso” ou “verdadeiro”, os circuitos poderiam operar por essa álgebra
usando os “zeros” e “uns”. Essa adaptação lançou as bases da computação
que conhecemos hoje. Shannon ainda ajudou a criar os fundamentos da
teoria da informação e da inteligência artificial. Um dos seus experimen-
tos famosos foi um “rato eletromecânico” programado a encontrar a saída
de um labirinto (figura 2) e capaz de acumular conhecimento a cada entra-
da no mesmo labirinto. (GLEICK, 2011).
Na sumarização seguinte da álgebra booleana, vamos usar os dígitos
binários. Assim, “0” será equivalente a “falso” e, consequentemente, 1 a
“verdadeiro”. Além de formalizar nesses termos os operadores E e OU já
vistos, vamos ainda definir a Negação, XOR, NOT e NAND, baseando-se
em Murdocca e Heuring (2000), Monteiro (2007) e Stallings (2002).
3.1.2  Operador E (Conjunção ou AND)
Uma expressão com operador E resulta 1 somente se as suas entra-
das forem todas iguais a 1. O funcionamento é análogo ao exemplo da
seção anterior com a afirmativa 3.
Considerando duas entradas, p e q, a notação de “p E q” já foi vista:
p . q
57
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Existem outras
notações para operado-
res vistos aqui e que podem ser
comumente encontradas na disciplina de
Raciocínio Lógico:
Operador E: p • q.
Operador OU: p + q.
Operador Negação:
_
p
Chama-se essa expressão também de produto booleano, ou multi-
plicação lógica. Abaixo está a tabela-verdade para o operador E com duas
entradas:
p q p • q
1 1 1
1 0 0
0 1 0
0 0 0
3.1.3  Operador OU (Disjunção ou OR)
Uma expressão com operador OU resulta em 0 somente se as suas
entradas forem todas iguais a 0. Aqui temos um comportamento análogo
ao exemplo anterior com a afirmativa 4.
Considerando duas entradas, p e q, já conhecemos a notação
de “p OU q”.
p + q
Essa expressão também é no-
meada de soma booleana, ou adição
lógica. A tabela-verdade para o
operador OU com duas entradas
está a seguir:
p q p+q
1 1 1
1 0 1
0 1 1
0 0 0
3.1.4  Operador Negação (Inversão ou NOT)
Esse operador simplesmente inverte a entrada. Ou seja, se a entrada
é 0 o operador o transforma em 1, e vice-versa. Com uma entrada p, a no-
tação de “p negado” é: ~p
A tabela-verdade para esse operador é:
p ~p
1 0
0 1
58
Organização de Computadores
Proibidaareprodução–©UniSEB
3.1.5  Operadores XOR, NOR, NAND
Os operadores AND, OR e NOT podem ser combinados e aplicados
sucessivamente a entradas. Três dessas combinações encontram uso cor-
rente em sistemas computacionais:
Disjunção exclusiva (XOR)
O resultado dessa operação é 1 se, e somente se, apenas uma das
entradas for 1. A tabela-verdade do operador XOR é:
p q (p • ~q) + (~p • q)
1 1 0
1 0 1
0 1 1
0 0 0
•	NEM (NOR)
O resultado dessa operação é 1 se, e somente se, todas as entradas
forem 0. A tabela-verdade do operador NOR é:
p q ~ (p + q)
1 1 0
1 0 0
0 1 0
0 0 1
•	NOU (“Não... e...”, NAND)
O resultado dessa operação é 1 se pelo menos
uma entrada for 0. A tabela verdade do operador
NOU é:
p q ~ (p + q)
1 1 0
1 0 1
0 1 1
0 0 1
Conexão:
Para aprofundar seus
conhecimentos sobre álgebra
booleana, leia o texto dispo-
nível em: http://www.inf.ufsc.
br/~guntzel/isd/isd2.pdf
Acesso em: 24 jul. de 2014.
59
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
3.2  Portas lógicas
A adaptação de Claude Shannon da álgebra booleana é também de-
nominada álgebra de chaveamento devido à orientação inicial para circui-
tos que podiam estar ligados ou desligados por chave. Essa álgebra é usa-
da na construção de circuitos físicos, que podem
modificar os sinais digitais conforme estabe-
lecido por seu desenho. Devido a esse uso,
há símbolos gráficos para cada operador,
chamadas portas lógicas, o que facilita o
trabalho em circuitos complexos. Na tabe-
la a seguir, as entradas são representadas
pelos traços à esquerda, podendo ser, cada
uma, zero ou um. A saída é representada
pelo traço à direita, também obedecendo à base
binária.
AND
Operador Símbolo
OR
NOT
XOR
NOR
NAND
Fonte: http://commons.wikimedia.org/wiki/File:NAND_
ANSI.svg. Acesso em: 24 jul. de 2014.
Para fins didáticos, tratamos de operações, portas lógicas e símbolos
com apenas duas entradas. No caso abaixo, temos um operador AND com
três entradas de valor 1. Pela própria definição do operador, a saída tam-
bém será 1:
1
1
1
1
Conexão:
Conheça um aplicativo
gratuito para dispositivos móveis
que desenha portas lógicas:
https://play.google.com/store/apps/
details?id=com.Logic.gates_Xor.en
Acesso em: 24 jul. de 2014.
60
Organização de Computadores
Proibidaareprodução–©UniSEB
Em 1997, o supercomputador
Deep Blue da IBM venceu o cam-
peão mundial de xadrez Garry Kas-
parov em um match de seis partidas.
O evento chamou a atenção do mun-
do para os avanços em inteligência
artificial, estimulando a reflexão
sobre os limites e as potencialidades
dos computadores. Kasparov havia
derrotado uma versão desse compu-
tador em 1996 e acusou a IBM de
fraudar a disputa em 1997. A fraude
teria sido o uso de grandes mestres
de xadrez para apoiar o processo de
decisão do computador. De qualquer
modo, a superioridade dos computa-
dores nesse jogo foi reafirmada por
programas de software mais inteli-
gentes e que, assim, não requerem
a capacidade de processamento do
Deep Blue. Se este calculava até
200 milhões de posições de jogo por
segundo em um estrutura complexa
e dedicada, o programa Deep Fritz,
rodando em Windows com processa-
dores Pentium, conseguiu derrotar o
campeão mundial Vladimir Kramnik
em 2006 (NEWBORN, 2011).
3.3  Operações aritméticas e lógicas em algoritmos
Até aqui, entendemos as operações booleanas principais. Contudo,
como elas são usadas em programação? A seguir, vamos mostrar opera-
ções aritméticas e lógicas implementadas em algoritmos simples, usando
o visualg. Não devemos perder de vista, contudo, que são essas operações
que fundamentam programas complexos e processamento de dados em
grande escala. O poder analítico desse processamento nos é lembrado
com frequência, como acontece com as vitórias de sistemas computacio-
nais sobre grandes mestres do xadrez (ver box explicativo).
Figura 3 – Supercomputador
Deep Blue (Museu da História
do Computador, Califórnia.
Fonte: http://commons.wikimedia.
org/wiki/File:Deep_Blue.
jpg. Acesso 24 jul. de 2014
Figura 4 – Garry Kasparov.
Fonte: http://commons.wikimedia.
org/wiki/File:Kasparov-27.jpg.
Acesso em 24 jul. de 2014.
61
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
3.3.1  Comandos de entrada e saída
Os algoritmos computacionais e os programas têm como principal
funcionalidade o processamento de informações. Essas informações ge-
ralmente são fornecidas pelo usuário, o qual utiliza o teclado para entrada
de dados e, em um segundo momento, os resultados são apresentados em
dispositivos de saída como monitor ou impressora. Durante o processo
de construção de algoritmos, o programador pode contar com instruções
específicas para carregar informações fornecidas pelo usuário e para apre-
sentar resultados na tela, essas instruções são chamadas de comandos de
entrada e saída.
Para leitura de informações, o comando utilizado para entrada de
dados é conhecido como leia. Assim, com este comando é possível trans-
ferir uma informação digitada pelo usuário com o teclado para uma deter-
minada variável no escopo do algoritmo. Por outro lado, para a apresenta-
ção de uma informação na tela é utilizada um comando de saída específico
denominado escreva.
Para demonstrar a utilização dos comandos de entrada e saída va-
mos construir uma calculadora simples de quatro operações. Nesta calcu-
ladora, o usuário fornecerá dois valores números (valor1 e valor2) e serão
realizados os cálculos de soma, subtração, multiplicação e divisão. Para
leitura dos valores será utilizado o comando leia e para a apresentação dos
resultados será necessário o comando escreva. Na linguagem algorítmica
VisuAlg, existe uma variação do comando escreva denominada escreval.
Este comando, além de exibir as informações desejadas na tela, também
realizar a quebra de linha, ou seja, o comando é capaz de exibir uma de-
terminada informação na tela e mudar de linha. Com isso, os dados não
serão apresentados em uma única linha, o que facilita bastante a exibição
de grandes quantidades de informações.
O algoritmo que codifica a calculadora simples de quatro operações
foi nomeado como unid3_exemplo06 e a figura 5 apresenta a codificação
completa do exemplo.
62
Organização de Computadores
Proibidaareprodução–©UniSEB
Figura 5 – Algoritmo que codifica um cálculo simples com quatro operações.
O resultado da execução do algoritmo é apresentado na figura 6.
Nessa execução, os valores fornecidos como entrada foram 10 e 20.
Figura 6 – Resultado da execução do algoritmo.
O próximo exemplo de codificação utilizando comandos de entrada
e saída tem como objetivo construir um algoritmo capaz de calcular o
consumo médio de combustível de um veículo. Para isso, o usuário deverá
informar como entrada os quilômetros percorridos pelo veículo e o total
de litros abastecidos. Com isso, o algoritmo é capaz de determinar o con-
sumo médio e o resultado é exibido na tela. Este algoritmo foi nomeado
como unid3_exemplo07, e a codificação é demonstrada na figura 7.
63
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Figura 7 – Algoritmo para determinar o consumo médio de combustível de um veículo.
O resultado da execução do algoritmo pode ser visualizado na Fi-
gura 8. Os parâmetros informados na entrada foram 460 para quilômetros
rodados e 50 para litros abastecidos.
Figura 8 – Resultado da execução do algoritmo.
3.3.2  Operações e expressões
Os computadores podem ser encarados como grandes máquinas
capazes de realizar uma quantidade imensa de operações por segundo. Na
evolução histórica da computação, os primeiros algoritmos foram criados
com o intuito de solucionar complexas expressões em poucos segundos.
64
Organização de Computadores
Proibidaareprodução–©UniSEB
As expressões são formadas essencialmente por operadores, operandos
e parênteses. De acordo com o tipo de operador utilizado, podemos criar
expressões denominadas:
3.3.3  Expressões aritméticas
As expressões aritméticas utilizam os operadores aritméticos da
matemática tradicional para criar expressões capazes de resolver os mais
variados tipos de funções. Neste grupo, os principais operadores utiliza-
dos são soma (+), subtração (–), multiplicação (*), divisão (/) e resto da
divisão (%).
A figura 9 apresenta a codificação de um algoritmo que utiliza ex-
pressões aritméticas para resolver um polinômio. Este algoritmo foi no-
meado como unid3_exemplo08.alg.
Figura 9 – Algoritmo computacional que utiliza expressões aritméticas.
A figura 18 apresenta o resultado da execução do algoritmo.
Figura 10 – Resultado da execução do algoritmo.
65
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Em uma expressão relacional o resulta-
do produzido pela avaliação da expressão é
sempre um valor lógico. Assim, uma expres-
são relacional resulta em um valor do tipo
verdadeiro ou falso.
3.3.4  Expressões relacionais
Quando construímos algoritmos é muito
comum a necessidade de comparar, ou
estabelecer relações entre determina-
dos operandos. Para isso, podemos
utilizar um conjunto específico de
operadores capazes de produzir ex-
pressões relacionais. Os operadores
relacionais conhecidos são:
•	maior (>)
•	menor (<)
•	menor ou igual (<=)
•	maior ou igual (>=)
•	igual (=)
•	diferente (<>).
A figura 11 demonstra a construção de um algoritmo computacional
que utiliza expressões relacionais. Note no algoritmo que todos os opera-
dores relacionais são expressões por meio de símbolos. Este algoritmo foi
nomeado como unid3_exemplo09.alg.
Figura 11 – Algoritmo computacional que demonstra a utilização de expressões e
operadores relacionais.
66
Organização de Computadores
Proibidaareprodução–©UniSEB
A figura 12 apresenta o resultado da execução do algoritmo.
Figura 12 – Resultado da execução do algoritmo.
3.3.5  Expressões lógicas
Na construção de algoritmos com-
putacionais também é possível criar
expressões a partir de operadores lógi-
cos. Estas expressões são conhecidas
como expressões lógicas. Para cria-
ção de uma expressão lógica é neces-
sário utilizar operadores booleanos,
em que os principais são:
•	negação (NOT)
•	conjunção1 (E)
•	disjunção (OU)
•	disjunção-exclusiva (XOR)
Na figura 13 é apresentada a codificação de um algoritmo capaz de cal-
cular a tabela-verdade a partir de expressões lógicas. Neste exemplo é possível
determinar um dos principais conceitos da lógica matemática conhecido como
tabela-verdade. Este algoritmo foi nomeado como unid3_exemplo10.alg.
Para um estudo aprofundado a respeito de tabelas verdade, você poderá con-
sultar as seguintes referências:
http://pt.wikipedia.org/wiki/Tabela_verdade
http://www.calculadoraonline.com.br/tabela-verdade
1	 Oportunidade; ocasião; conjuntura.
Conexão:
Os operadores lógicos são
muito importantes para a construção
de programas, principalmente para a
elaboração de expressões relacionais
compostas. Para complementar seu estudo
você poderá utilizar a seguinte referência:
http://pt.wikipedia.org/wiki/
Operadores_l%C3%B3gicos
Acesso em 24 jul. de 2014.
67
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3
EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB
Figura 13 – Algoritmo computacional que demonstra a utilização de expressões e
operadores lógicos.
A figura 14 apresenta o resultado da execução do algoritmo.
Figura 14 – Resultado da execução do algoritmo.
Com isso, concluímos o estudo a respeito dos operadores e das ex-
pressões aritméticas, relacionais e lógicas. Aproveite este momento para
construir algoritmos a partir das atividades propostas.
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES
LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES

Mais conteúdo relacionado

Mais procurados

Formatei o computador e agora?
Formatei o computador e agora?Formatei o computador e agora?
Formatei o computador e agora?Suzana Viana Mota
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dosteacherpereira
 
Arquitetura interna do computador
Arquitetura interna do computadorArquitetura interna do computador
Arquitetura interna do computadorAndleloli
 
Informática para Concursos Públicos (Slide 1)
Informática para Concursos Públicos (Slide 1)Informática para Concursos Públicos (Slide 1)
Informática para Concursos Públicos (Slide 1)Ítalo Holanda
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectosDaniel Chavier
 
Manutenção de Computadores.pdf
Manutenção de Computadores.pdfManutenção de Computadores.pdf
Manutenção de Computadores.pdfOs Fantasmas !
 
Tecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaTecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaDiolene Sampaio
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computadorFilipe Duarte
 
Aula 3 sistema computacional (hardware e software)
Aula 3   sistema computacional (hardware e software)Aula 3   sistema computacional (hardware e software)
Aula 3 sistema computacional (hardware e software)Vitor Hugo Melo Araújo
 
Topologia em redes
Topologia em redesTopologia em redes
Topologia em redesYohana Alves
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1Fernando Ottoni
 
Plano de estudo manutenção de redes de computadores
Plano de estudo   manutenção de redes de computadoresPlano de estudo   manutenção de redes de computadores
Plano de estudo manutenção de redes de computadoresCarlos Melo
 

Mais procurados (20)

Formatei o computador e agora?
Formatei o computador e agora?Formatei o computador e agora?
Formatei o computador e agora?
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dos
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Arquitetura interna do computador
Arquitetura interna do computadorArquitetura interna do computador
Arquitetura interna do computador
 
Informática para Concursos Públicos (Slide 1)
Informática para Concursos Públicos (Slide 1)Informática para Concursos Públicos (Slide 1)
Informática para Concursos Públicos (Slide 1)
 
Arduino introdução - 10 projectos
Arduino   introdução - 10 projectosArduino   introdução - 10 projectos
Arduino introdução - 10 projectos
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Modulo 5 Redes
Modulo 5   RedesModulo 5   Redes
Modulo 5 Redes
 
Perifericos de entrada e saida
Perifericos de entrada e saidaPerifericos de entrada e saida
Perifericos de entrada e saida
 
Manutenção de Computadores.pdf
Manutenção de Computadores.pdfManutenção de Computadores.pdf
Manutenção de Computadores.pdf
 
Tecnicas de Detenção de Avaria
Tecnicas de Detenção de AvariaTecnicas de Detenção de Avaria
Tecnicas de Detenção de Avaria
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Aula 3 sistema computacional (hardware e software)
Aula 3   sistema computacional (hardware e software)Aula 3   sistema computacional (hardware e software)
Aula 3 sistema computacional (hardware e software)
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
 
Topologia em redes
Topologia em redesTopologia em redes
Topologia em redes
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1Gestão de sistemas operacionais - aula 1
Gestão de sistemas operacionais - aula 1
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Plano de estudo manutenção de redes de computadores
Plano de estudo   manutenção de redes de computadoresPlano de estudo   manutenção de redes de computadores
Plano de estudo manutenção de redes de computadores
 

Destaque

LIVRO PROPRIETÁRIO - ANÁLISE TEXTUAL
LIVRO PROPRIETÁRIO - ANÁLISE TEXTUALLIVRO PROPRIETÁRIO - ANÁLISE TEXTUAL
LIVRO PROPRIETÁRIO - ANÁLISE TEXTUALOs Fantasmas !
 
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃOLIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃOOs Fantasmas !
 
Fundamentos da Computação pra Sistemas de Informação
Fundamentos da Computação pra Sistemas de InformaçãoFundamentos da Computação pra Sistemas de Informação
Fundamentos da Computação pra Sistemas de InformaçãoPablo Felipe
 
Livro proprietario calculo diferencia e integral iii
Livro proprietario   calculo diferencia e integral iiiLivro proprietario   calculo diferencia e integral iii
Livro proprietario calculo diferencia e integral iiiAndré Pinto
 
Arquitetura e organização de computadores
Arquitetura e organização de computadoresArquitetura e organização de computadores
Arquitetura e organização de computadoresHenrique Freitas
 
Livro proprietário aspectos antropológicos e sociológicos da educação
Livro proprietário   aspectos antropológicos e sociológicos da educaçãoLivro proprietário   aspectos antropológicos e sociológicos da educação
Livro proprietário aspectos antropológicos e sociológicos da educaçãoTania Lacerda
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresWellington Oliveira
 
Aula TI 7 TECNOLOGIA E SISTEMAS DE INFORMAÇÃO ERP,CRM, SCM, E-Business
Aula TI 7 TECNOLOGIA E SISTEMAS DE  INFORMAÇÃOERP,CRM, SCM, E-BusinessAula TI 7 TECNOLOGIA E SISTEMAS DE  INFORMAÇÃOERP,CRM, SCM, E-Business
Aula TI 7 TECNOLOGIA E SISTEMAS DE INFORMAÇÃO ERP,CRM, SCM, E-Businesssionara14
 
LIVROPROPRIETÁRIO-ALGORITMOS
LIVROPROPRIETÁRIO-ALGORITMOSLIVROPROPRIETÁRIO-ALGORITMOS
LIVROPROPRIETÁRIO-ALGORITMOSOs Fantasmas !
 
Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresRonildo Oliveira
 
Livro de algoritmo atualizado
Livro de algoritmo atualizado Livro de algoritmo atualizado
Livro de algoritmo atualizado Ivon Nunes Vaz
 
Arquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: IntroduçãoArquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: IntroduçãoWellington Oliveira
 
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃOINTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃOEdson Lima
 

Destaque (14)

LIVRO PROPRIETÁRIO - ANÁLISE TEXTUAL
LIVRO PROPRIETÁRIO - ANÁLISE TEXTUALLIVRO PROPRIETÁRIO - ANÁLISE TEXTUAL
LIVRO PROPRIETÁRIO - ANÁLISE TEXTUAL
 
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃOLIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
 
Fundamentos da Computação pra Sistemas de Informação
Fundamentos da Computação pra Sistemas de InformaçãoFundamentos da Computação pra Sistemas de Informação
Fundamentos da Computação pra Sistemas de Informação
 
Livro proprietario calculo diferencia e integral iii
Livro proprietario   calculo diferencia e integral iiiLivro proprietario   calculo diferencia e integral iii
Livro proprietario calculo diferencia e integral iii
 
Arquitetura e organização de computadores
Arquitetura e organização de computadoresArquitetura e organização de computadores
Arquitetura e organização de computadores
 
Livro proprietário aspectos antropológicos e sociológicos da educação
Livro proprietário   aspectos antropológicos e sociológicos da educaçãoLivro proprietário   aspectos antropológicos e sociológicos da educação
Livro proprietário aspectos antropológicos e sociológicos da educação
 
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de ComputadoresArquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
Arquitetura e Organização de Computadores: Evolução e Desempenho de Computadores
 
Aula TI 7 TECNOLOGIA E SISTEMAS DE INFORMAÇÃO ERP,CRM, SCM, E-Business
Aula TI 7 TECNOLOGIA E SISTEMAS DE  INFORMAÇÃOERP,CRM, SCM, E-BusinessAula TI 7 TECNOLOGIA E SISTEMAS DE  INFORMAÇÃOERP,CRM, SCM, E-Business
Aula TI 7 TECNOLOGIA E SISTEMAS DE INFORMAÇÃO ERP,CRM, SCM, E-Business
 
LIVROPROPRIETÁRIO-ALGORITMOS
LIVROPROPRIETÁRIO-ALGORITMOSLIVROPROPRIETÁRIO-ALGORITMOS
LIVROPROPRIETÁRIO-ALGORITMOS
 
Exercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de ComputadoresExercícios Resolvidos - Arquitetura e Organização de Computadores
Exercícios Resolvidos - Arquitetura e Organização de Computadores
 
Livro de algoritmo atualizado
Livro de algoritmo atualizado Livro de algoritmo atualizado
Livro de algoritmo atualizado
 
Arquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: IntroduçãoArquitetura e Organização de Computadores: Introdução
Arquitetura e Organização de Computadores: Introdução
 
Tecnologia Da Informaçao
Tecnologia Da InformaçaoTecnologia Da Informaçao
Tecnologia Da Informaçao
 
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃOINTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
 

Semelhante a LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES

LIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃO
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃOLIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃO
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃOOs Fantasmas !
 
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORESLIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORESOs Fantasmas !
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfJoelManuel8
 
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOSLIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOSOs Fantasmas !
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idososPaulo Rosa
 
LIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAIS
LIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAISLIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAIS
LIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAISOs Fantasmas !
 
1 manual componentes informáticos
1 manual componentes informáticos1 manual componentes informáticos
1 manual componentes informáticosNorberto Gomes
 
Sistema de Computação
Sistema de ComputaçãoSistema de Computação
Sistema de Computaçãorobinformata
 
Arquitetura ibm pc
Arquitetura ibm pcArquitetura ibm pc
Arquitetura ibm pcEMSNEWS
 
Livro ciência de dados e aprendizado de máquina fernando feltrin
Livro ciência de dados e aprendizado de máquina   fernando feltrinLivro ciência de dados e aprendizado de máquina   fernando feltrin
Livro ciência de dados e aprendizado de máquina fernando feltrinssuser648be2
 
LIVRO PROPRIETARIO - Probabilidade e estatistica.pdf
LIVRO PROPRIETARIO - Probabilidade e estatistica.pdfLIVRO PROPRIETARIO - Probabilidade e estatistica.pdf
LIVRO PROPRIETARIO - Probabilidade e estatistica.pdfElisângela Rodrigues
 
Arquitetura de computadores
Arquitetura de computadoresArquitetura de computadores
Arquitetura de computadoresIsraelNba
 
Arquitetura Interna do Computador
Arquitetura Interna do ComputadorArquitetura Interna do Computador
Arquitetura Interna do ComputadorSara Gonçalves
 
DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216Valter Inacio Jr.
 

Semelhante a LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES (20)

LIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃO
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃOLIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃO
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE SISTEMA DA INFORMAÇÃO
 
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORESLIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
LIVRO PROPRIETÁRIO - FUNDAMENTOS DE REDES DE COMPUTADORES
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
 
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOSLIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
LIVRO PROPRIETÁRIO - MODELAGEM DE DADOS
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idosos
 
LIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAIS
LIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAISLIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAIS
LIVRO PROPRIETÁRIO - SISTEMAS OPERACIONAIS
 
1 manual componentes informáticos
1 manual componentes informáticos1 manual componentes informáticos
1 manual componentes informáticos
 
Sistema de Computação
Sistema de ComputaçãoSistema de Computação
Sistema de Computação
 
Arquitetura ibm pc
Arquitetura ibm pcArquitetura ibm pc
Arquitetura ibm pc
 
Livro ciência de dados e aprendizado de máquina fernando feltrin
Livro ciência de dados e aprendizado de máquina   fernando feltrinLivro ciência de dados e aprendizado de máquina   fernando feltrin
Livro ciência de dados e aprendizado de máquina fernando feltrin
 
Apostila de adm da informacao
Apostila de adm da informacaoApostila de adm da informacao
Apostila de adm da informacao
 
Apostila de adm da informacao
Apostila de adm da informacaoApostila de adm da informacao
Apostila de adm da informacao
 
Apostila sig info
Apostila sig infoApostila sig info
Apostila sig info
 
Arquitetura computadores
Arquitetura computadoresArquitetura computadores
Arquitetura computadores
 
LIVRO PROPRIETARIO - Probabilidade e estatistica.pdf
LIVRO PROPRIETARIO - Probabilidade e estatistica.pdfLIVRO PROPRIETARIO - Probabilidade e estatistica.pdf
LIVRO PROPRIETARIO - Probabilidade e estatistica.pdf
 
Aula 01
Aula 01Aula 01
Aula 01
 
Montagen pc
Montagen pcMontagen pc
Montagen pc
 
Arquitetura de computadores
Arquitetura de computadoresArquitetura de computadores
Arquitetura de computadores
 
Arquitetura Interna do Computador
Arquitetura Interna do ComputadorArquitetura Interna do Computador
Arquitetura Interna do Computador
 
DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216
 

Mais de Os Fantasmas !

Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...
Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...
Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...Os Fantasmas !
 
Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...
Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...
Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...Os Fantasmas !
 
Livro Algoritmos e Programação de Computadores Autores JR., Dilermando
Livro Algoritmos e Programação de Computadores Autores JR., DilermandoLivro Algoritmos e Programação de Computadores Autores JR., Dilermando
Livro Algoritmos e Programação de Computadores Autores JR., DilermandoOs Fantasmas !
 
Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...
Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...
Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...Os Fantasmas !
 
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...
Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...
Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...Os Fantasmas !
 
Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Os Fantasmas !
 
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 

Mais de Os Fantasmas ! (20)

Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...
Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...
Resposta dos Exercícios para Fixar Capítulo 01 à Capítulo 04 Livro Algoritmos...
 
Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...
Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...
Exercício proposto em Algoritmos do Cotidiano _ Capítulo 01 Livro Algoritmos ...
 
Livro Algoritmos e Programação de Computadores Autores JR., Dilermando
Livro Algoritmos e Programação de Computadores Autores JR., DilermandoLivro Algoritmos e Programação de Computadores Autores JR., Dilermando
Livro Algoritmos e Programação de Computadores Autores JR., Dilermando
 
Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...
Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...
Links Interessantes Livro Algoritmos e Programação de Computadores Autores JR...
 
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap15 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap14 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap13 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap09 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap08 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap07 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap06 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap05 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap04 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap03 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...
Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...
Cap02 - Respostas dos Exercícios Propostos Cap01 - Respostas dos Exercícios P...
 
Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
Cap01 - Respostas dos Exercícios Propostos Livro Algoritmos e Programação de ...
 
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 15 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 14 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 13 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 

Último

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 

Último (20)

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 

LIVRO PROPRIETÁRIO -ORGANIZAÇÃO DE COMPUTADORES

  • 2. Editorial © UniSEB © Editora Universidade Estácio de Sá Todos os direitos desta edição reservados à UniSEB e Editora Universidade Estácio de Sá. Proibida a reprodução total ou parcial desta obra, de qualquer forma ou meio eletrônico, e mecânico, fotográfico e gravação ou qualquer outro, sem a permissão expressa do UniSEB e Editora Universidade Estácio de Sá. A violação dos direitos autorais é punível como crime (Código Penal art. 184 e §§; Lei 6.895/80), com busca, apreensão e indenizações diversas (Lei 9.610/98 – Lei dos Direitos Autorais – arts. 122, 123, 124 e 126). Comitê Editorial Fernando Fukuda Simone Markenson Jeferson Ferreira Fagundes Autor do Original Marco Fábio Polli
  • 3. Sumário Organização de Computadores Capítulo 1: Processamento de Dados e Estrutura Básica do Computador.... 7 Objetivos da sua aprendizagem ................................. 7 Você se lembra?................................................................. 7 1.1  Organização e arquitetura de computadores.................... 8 1.2  Processamento de dados, Informação e Conhecimento......... 8 1.3  Breve histórico dos computadores............................................ 11 1.4  Visão geral do computador pessoal............................................... 19 1.5  Elementos Básicos da Arquitetura de Von Neumann........................ 21 1.6  Construção de algoritmos simples........................................................ 24 Atividades....................................................................................................... 29 Reflexão............................................................................................................. 30 Leituras recomendadas.......................................................................................... 30 Referêncais bibliográficas....................................................................................... 30 No próximo capítulo ................................................................................................. 31 Capítulo 2: Representação de Dados...................................................................... 33 Objetivos da sua aprendizagem ................................................................................... 33 Você se lembra?............................................................................................................. 33 2.1  Elementos binários fundamentais: bits, bytes e words............................................ 34 2.2  Bases numéricas....................................................................................................... 37 2.3  Representação de caracteres..................................................................................... 42 2.4  Tipos de dados e uso de variáveis em algoritmos ................................................... 43 Atividades ..................................................................................................................... 49 Reflexão....................................................................................................................... 50 Leitura recomendada ................................................................................................. 50 Referências bibliográficas ....................................................................................... 50 No próximo capítulo ............................................................................................ 51 Capítulo 3: Álgebra Booleana e Operações Lógicas em Algoritimos......... 53 Objetivos da sua aprendizagem..................................................................... 53 Você se lembra? ........................................................................................ 53 3.1  Álgebra booleana............................................................................ 54 3.2  Portas lógicas.............................................................................. 59 3.3  Operações aritméticas e lógicas em algoritmos..................... 60 Atividades................................................................................. 68 Reflexão.............................................................................. 68
  • 4. Leituras Recomendadas................................................................................................... 68 Referências Bibliográficas............................................................................................... 68 No próximo capítulo ....................................................................................................... 69 Capítulo 4: Instruções e Processamento...................................................................... 71 Objetivos da sua aprendizagem: ..................................................................................... 71 Você se lembra? .............................................................................................................. 71 4.1  Componentes fundamentais para o processamento.................................................. 72 4.2  Instruções de computador......................................................................................... 74 4.3  Aspectos de arquitetura nos computadores pessoais................................................. 77 Atividades........................................................................................................................ 86 Reflexão........................................................................................................................... 86 Leitura Recomendada...................................................................................................... 86 Referências Bibliográficas............................................................................................... 86 No próximo capítulo........................................................................................................ 87 Capítulo 5: Memória e Dispositivos de Entrada e Saída............................................ 89 Objetivos da sua aprendizagem:...................................................................................... 89 Você se lembra?............................................................................................................... 89 5.1  Memória.................................................................................................................... 90 5.2  Dispositivos de entrada e saída E/S.......................................................................... 99 5.3  Tipos de Computadores.......................................................................................... 100 Atividades...................................................................................................................... 102 Reflexão......................................................................................................................... 102 Leitura recomendada...................................................................................................... 103 Referências bibliográficas.............................................................................................. 103
  • 5. Apresentaç ão Prezados(as) alunos(as) No fim da década de 1970, os computa- dores pessoais começam a ser introduzidos no mercado. Ferramentas de processamento de dados que antes eram apenas disponíveis para grandes empresas, por meio de máquinas que ocupa- vam salas inteiras, passaram a estar em cima da mesa dos escritórios e das casas das pessoas. Só esse desenvolvi- mento já seria suficente para mudar a nossa sociedade, mas a história não parou aí. A interligação desses computadores e dos servidores na internet, transformou a maneira com que as pessoas se comunicam, compram, se divertem e criam. Por fim, o próprio computador pessoal deixou de ser o centro desse modo de vida, com smartphones, tablets e dispostivos que ainda estão sendo criados. Em sua história, os computadores mostraram ser uma base de ino- vações contínuas e de uso criativo, uma história que ainda continua e podemos influenciar. Para tanto, devemos conhecer como os computa- dores funcionam e são organizados. Esse conhecimento é essencial tanto para o desenvolvimento de hardware, de software ou mesmo para se fazer um bom uso dessa tecnologia.Com essa preocupação, o conteúdo da disciplina é organizado do seguinte modo: Capítulo 1 – Entenderemos o que é processamento de dados e o funciona- mento básico de um computador. Capítulo 2 – Será explicada a linguagem binária. Capítulo 3 – Entenderemos a álgebra booleana e a sua implementação em algoritmos simples. Capítulo 4 – Veremos com mais detalhes como o computador trata dados e instruções na Unidade Central de Processamento. Capítulo 5 – Exploraremos os tipos de memória e suas inter- -relações. Bons estudos!
  • 6.
  • 7. CCCCCCCCCC Processamento de Dados e Estrutura Básica do Computador Computadores não se limitam aos notebooks e aos desktops nos escritórios, eles estão nos equipamentos médicos, carros, aparelhos de TV, celulares e em simples brinquedos. É impossível dis- sociar a computação do nosso estilo de vida. Porém, são poucas pessoas que de fato entendem como funciona um computador e como dados são processados. Esse conheci- mento é importante para que os computadores e seu modo de usar continuem a se desenvolver. Aqui vamos descrever os elementos básicos de computação e sua história, servindo de base para os demais capítulos da disciplina. Vamos entender o conceito de dados e seu processamento. Um breve panomora da trajetória histórica dos computadores será apresentado para que depois discutamos a arquitetura da Von Neumann. Dessa for- ma, teremos uma visão fundamental sobre o funcionamento do compu- tador. Objetivos da sua aprendizagem • Compreender a diferença entre organização e arquitetura de compu- tadores. • Dominar o conceito de dados e do seu processamento. • Entender a trajetória de evolução dos seus computadores e seus tipos principais. • Identificar as partes principais de um computador segundo a arqui- tetura de Von Neumann. Você se lembra? Você já deve ter visto diversos filmes e artigos que discutem o tema da inteligência artificial. Seria possível mesmo que computadores sejam inteligentes? Eles poderiam ter von- tade ou consciência? Ao ler esse capítulo, busque re- fletir sobre o que um computador pode ou não fazer, relembrando as obras de ficção e opiniões sobre o assunto.
  • 8. 8 Organizações de Computadores Proibidaareprodução–©UniSEB 1.1  Organização e arquitetura de computadores A organização dos computadores trata da estrutura dessas máquinas, preocupando-se com circuitos, tipos de memória e demais componentes físicos usados, como os periféricos. Ou seja, busca-se saber como se dá o funcionamento do computador. Já a arquitetura dos computadores for- nece elementos críticos a serem usados pelo programador: dados e suas representações, operações lógicas e rotinas, etc. Por isso, a da descrição da arquitetura possui uma natureza mais abstrata. Devido à importância de se integrar conhecimento de hardware e software, esta disciplina cobri- rá aspectos tanto de organização quanto arquitetura, seguindo o caminho de obras de referência na área (NULL & LOBUR, 2010; MURDOCA & HEURING; 2000; STALLINGS, 2002; MONTEIRO, 2007). Por mais simples ou complexa que seja a estrutura de um compu- tador, a sua função básica é o processamento de dados. A seguir, vamos discutir qual é o significado dessa atividade e a sua relação com o conhe- cimento. 1.2  Processamento de dados, Informação e Conhecimento Vamos discutir um pouco esses conceitos e as diferenças entre eles? a seguir, apresento trechos da definição dada pelo professor Dr. Val- demar W. Setzer, disponibilizada em: <http://www.ime.usp.br/~vwsetzer/ dado-info.html>. Segundo o professor Dr. Valdemar Setzer, podemos dizer que dado é: (...) uma sequência de símbolos quantificados ou quantificáveis. Portanto, um texto é um dado. De fato, as letras são símbolos quantificados, já que o alfabeto, sendo um conjunto finito, pode por si só constituir uma base numérica (a base hexadecimal emprega tradicionalmente, além dos 10 dígitos decimais, as letras de A a E). Também são dados fotos, figuras, sons gravados e animação, pois todos podem ser quantificados a ponto de se ter eventualmente di- ficuldade de distinguir a sua reprodução, a partir da representação quantificada, com o original. É muito importante notar-se que, mes- mo se incompreensível para o leitor, qualquer texto constitui um dado ou uma sequência de dados (...). (SETZER,– ano)
  • 9. 9 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Segundo o Dr. Setzer, o dado é uma entidade matemática puramente sintática, ou seja, os dados podem ser descritos por estruturas de represen- tação. Assim sendo, podemos dizer que o computador é capaz de arma- zenar dados. Estes dados podem ser quantificados, conectados entre si e manipulados pelo Processamento de Dados. Podemos definir dado também como unidades básicas a partir das quais as informações poderão ser elaboradas ou obtidas. São fatos brutos, ainda não organizados nem processados. Já a informação seria: (...) uma abstração informal (isto é, não pode ser formalizada atra- vés de uma teoria lógica ou matemática), que está na mente de alguém, representando algo significativo para essa pessoa. Note- -se que isto não é uma definição, é uma caracterização, porque “algo”, “significativo” e “alguém” não estão bem definidos; assu- mo aqui um entendimento intuitivo (ingênuo) desses termos. Por exemplo, a frase “Paris é uma cidade fascinante” é um exemplo de informação – desde que seja lida ou ouvida por alguém, desde que “Paris” signifique para essa pessoa a capital da França (supondo-se que o autor da frase queria referir-se a essa cidade) e “fascinante” tenha a qualidade usual e intuitiva associada com essa palavra. Assim, a informação depende de algum tipo de relacionamento, avaliação ou interpretação dos dados. Veja também que informação e dado mantêm relações: (...) Se a representação da informação for feita por meio de dados, como na frase sobre Paris, pode ser armazenada em um computador. Mas, atenção, o que é armazenado na máquina não é a informação, mas a sua representação em forma de dados. Essa representação pode ser transformada pela máquina, como na formatação de um texto, o que seria uma transformação sintática. A máquina não pode mudar o significado a partir deste, já que ele depende de uma pessoa que possui a informação. Obviamente, a máquina pode embaralhar os dados de modo que eles passem a ser ininteligíveis pela pessoa que os recebe, deixando de ser informação para essa pessoa. Além disso, é possível transformar a representação de uma informação de
  • 10. 10 Organizações de Computadores Proibidaareprodução–©UniSEB modo que mude de informação para quem a recebe (por exemplo, o computador pode mudar o nome da cidade de Paris para Londres). Houve mudança no significado para o receptor, mas no computador a alteração foi puramente sintática, uma manipulação matemática de dados. Assim, não é possível processar informação diretamente em um computador. Para isso é necessário reduzi-la a dados. No exemplo, “fascinante” teria que ser quantificado, usando-se por exemplo uma escala de zero a quatro. Mas então isso não seria mais informação (...). Podemos agrupar dados isolados e torná-los consistentes ao se transformarem em informações. Por exemplo, se tivermos um conjunto de dados que descreva a temperatura do ambiente num local, horário e data, poderíamos ter a seguinte relação: Em Ribeirão Preto, SP, no dia 3 de fevereiro, às 15h10 estava uma temperatura de 24°. 15h10 3 de fevereiro 24° Entrada (Dados) Processamento Classificar Filtrar Organizar Saída (Informações) Ribeirão Preto-SP ADAPTADODE(CÔRTES,2008) Figura 1 ― Geração de informações a partir do processamento de dados. Assim, o conjunto de dados inicial foi organizado de maneira que “faça sentido” àqueles que o estiverem lendo. Isto os torna informação. No entanto, a representação no computador é feita baseada nos dados. E como fica o conhecimento?
  • 11. 11 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Caracterizo Conhecimento como uma abstração interior, pessoal, de algo que foi experimentado, vivenciado, por alguém. Continuando o exemplo, alguém tem algum conhecimento de Paris somente se a visitou. Desta maneira, o conhecimento precisa ser descrito por informações. (...) A informação pode ser inserida em um computador por meio de uma representação em forma de dados (se bem que, estando na máquina, deixa de ser informação). Como o conhecimento não é sujeito a representações, não pode ser inserido em um computador. Assim, neste sentido, é absolutamente equivocado falar-se de uma “base de conhecimento” em um computador. O que se tem é, de fato, é uma tradicional “base (ou banco) de dados”. Um nenê de alguns meses tem muito conhecimento (por exemplo, reconhece a mãe, sabe que chorando ganha comida etc.). Mas não se pode dizer que ele tem informações, pois não associa conceitos. Do mesmo modo, nesta conceituação não se pode dizer que um animal tem informação, mas certa- mente tem muito conhecimento. (...) A informação, segundo o Dr. Setzer, associa-se à semântica, enquanto o conheci- mento está associado à pragmática, ou seja, algo existente no mundo real. 1.3  Breve histórico dos computadores Um dos pontos interessantes na história do surgimento dos compu- tadores foi a rápida evolução das tecnologias utilizadas para sua produção. O primeiro computador de grande porte a usar eletrônica digital foi o ENIAC (Electrical Numerical Integrator and Calculator). Ele era de grande porte, devido à quantidade de cálculos que ele era capaz de realizar: cerca de 5 mil somas ou 360 multiplicações por segundo (muito pouco comparado à capacidade de nossos computadores atuais). Conexão: Recomendações 1.3 Leia na íntegra o artigo do Dr. Setzer em: <http://www.ime.usp. br/~vwsetzer/dado-info.html>. Acesso em: 24 jul. de 2014.
  • 12. 12 Organizações de Computadores Proibidaareprodução–©UniSEB WIKIMEDIA Figura 2 – ENIAC (Parte dele, na verdade, pois aqui vemos sua interface de operação.) O ENIAC começou a ser desenvolvido por John Eckert e John Mauchly. O desenvolvimento iniciou-se em 1943, com financiamento militar, para ser usado na Segunda Guerra Mundial, mas só se tornou ope- racional em 1946. Tinha cerca de 30 toneladas e ocupava 180 m2 de área. Em 1944, juntou-se ao grupo de pesquisadores o engenheiro John Von Neumann. Este criou a arquitetura (chamada de arquitetura de Von Neu- mann) que é usada até hoje nos computadores comerciais. WIKIMEDIA Figura 3 – O ENIAC numa visão mais ampla
  • 13. 13 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB O ENIAC não tinha sistema opera- cional e todas as operações eram inseridas diretamente na máquina usando códigos numéricos. Foi produzido usando a tecnologia de válvulas a vácuo, que foi a tecnologia inicial para computadores eletrônicos. Por isto, ele é o marco da Primeira Geração de Computadores. O problema das válvulas era o custo alto para manutenção. Para você ter uma ideia, o ENIAC foi cons- truído usando mais de 17 mil válvulas e gastava mais de 200.000 watts, aquecendo muito! As válvulas eletrônicas possuíam o tamanho aproximado de uma lâmpada elétrica. A era da computação comercial iniciou-se no ano de 1951, quando o UNI- VAC (Universal Automatic Computer) foi entregue ao primeiro cliente: o escritório do Censo do Estados Unidos para tabulação dos dados do censo do ano anterior. Pode-se dizer que o UNIVAC foi o resultado de modificações positivas no ENIAC. Em 1947, os cientis- tas John Bardeen, Walter H. Brattain e William Shockley desenvolveram o transistor. O transistor é um pequeno dis- positivo que transmite sinais eletrônicos usando um resis- tor. Os transistores revolucio- naram a eletrônica e a maneira de construir computadores. Além de serem muito menores do que as válvulas, consu- miam muito menos energia e geravam menos calor. Tam- WIKIMEDIA Figura 4 – Foto de uma válvula eletrônica Figura 5 – Foto de um transistor simples ANNEDAVE/DREAMSTIME.COM
  • 14. 14 Organizações de Computadores Proibidaareprodução–©UniSEB bém eram mais rápidos e mais confiáveis do que as válvulas. Um novo avanço, nesta mesma época, foi a criação de uma linguagem simbólica para manipular instruções das máquinas em vez de códigos numéricos, e isto tornou um pouco menos ardil a tarefa de criar programas para os computadores. Depois das linguagens assembly (as linguagens simbóli- cas), surgiram as linguagens de “mais alto nível”, como Fortran e CO- BOL. São linguagens com comandos em inglês, em vez de símbolos e marcações como nas linguagens assembly. E esta foi chamada a segunda geração dos computadores. Nesta época, os computadores ainda não atingiam as pessoas “comuns” da sociedade, sendo usados apenas por universidades e por organizações do governo e militares. Entre 1965 e 1970, surgiu o Circuito Integrado (CI). Trata-se de um circuito eletrônico completo num pequeno chip feito de silício. Em 1965, os CIs começaram a substituir os transistores nos computadores e aí nós tivemos os Computadores de Terceira Geração. ALEXSKOPJE/DREAMSTIME.COM Figura 6 – Foto de circuitos integrados O silício é um material chamado semicondutor, pois conduz corren- te elétrica quando misturado com impurezas químicas em sua constituição (você pode pesquisar os detalhes de materiais semicondutores se ficar curioso!).
  • 15. 15 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB O marco importante desta terceira geração foi o lançamento do com- putador da série IBM 360 em 1964. Trata-se de uma linha de computadores projetada pela IBM tanto para uso comercial quanto científico. Foi uma série com o intuito de inserir o uso de computadores nos negócios e em operações comerciais. NASA/WIKIMEDIA Figura 7 – O IBM 360 Já a quarta geração de computadores, com início na década de 1970, traz consigo a criação do microprocessador. Os computadores atuais são muito menores, mais de 100 vezes menores que aqueles de primeira ge- ração, mas um único chip é mais poderoso que o próprio ENIAC. Para você ter uma ideia, em 1977 uma calculadora podia fazer cerca de 250 multiplicações por segundo, custava de 300 a 500 dólares e pesava mais de 500 gramas. Hoje, uma calculadora pesa muito pouco, custa 1 dólar ou menos às vezes (depende da cotação) e realiza muito mais cálculos. Em comparação ao ENIAC, um Pentium de 150 MHz era capaz de mais de 300 milhões de operações de soma por segundo, enquanto que o ENIAC processa apenas 5.000 operações. International Business Machines (IBM) – trata-se de uma empre- sa de desenvolvimento de hardware e software, estadunidense, com quase um século de existência. Mais informações em <http://www.ibm.com/ibm/br/pt/>.
  • 16. 16 Organizações de Computadores Proibidaareprodução–©UniSEB Dê uma olhada na figura a seguir. Figura 8 – Evolução dos computadores Retirado de A história dos processa- dores, desde ENIAC até Nehalem/INTEL. Claro que a his- tória mais recente dos computadores você já conhece, mas vamos apenas comentar um pouco sobre os compu- tadores pessoais. Estes SWTPC6800/WIKIMEDIA Figura 9 – MITS Altair
  • 17. 17 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB A evolução na velocidade dos microprocessadores é tida para alguns como a quinta geração dos computadores. O marco seria o microprocessador Intel 386, que permitia a execução de várias tarefas ao mesmo tempo. computadores mudaram completamente o paradigma do uso de computadores. O primeiro computador pes- soal que foi disponibilizado ao público em geral foi o MITS Altair, produzido em 1975. Na época, foi “choque” grande, pois os computa- dores só faziam sentido para empre- sas, universidades, o governo ou os militares! Para que ter um computador em casa? Se fosse para investir, investiria em maquinários, em ferramentas, mas um computador? Não teria serventia! Esse seria um típico discurso de um pai cujo filho acabou de lhe fazer um pedido naquela época! Quando Steve Jobs e Steve Wozniak mostraram ao público jovem o Apple I, todo mundo foi ao delírio! Ele possuía um teclado fácil de usar e tela! A Apple mostraria, mais tarde, sua facilidade em conseguir sucesso comercial com o Apple II e o software de planilha eletrônica VisiCalc. Figura 10 – Apple I VOLKERSTEGER/SCIENCEPHOTOLIBRARY/SPLDC/LATINSTOCK VOLKERSTEGER/SCIENCEPHOTOLIBRARY/SPLDC/LATINSTOCK Figura 11 – Apple II
  • 18. 18 Organizações de Computadores Proibidaareprodução–©UniSEB Em 1981, a IBM lançou seu primeiro computador pessoal e captu- rou a maior fatia de mercado em 18 meses. O padrão IBM PC foi adotado e copiado por outras empresas. HO/IBM/AFP Figura 12 – IBM PC Não podemos nos esquecer de um nome importantíssimo no século passado. Claro, ainda é um nome muito importante: Microsoft. A hoje gigante empresa de software forneceu o sistema operacional para o computador pesso- al da IBM. Este software, chamado de MS-DOS, foi usado pela IBM e pelas empresas que criaram computadores pessoais baseadas no padrão IBM PC. Com grande expansão, a Microsoft logo evoluiu para novas versões de seu sistema operacional até que “descobriram” e popularizaram a interface gráfi- ca com o sistema operacional Windows! Os sistemas Windows mudaram o conceito de interface entre usuário e computador. Não foi a Microsoft que criou o conceito de interface gráfica, mas foi uma das principais empresas (senão a principal) a popularizá-lo! Conexão: Recomendações 2.1 Assista ao filme história do computador em minutos disponível em <www.youtube.com/ watch?v=F3qWg1JBPZg>. Acesso em: 24 jul. de 2014.
  • 19. 19 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB 1.4  Visão geral do computador pessoal O hardware de seu computador pessoal precisa dos seguintes com- ponentes para um efetivo funcionamento: • dispositivos de entrada; • dispositivos de saída; • dispositivos de armazenamento secundário; • unidade de processamento. O funcionamento básico de um computador convencional acontece de acordo com a figura a seguir: Armazenamento secundário O dispositivo de armazenamento secundário armazena dados e programas O dispositivo de entrada envia dados à unidade central de processamento A unidade central de processamento (UCP) executa instruções de computador A memória mantém dados e programas em uso no momento O dispositivo de saída disponibiliza os dados processados (as Informações) Entrada Processamento Saída ADAPTADODE:(CAPRONEJOHNSON,2004) Figura 13 – Componentes principais de um computador e mecanismo de funcionamento. As informações são inseridas no ambiente computacional por meio dos dispositivos de entrada. Estes dispositivos permitem que nós, seres humanos, ou equipamentos forneçamos informações para serem proces- sadas. Exemplos seriam o mouse, o teclado, leitores óticos, dentre outros.
  • 20. 20 Organizações de Computadores Proibidaareprodução–©UniSEB Estas informações de entrada são arma- zenadas na memória, e a unidade central de processamento (UCP) realiza o devido tra- tamento destas. Após isto, dispositivos de saída podem exibir o resultado do proces- samento. Exemplos de dispositivos de saída são monitores, impressoras, dispositivos de som etc. Além disso, existem componentes que permi- tem a gravação de dados de maneira permanente e também o intercâmbio de dados. Estes dispositivos são chamados de dispositivos de armazena- mento secundário. Detalhando um pouco mais os componentes de um computador, te- mos a figura a seguir. 1 2 3 4 5 6 7 8 9 Figura 14 – Componentes básico do computador: 1 – monitor, 2 – placa-mãe, 3 – processador, 4 – memória RAM, 5 – placas de expansão, 6 – fonte de alimentação, 7 – leitor ótico (DVD, CD etc.), 8 – disco rígido (hd), 9 – mouse, 10 – teclado. Dispositivos de entrada: 10 e 9 Dispositivos de saída: 1 Armazenamento secundário: 7 e 8 Elementos da UCP: 2, 3, 4, 5 e 6. Conexão: Recomendações 2.3 Veja o vídeo do Olhar Digital sobre o que considerar na hora de comprar um computa- dor, em <www.youtube.com/ watch?v=vYo6IceDsVQ>.
  • 21. 21 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB A UCP representa toda a unidade que faz o processamento, mas não é um único componente, pois reúne diversos outros. Por exem- plo, a placa-mãe, que recebe este nome em razão de todos os demais componentes da UCP, periféricos de entrada e de saída, dependerem dela para conexão. É uma placa que faz a interligação entre todos os componentes do computador. Nela há os slots de memória, onde fica a memória RAM do computador. A memória RAM (memória de acesso randômico) é a memória de trabalho da máquina. Nela ficam os progra- mas que estão sendo processados e todas as informações necessárias. Além da memória RAM, temos o próprio processador, a unidade capaz de realizar complexas operações matemáticas, e as placas de expansão, que permitem adicionarmos novas funcionalidades ao nosso computador, como uma placa que faça processamento dedicado de vídeo. Enquanto a memória RAM guarda as informações de trabalho, os discos rígidos guar- dam todas as informações e todos os programas. Quando desligamos o computador, as informações são salvas no disco. Quando ligamos o com- putador, os programas necessários para utilização dele, bem como aquele que desejarmos, são carregados do disco para a memória RAM. Além dos componentes vistos, podemos enumerar um outro tipo de dispositivo: Dispositivo para Comunicação Externa. No hardware de seu computador, ele é tratado com um dispositivo de entrada e saída, mas é interessante diferenciá-lo. Exemplos destes dispositivos são: • placas de rede; • hub; • switch; • modems. 1.5  Elementos Básicos da Arquitetura de Von Neumann Lembra-se de termos comentado sobre John Von Neumann, que par- ticipou da criação do ENIAC? Apesar de Von Neumann ter sua formação na área de matemática, sua contribuição foi muito importante em diversas outras áreas e, ele popularizou a chamada Arquitetura de Von Neumann, que será nosso objeto de estudo agora. A arquitetura de Von Neumann é a base da construção da principal arquitetura dos computadores modernos, os PCs.
  • 22. 22 Organizações de Computadores Proibidaareprodução–©UniSEB De maneira bem simples, ela funciona assim: A unidade central de processamento (UCP) faz operações com 1. Informações. Estas operações podem ser: a) operações de entrada e saída, como leitura de dados do teclado e escrever dados na tela. São operações para inserção de dados na memória do computador ou para exibição de informações que estejam armazenadas nesta. b) operações aritméticas como adição, subtração, multiplicação e divisão de valores inteiros ou ponto flutuante (basicamente, números reais representados num formato definido); c) operações lógicas e relacionais como comparações, testes de condições lógicas etc.; d) movimentação de dados entre os vários componentes, ou seja, resgate e inserção de informação na memória ou em dispositi- vos de entrada e saída. 2. Para fazer estas operações, necessitará de que as informações estejam na memória. Trata-se de um componente eletrônico para armazenar informações. 3. Além da memória, existem os dispositivos de entrada e saí- da, como teclado e mouse (entrada) ou monitor e impressora (saída), que emitirão as informações num formato legível ao usuário do computador. Memória Primária Dados Dados Dados Controle Unidade Lógico e Aritmética Unidade de Controle Unidade de Entrada e Saída Figura 15 – A arquitetura de Von Neumann – Visão interna do funcionamento de um computador.
  • 23. 23 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Então, basicamente, na arquitetura de Von Neumann, o que ocorre é que uma máquina pode armazenar seus programas e executá-los numa unidade responsável por diferentes operações. Pela figura, pudemos ver que as informações podem ser dados ou informações de controle. As informações de controle são aquelas que dizem o que deve ser feito com os dados. Por exemplo, se tivéssemos, de alguma maneira, na memória a informação da expressão “5 + 7 < 10 ?”, saberíamos que estamos tentando comparar a soma de 5 e 7 com o valor 10 e saber quem é maior. Logo, 5, 7 e 10 são dados e “+” , “<” e “?” são informações de controle. O computador entenderia que deve somar os da- dos 5 e 7 (controle +) e verificar se o resultado é menor que 10 (controle < e resultado ?). As duas outras unidades da figura são a ULA (Unidade Lógica e Aritmética) que serve para realizar as operações, efetivamente, e a UC (Unidade de Controle), que serve para decodificar as operações, ou seja, entender o que precisa ser feito, e disparar novas operações, caso neces- sário. A UCP entende operações num determinado formato. Vamos aqui chamar formato de linguagem, ok? Bom, o computador entende a linguagem eletrônica que popular- mente é chamada de binária, devido à sua representação. Como um pro- gramador vai escrever códigos que descrevam operações em binário? Não vai (geralmente)! Neste ponto, entrará em cena uma camada intermediária que cuidará disto para ele! Um programador de hoje escreve código em linguagem de alto nível. Isto quer dizer que a linguagem é de mais fácil compreensão humana! Os passos seguidos por um programador são: 1. Ele pensa no problema e o analisa; 2. depois formula algoritmos que possam resolver este problema; 3. na sequência, transforma os algoritmos em código de alto ní- vel (esta fase é chamada de codificação ou programação); 4. após isto, traduz o código de alto nível, que resultará num “executável”; 5. um executável é um programa que roda sobre uma plataforma;
  • 24. 24 Organizações de Computadores Proibidaareprodução–©UniSEB 6. uma plataforma é um computador com sua arquitetura e um sistema “principal” de gerenciamento de seus recursos, chama- do sistema operacional; 7. o sistema operacional “sabe” como fazer o executável funcio- nar, usando memória, dispositivos de entrada e saída etc. 8. O Windows, o Linux, o Solarix e o Unix, dentre outros, são exemplos de sistemas operacionais (veremos mais sobre siste- mas operacionais no capítulo seguinte). 9. Mas sistema operacional – por exemplo Windows–, não é aquela interface que você vê com editores de texto e planilhas. Ele compreende os programas, as rotinas que estão por trás de todo o funcionamento de seu computador (também veremos mais disto no capítulo seguinte). 1.6  Construção de algoritmos simples Algoritmos são conjuntos sistemáticos e formalizados de intruções voltados para resolução de um problema (PIVA JR. et al, 2012). O concei- to de algoritmo não é exclusivo da computação: uma receita de bolo, por exemplo, pode ser considerado como tal. Porém, a estrutura de algoritmos se tornou mais difundida a partir da programação. Nos próximos dois capítulos, vamos relacionar os conceitos de organização e arquitetura de computadores com sua implementação em algoritmos simples. Para tanto, vamos apresentar um ambiente de progra- mação que pode ser facilmente usado pelo aluno, além de uma explicação introdutória sobre a estrutura de algoritmos. 1.6.1  Indicação de ambiente de desenvolvimento Para simplificar o processo de codificação de algoritmos por meio de pseudocódigos que utilizaremos neste e no próximo capítulo um ambien- te de desenvolvimento conhecido como VisuAlg. Este ambiente pode ser obtido gratuitamente e permite a construção e simulação de algoritmos. O programa VisuAlg é muito indicado para programadores iniciantes, uma vez que possui uma interface simplificada e de fácil compreensão. O qua- dro 1.1 apresenta os endereços principais do ambiente de desenvolvimento VisuAlg.
  • 25. 25 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Site oficial http://www.facom.ufu.br/~claudio/Cursos/PP/Docs/Visualg2.pdf Download (endereço abreviado) goo.gl/n8YLk Download (endereço completo) http://www.guanabara.info/2007/09/visualg-v25/ Quadro 1.1 – Ambiente de Desenvolvimento VisuALg. Inicialmente utilize um dos endereços apresentados no quadro 1.1 para realizar o download do ambiente. Escolha uma pasta no seu com- putador para armazenar o arquivo. Finalizado o processo de download clique duas vezes sobre o arquivo e você visualizará uma tela semelhante a ilustrada na figura 15. Figura 16 – Tela inicial do instalador do VisuAlg. Clicando no botão avançar você poderá definir o diretório para ins- talação do programa. Geralmente não é necessário modificar o diretório, assim, clique novamente no botão avançar. Na tela Componentes Sele- cionados, você também não precisará realizar nenhuma alteração, dessa forma, clique novamente no botão avançar. A tela Selecione o grupo do menu Iniciar, permite a especificação do nome que será definido para menu, o que novamente não necessita de modificação. A tela seguinte Selecionar Tarefas Adicionais, também já possui as principais configura- ções definidas, com isso, você pode clicar no botão avançar, e em seguida,
  • 26. 26 Organizações de Computadores Proibidaareprodução–©UniSEB clique no botão instalar. A instalação é rápida e dura apenas alguns se- gundos. No final, você já poderá iniciar o ambiente VisuAlg. Para a criação de um novo algoritmo no ambiente VisuAlg, você de- verá utilizar o menu Arquivo>Novo, ou simplesmente pressionar as teclas de atalho CTRL+N. Dessa forma, um novo algoritmo será criado confor- me ilustra a figura 2. Para salvar os algoritmos codificados você deverá utilizar o menu Arquivo>Salvar (CTRL+S). O ambiente VisuAlg utiliza a extensão .alg para representar os arquivos com algoritmos. Figura 17 – Criação de um novo algoritmo no ambiente VisuAlg. Neste momento você já tem o ambiente para desenvolvimento de al- goritmos VisuAlg instalado no seu computador. Além disso, você já sabe como criar um novo algoritmo. Poderemos agora iniciar um estudo mais detalhado a respeito da construção de algoritmos. 1.6.2  Estrutura básica de um algortimo O primeiro passo para a construção de algoritmos computacionais é o entendimento do conceito de algoritmo. Segundo Forbellone (2005), um algoritmo é uma sequência de passos que visa atingir um objetivo bem definido. Outra definição pode ser encontrada em Ascencio e Edilene (2002), em que um algoritmo é descrito como uma sequência de passos que deve ser seguida para a realização de uma tarefa. Dentro deste con- texto, você pode entender o termo algoritmo como um conjunto de passos que busca a solução de um problema.
  • 27. 27 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB No cenário computacional, os algoritmos têm como fundamento a elaboração de uma sequência de passos de forma que o computador seja capaz de solucionar um determinado problema. Em geral, os algoritmos são utilizados para abstrair1 problemas do mundo real, e transformá-los em soluções no mundo computacional. A escrita de algoritmos é a base para o processo de desenvolvimento dos programas de computador. No ciclo de vida do desenvolvimento de um programa, o primeiro estágio é a elaboração da representação algo- rítmica. Assim, inicialmente, os programadores criam uma especificação algorítmica do problema computacional, antes de transformá-lo no código fonte de uma determinada linguagem de programação. Com a representa- ção algorítmica do problema é possível especificar quais as principais fun- cionalidades do futuro programa, bem como, identificar possíveis erros que ocorrerão com a execução do programa. Para a construção de um algoritmo computacional é necessário a utilização de uma estrutura básica, que é definida a partir de uma sintaxe específica e contém blocos pré-determinados para codificação. Nesta es- trutura, é especificado, por exemplo, o nome do algoritmo, quais variáveis serão utilizadas e o bloco de instruções que contém a lógica do programa. O código 1 apresenta a estrutura básica de um algoritmo computacional, a qual foi definida utilizando uma representação conhecida como pseudo- código. Este tipo de representação também é comumente descrita como português estruturado ou portugol. Código 1 1 algoritmo “semnome” 2 // Função : 3 // Autor : 4 // Data : 20/10/2011 5 // Seção de Declarações 6 var 7 8 inicio 9 // Seção de Comandos 10 fimalgoritmo Na primeira linha do algoritmo é necessário especificar um nome, da mesma maneira que você define nomes para documentos em editores 1 Avaliar características e propriedades em separado; considerar à parte.
  • 28. 28 Organizações de Computadores Proibidaareprodução–©UniSEB de texto. As linhas 2, 3 e 4 apresentam informações gerais a respeito dos algoritmos. É importante destacar que estas linhas começam pelos ca- racteres //, os quais são chamados de comentários. Uma linha de comen- tário tem como objetivo auxiliar o entendimento do algoritmo, assim, você poderá utilizá-las sempre que necessário. Outro detalhe interessan- te sobre os comentários, é que as linhas comentadas não influenciam na execução do algoritmo, dessa forma, você poderá escrever comentários em português da maneira que determinar mais adequada. Na linha 5 te- mos a seção de declarações, a qual será utilizada para declaração das va- riáveis que fazem parte do programa. A linha 8 define o início do algo- ritmo, e as linhas seguintes (Seção de Comandos), especificam a lógica de programação utilizada no algoritmo. Por fim, a linha 10, denominada fimalgoritmo, representa o término do algoritmo. Para demonstrar a utilização do ambiente VisuAlg na codificação de algoritmos, vamos escrever nosso primeiro algoritmo. Este algoritmo tem como objetivo exibir seu nome completo na tela, assim, inicialmen- te você deverá abrir o ambiente e escrever o algoritmo conforme apre- sentado na figura 17. Figura 18 – Codificação do algoritmo para exibir o nome na tela. Finalizada a codificação do algoritmo é fundamental salvar o código antes de realizar a execução. Para isso, utilize o menu Arquivo>Salvar, ou simplesmente pressione a tecla de atalho Ctrl+S. Você pode escolher a pasta de sua preferência para armazenar o arquivo. A escolha do nome do algoritmo é importante, assim, recomenda-se não utilizar espaços, acen-
  • 29. 29 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB tos, ou caracteres especiais. Para este exemplo, utilizaremos o seguinte nome unid3_exemplo01.alg. A extensão .alg é utilizado pelo ambiente VisuAlg para identificar arquivos do tipo algoritmo. Para facilitar o acompanhamento da codificação, você pode exibir os números das linhas, dessa forma, utilize o menu Exibir>Número de linhas para habilitar o recurso. Em seguida, poderemos executar o algorit- mo e visualizar o resultado na tela. A execução de um algoritmo no am- biente VisuAlg é realizada por meio do menu Algoritmo > Executar, alter- nativamente, você poderá utilizar a tecla de atalho F9. A figura 4 apresenta o resultado da execução do algoritmo. Figura 19 – Resultado da execução do algoritmo no ambiente VisuAlg. Com isso, você aprendeu os procedimentos para codificação de um algoritmo no ambiente VisuAlg, bem como, sua execução e visualização dos resultados. Atividades 01. Especifique a diferença entre organização e arquitetura de computa- dores. 02. Descreva a arquitetura de Von Neumann. 03. Pode-se dizer que o computador pessoal extinguiu os mainframes? Justifique. 04. Pesquise sobre outras arquiteturas de computadores além daquela de Von Neumann.
  • 30. 30 Organizações de Computadores Proibidaareprodução–©UniSEB Reflexão Vimos até aqui que há muito mais sobre computadores do que sim- plesmente entender como eles funcionam. A história e a evolução dos computadores determinaram, de certa forma, como as pessoas passaram a pensar em tecnologia e a “consumir” tecnologia. Mesmo que você não se torne especialista na área de tecnologia da informação, é sempre impor- tante saber como funcionam os equipamentos que serão usados no dia a dia. Isto facilita o diálogo entre nós e as novas tecnologias. Leituras recomendadas Artigo – O papel da informação no processo de capacitação tecno- lógica das micro e pequenas empresas. Escrito por Paulo César Rezende de Carvalho Alvim. Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext &pid=S0100-19651998000100004>. Livro – Administração de Sistemas de Informação, do autor Pedro Luiz Cortes. Livro muito interessante e abrangente sobre o uso de siste- mas de informação nas empresas. Referêncais bibliográficas CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice Hall. 2004. LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren- ciais. São Paulo: Prentice Hall. 2007. MONTEIRO, M. A. Introdução à Organização de Computadores. 5a ed. São Paulo: LTC, 2007. MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de Computadores. Rio de Janeiro: Campus, 2000. NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi- zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010.
  • 31. 31 Processamento de Dados e Estrutura Básica do Computador – Capítulo 1 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIAN- CHI, F. Algoritmos e Programação de Computadores. Rio de Janei- ro: Elsevier, 2012. STALLINGS, W. Arquitetura e Organização de Computadores. São Paulo: Prentice Hall, 2002. No próximo capítulo No próximo capítulo, entederemos como os dados são representa- dos na computação. Serão vistos os conceitos de bit, byte, bases e a con- versão entre elas.
  • 33. Capítulo2 Representação de Dados No capítulo prévio, entendemos o com- putador como uma máquina que processa dados. Deve-se notar que existem artefatos mecânicos que, mesmo com capacidade limitada, conseguem fazer também processamento – tal como calculadoras mecânicas criadas no séc. XVII. Claro que pela sua capacidade e flexibilidade, o nosso interesse reside nos computadores baseados em dispositivos eletrônicos, e as- sim descrevemos no capítulo anterior a evolução das máquinas baseadas em válvulas, transistores simples e microprocessadores. Porém, não foi respondida uma pergunta importante: como os computadores eletrônicos conseguem reconhecer dados. Para tratar dessa questão, este capítulo começa com a definição de elementos fundamentais da linguagem binária, partindo para bases numéricas fundamentais. Objetivos da sua aprendizagem • Compreender o que são bits, bytes e palavras (words). • Conhecer as principais bases numéricas. • Saber como o computador representa números e caracteres. • Entender, sob a perspectiva de programação, o relacionamento entre variáveis e tipos de dados. Você se lembra? Ao preencher dados em formulários eletrônicos, muitas vezes recebe- mos mensagens de erro, indicando incompatibilidade entre os dados que entramos e o tipo de dados esperado. Qual seria a consequên- cia de não haver esse controle?
  • 34. 34 Organização de Computadores Proibidaareprodução–©UniSEB 2.1  Elementos binários fundamentais: bits, bytes e words. Pode-se pensar em diversas propriedades relacionadas ao compo- nente eletrônico e à corrente elétrica, tais como voltagem, amperagem, frequência de sinal, etc. Porém, fundamentalmente, um dispositivo tem ou não corrente elétrica passando por ele, em suma, está desligado ou ligado. Por isso, a forma básica de representação de dados em componentes ele- trônicos se baseia na linguagem binária (LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004). Essa linguagem contém dois dígitos apenas, os quais vão corresponder aos dois estados básicos. A represen- tação desses dois dígitos foi convencionada como sendo 0 ou 1. Deve-se comentar que a linguagem binária foi desenvolvida antes mesmo da ele- trônica e da computação, porém se mostrou perfeitamente adequada para esses campos de desenvolvimento (NULL & LOBUR, 2010). À unidade de dígito binário (zero ou um) se dá o nome de bit, ter- mo vindo do inglês binary digital unit (STALLINGS, 2002). Como bits isolados podem conter apenas dois estados, números e palavras são re- presentados por diversos bits seguindo determinada convenção. À época do desenvolvimento do IBM 360, os engenheiros da empresa passaram a usar conjuntos de 8 bits como unidade básica de endereçamento de me- mória – este sendo um assunto tratado no capítulo 4. Esse conjunto de 8 bits é chamado de byte. Deve-se notar que a definição do byte estava ligada à arquitetura e características do hardware. Com o tempo, as uni- dades de endereçamento foram crescendo, sendo 32 bits e 64 bits as mais encontradas hoje. O termo word ou palavra é usado para identificar esses conjuntos de bits adjacen- tes, sendo o seu número variável segundo o uso (MONTEIRO, 2007), ver quadro 2.1. Bit • Digito binário Byte • Conjunto de 8 bits WORD • Número convencionado de bits adjacentes Figura 1 – Elementos fundamentais de Linguagem Binária (MONTEIRO, 2007). Conexão: Assista a um vídeo sobre o funcionamento do computador e o uso de bits e bytes: https://www.youtube.com/ watch?v=6oDiJLg6xbE Acesso em: 24 jul. de 2014.
  • 35. 35 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Tamanho bits Exemplo 1 nibble 1 byte 0 16 bits 0 32 bits 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 Quadro 2.1 – Conjunto de Dados mais Comuns Fonte: adaptado de (MONTEIRO, 2007, p. 94) O aumento de capacidade de processamento e armazenamento de dados nos deixou familiares com termos como megabyte, gigabyte, etc. Essas unidades se referem a potências de dez de quantidade de bytes, con- forme está relacionado no quadro 2.2. Múltiplos Símbolo Valor kilo k 1000 mega M 10002 giga G 10003 tera T 10004 peta P 10005 exa E 10006 zetta Z 10007 yotta Y 10008 Quadro 2.2 – Múltiplos decimais de bytes Fonte: (STALLINGS, 2002) A definição simples desses múltiplos pode ser melhor ilustrada com algumas estimativas de uso: • A Biblioteca do Congresso Americano guardava em 2011 cerca de 235 terabytes (MCKENNA, 2013). • Em 2008, o Google já processava 20 mil terabytes ao dia (SCHON- FELD, 2010). • Os serviços de mapas do Google disponibilizam certa de 20 petabytes de imagens (MCKENNA, 2013). • Em 2014, estima-se que o Facebook tinha nada menos do que 258 petabytes em arquivos de fotos e vídeos (LEUNG, 2014). • A capacidade do cérebro humano para armazenar memória seria equi- valente a 2,5 petabytes (SMITH, 2010).
  • 36. 36 Organização de Computadores Proibidaareprodução–©UniSEB Deve-se reforçar que esses números são apenas estimativas, sendo o cálculo preciso bastante complexo e sujeito a diversas questões metodo- lógicas. Figura 2 – Biblioteca do Congresso Americano, Washington. http://commons.wikimedia.org/wiki/File:Library_of_Congress_Interior_Jan_2006.jpg Acesso em 24 jul. de 2014 Figura 3 – Um dos datacenter do Facebook, Oregon. Fonte: http://commons.wikimedia.org/wiki/File:Facebook_Data_Center.jpg Acesso em 24 jul. de 2014 Até este ponto tratamos de alguns elementos básicos de linguagem binária e demos alguma noção de escala de uso. Entretanto como números
  • 37. 37 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB e palavras são representados nesse tipo de convenção? Para explorarmos esse assunto, é preciso conhecer algumas bases numéricas e como se pode convertê-las. 2.2  Bases numéricas 2.2.1  Base decimal O sistema numérico decimal foi adotado dos árabes pelo euro- peus e é a base que usamos para contas simples a complexas transações financeiras em nossa economia (NULL & LOBUR, 2010). Como é um sistema muito comum, não nos detemos para pensar como funciona. Veja o exemplo abaixo de decomposição de números em base decimal: 15 = 1x10 + 5x1 146 = 1x100 + 4x10 + 6x1 8303 = 8x1000 + 3x100 + 0x10 + 3x1 Outra forma importante de decompor números é com o uso de po- tências. Os números acima podem ser reescritos como em termos de po- tências de 10, lembrando que qualquer potência elevada a zero é igual a 1: 15 = 1x101 + 5x100 Neste caso, temos dois dígitos: o dígito 5, corresponde ao multipli- cador da potência elevada a zero. O dígito 1, corresponde ao multiplicador da potência elevada a 1. Por analogia, examine os casos seguintes: 146 = 1x102 + 4x101 + 6x100 8303 = 8x103 + 3x102 + 0x101 + 3x100 Em outras bases numéricas, usamos potências de base correspon- dente. Mas por que estudamos outras bases? Dependendo da utilização, a base decimal pode não ser a mais eficiente e eficaz. Deve-se saber que há uma notação que explicita em que base o número deve ser entendido: (153)10 refere-se a 153 na base decimal. (1110)2 refere-se a 1110 na base binária, que será vista a seguir.
  • 38. 38 Organização de Computadores Proibidaareprodução–©UniSEB 2.2.2  Base binária Como sabemos, é mais adequado implementar dados em base biná- ria no computador. No quadro 3, temos uma relação da representação dos números de 1 a 15. Porém como esses números são formados? Podemos entendê-los a partir de sua decomposição em potências de dois: (14)10 = (1 1 1 0)2 = (1x23) + (1x22) + (1x21) + (0x20) = 8 + 4 + 2 + 0 = 14 Por analogia, verifique estes três exemplos: (1)10 = (1)2 = 1x20 = 1 (2)10 = (10)2 = 1x21 + 0x20 = 2 + 0 = 2 (9)10 = (1001)2 = 1x23 + 0x22 + 0x21 + 1x20 = 8 + 0 + 0 + 1 = 9 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 Quadro 2.3 – Representação Binária de Inteiros Positivos (zero a quinze) Olhando novamente o quadro 2.3, vemos que o número 1 é repre- sentado por um dígito, já o número nove por quatro. Para a estrutura do
  • 39. 39 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB computador, é interessante termos uma padronização dos processos de lei- tura e alocação de memória para cada variável. O byte, também referido como octeto (MURDOCA & HEURING; 2000), surgiu com essa preocu- pação, definindo conjuntos em uma quantidade fixa de 8 bits. No caso do número 1, os seus dígitos vacantes são preenchidos por zero, assim temos na representação de inteiros positivos: (1)10 = (000000001)2 (9)10 = (00001001)2 (255)10 = (11111111)2 Usando as combinações possíveis de zeros e uns em 8 bits, um byte pode representar 256 valores numéricos, ou seja, 28. Se precisássemos usar apenas inteiros positivos, poderíamos representar valores começando por zero até chegar a 255. Contudo, para indicar se o valor é negativo ou positivo em um byte, precisamos usar um dígito para ter essa informação. Assim, usando-se o byte, chega-se a um intervalo que vai de -128 a 127 (STALLINGS, 2002) . Bug do Milênio Quando os sistemas computacionais estavam sendo desenvolvidos no pós-guerra, um dos principais gargalos era a capacidade de memória e processamento. Por essa razão, foi simplificada a representação dos anos, subentendendo que todas as datas se referiam ao século 20. Assim, a representação de “1985” correspondia a 85, subentendendo-se os dígitos “19” à frente. Chegando a “2000”, porém, teríamos “00”, que seria enten- dido como “1900”. Previu-se que esse problema de representação pudesse causar o colapso de muitos sistemas computacionais, mas as consequên- cias foram muito menores do que as previstas (BBC, 2014). Também pela forma de representação de datas, estão previstos problemas em 2038 com sistemas UNIX de 32 bits e programados na linguagem C (SMAAL, 2011). Para representar valores maiores ou menores do que esse intervalo, há duas saídas principais. A primeira é lançar mão de words (palavras), como de 16 bits ou 32 bits citados anteriormente. Em uma palavra de 16 bits, os valores de números inteiros podem variar de -32.768 a 32.767 (MONTEIRO, 2007). A quantidade de bits e o formato que são conven- cionados a cada dado é importante. Antes de mais nada, quanto maior o
  • 40. 40 Organização de Computadores Proibidaareprodução–©UniSEB word, naturalmente maior é o uso de memória e capacidade de processa- mento. Outro fator importante é que uma vez fixado o tamanho de certo tipo de dado em um sistema, o custo de mudança pode ser considerável. O problema (bug) do milênio e de 2038 são exemplos de problemas advin- dos da fixação inadequada de bits para variáveis de data. A passagem de bytes para words de 16 bits e de words de 16 para 32 bits requer mais capacidade e mudanças na estrutura de hardware. Buscou-se evitar a necessidade dessas mudanças e ainda de aumentar o escopo para representação de números reais por meio de método de representação por ponto flutuante (STALLINGS, 2002). Esse método se baseia na representação de números por seus algarismos significativos e potências. O padrão mais usado para esse método denomina-se IEEE 754, servindo de base para construtores de hardware e programadores (MON- TEIRO, 2007). Os números a seguir possuem grandezas bastante diferentes, mas podem ser representados com basicamente a mesma quantidade de bits: 1,27 x 106 = 1,27 x 1000000 = 1270000 7,31 x 10-2 = 7,31 x 0,01 = 0,0731 Nos dois casos, temos três algarismos sig- nificativos e determinada potência na base 10. Assim, podemos representar números inteiros e aproximar valores fracionários e dízimas, ampliando consideravelmente o intervalo de re- presentação numérica. O termo “ponto flutuante” vem do fato da vírgula na representação numérica poder estar na casa centesimal, unitária, de milhar, etc. Assim como é possível somar e subtrair usando o sistema decimal, é possível fazer as opções aritméticas com o sistema binário, incluindo números de ponto flutuante. 2.2.3  Base hexadecimal Esse sistema possui o número 16 como base e é indicado por con- tração “hex”. Como notação, geralmente usa-se a convenção abaixo (STALLINGS, 2002): 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 A B C D E F Conexão: Saiba mais sobre o método ponto flutuante e padrão IEEE 754: http://www.lia.ufc.br/~valdisio/ download/ieee.pdf Acesso em: 24 jul. 2014.
  • 41. 41 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB O Excel tem funções implementadas que permitem a conversão entre bases numéricas. Se você, por exemplo, possuir o número 14 em uma célula A1, você pode implementar uma função em uma célula A2 que use o 14 como ar- gumento. Isso pode ser feito pelo ícone fx ou pelo menu Inserir. Algumas funções disponíveis são: BINADEC: converte da base binária para a decimal. BINAHEX: converte da base binária para a hexadecimal. DECABIN: converte da base deci- mal para a binária. Diversas representações computacionais, padrões e linguagens usam a base hexadecimal. Um exemplo são as representações de cores em HTML, em que se inicia com # para depois especificar quatro dígitos hexadecimais.A cor azul primária, por exemplo, é representada por “#0000FF”. 2.2.4  Conversão entre bases Ao usar o computador, sem perceber estamos usando a conversão entre sistema decimal e binário a todo o tempo. Há diversas ferramentas na WEB e em planilhas eletrônicas para fazer realizar a conversão entre diversos sistemas. Para ilustrar aqui uma conversão simples, vamos mudar o número 9 da base decimal para binária. Vamos usar o método de divisão e resto (NULL & LOBUR, 2011), que serve apenas a números inteiros sem sinal. Repare que os dígitos da base binária vão corresponder ao resto da divisão: 9 2 1 4 2 0 2 2 0 1 2 1 0 Os passos feitos foram esses: • Dividindo-se 9 por 2, temos 4 com resto 1. • Dividindo-se 4 por 2, temos 2 com resto 1. • Dividindo-se 2 por 2, temos 1 com resto 0, para converter precisa- mos fazer mais uma divisão. • Atenção: dividindo-se 1 por 2, considera-se o resultado 0 com resto 1. Usando os restos, na or- dem da esquerda para a direita, temos: (9)10 = (1001)2 Conexão: Conheça um ferramenta na Web para conversão entre bases numéricas: http://wims.unice.fr/wims/en_ tool~number~baseconv.en.html Acesso em: 24 jul. 2014.
  • 42. 42 Organização de Computadores Proibidaareprodução–©UniSEB 2.3  Representação de caracteres Até agora exploramos a representação de números, mas como se tratam as letras do alfabeto e os caracteres em geral? Também no pós- -guerra, ainda em um contexto de escassez de memória, os sistemas computacionais adotaram o padrão ASCII (American Standard Code for Information Interchange). Binário Decimal Caractere Binário Decimal Caractere Binário Decimal Caractere 0010 0000 32 0100 0000 40 @ 0110 0000 96 ` 0010 0001 33 ! 0100 0001 41 A 0110 0001 97 a 0010 0010 34 “ 0100 0010 42 B 0110 0010 98 b 0010 0011 35 # 0100 0011 43 C 0110 0011 99 c 0010 0100 36 $ 0100 0100 44 D 0110 0100 100 d 0010 0101 37 % 0100 0101 45 E 0110 0101 101 e 0010 0110 38 & 0100 0110 46 F 0110 0110 102 f 0010 0111 39 ‘ 0100 0111 47 G 0110 0111 103 g 0010 1000 40 ( 0100 1000 48 H 0110 1000 104 h 0010 1001 41 ) 0100 1001 49 I 0110 1001 105 i 0010 1010 42 * 0100 1010 4A J 0110 1010 106 j 0010 1011 43 + 0100 1011 4B K 0110 1011 107 k 0010 1100 44 , 0100 1100 4C L 0110 1100 108 l 0010 1101 45 - 0100 1101 4D M 0110 1101 109 m 0010 1110 46 . 0100 1110 4E N 0110 1110 110 n 0010 1111 47 / 0100 1111 4F O 0110 1111 111 o 0011 0000 48 0 0101 0000 50 P 0111 0000 112 p 0011 0001 49 1 0101 0001 51 Q 0111 0001 113 q 0011 0010 50 2 0101 0010 52 R 0111 0010 114 r 0011 0011 51 3 0101 0011 53 S 0111 0011 115 s 0011 0100 52 4 0101 0100 54 T 0111 0100 116 t 0011 0101 53 5 0101 0101 55 U 0111 0101 117 u 0011 0110 54 6 0101 0110 56 V 0111 0110 118 v 0011 0111 55 7 0101 0111 57 W 0111 0111 119 w 0011 1000 56 8 0101 1000 58 X 0111 1000 120 x 0011 1001 57 9 0101 1001 59 Y 0111 1001 121 y 0011 1010 58 : 0101 1010 5A Z 0111 1010 122 z
  • 43. 43 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB 0011 1011 59 ; 0101 1011 5B [ 0111 1011 123 { 0011 1100 60 < 0101 1100 5C 0111 1100 124 | 0011 1101 61 = 0101 1101 5D ] 0111 1101 125 } 0011 1110 62 > 0101 1110 5E ^ 0111 1110 126 ~ 0011 1111 63 ? 0101 1111 5F _ Quadro 2.4 – Tabela ASC II – Caracteres imprimíveis. Fonte: (MONTEIRO, 2007). Esse padrão foi desenvolvido para os sistemas de telex originalmen- te, o que se reflete na definição de 33 caracteres não imprimíveis que hoje estão na maioria obsoletos e a reserva de um dígito para controle de erro (MURDOCCA & HEURING, 2000). O quadro 4 apresenta os caracteres imprimíveis do ASC II e a sua correspondência binária. Assim, usando esse padrão, um sistema compu- tacional lê “01000000” como “@”, “01111010” como “z”, etc. desde que tenha sido definido que o dado é um caracter não um número. Os limites do ASC, especialmente para lidar com caracteres de al- fabetos além do latino e caracteres especiais, fez com que os construtores de hardware e desenvolvedores de software ampliassem os caracteres de- finidos. Nesse contexto, destaca-se o padrão Unicode ((NULL & LOBUR, 2011). 2.4  Tipos de dados e uso de variáveis em algoritmos O principal objetivo dos algorit- mos computacionais é a manipulação de informações, as quais podem ser especificadas pelo usuário, ou geradas ao longo da execução do algoritmo. Para manipulação de informações nos algoritmos é ne- cessário a utilização de um recur- so denominado variáveis. De acordo com o tipo de informação que será armazenado, é necessário especificar o tipo que será a variável. Este conceito é conhecido como tipo Uma variável é um elemento sintático do algoritmo que tem como funcionalidade armazenar um determinado valor. O valor associado a variável depende do tipo de informação que se deseja manipular, assim, diversos tipos de valores podem ser atribuí- dos as variáveis.
  • 44. 44 Organização de Computadores Proibidaareprodução–©UniSEB de dados. Um tipo de dados determina quais tipos de operações e quais tipos de valores podem ser manipulados pelas variáveis. O tipo de dados mais comum existente é utilizado para a manipu- lação de valores numéricos do tipo inteiro. As variáveis do tipo de dados inteiro armazenam valores do tipo: 25, 32, 0, 45, -92, -853, entre outros. Para demonstrar a utilização deste tipo de dados, bem como, a declaração de variáveis nos algoritmos, vamos codificar nosso segundo exemplo. A figura 5 apresenta o código do algoritmo capaz de realizar a soma de duas variáveis do tipo inteiro. Este algoritmo foi nomeado como unid3_exem- plo02.alg. Figura 4 – Codificação do algoritmo capaz de realizar a soma de dois números inteiros. No algoritmo da figura 5 é importante notar o bloco de declaração de variáveis, o qual é codificado nas linhas 6, 7, 8 e 9. A linha 6 contém a palavra reservada var, que indica o início do bloco de declaração de vari- áveis. Na linha 7 é apresentada a declaração de uma variável denominada a do tipo inteiro. As linhas 8 e 9 declaram mais duas variáveis do tipo inteiro, definidas como b e soma. Você pode perceber com as declarações das variáveis um padrão sintático, o qual é representado por: nome_da_variável: tipo_da_variável Os algoritmos computacionais, bem como as linguagens de progra- mação possuem algumas regras para a nomeação das variáveis. Uma va- riável deve obrigatoriamente iniciar como um caractere literal, assim, não é possível declarar variável que comecem com um número, por exemplo,
  • 45. 45 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB 1soma. Outro detalhe importante é que nomes de variáveis não podem conter espaços, por exemplo, soma total, então, caso seja necessário, você poderá utilizar o caractere sublinhado (underline), da seguinte maneira: soma_total. Outra regra importante sobre a identificação de variáveis é não utilizar caracteres especiais, tais como @, #, $, %, bem como, não utilizar acentos de qualquer tipo. Observando ainda o algoritmo apresentado na figura 5, é importante notar as linhas 12 e 13 que armazenam valores nas variáveis a e b. O ter- mo computacional que indica o armazenamento de um valor em uma vari- ável é atribuição. Assim, a linha número 12 atribui o valor 10 à variável a, e da mesma maneira, a linha 13 atribui o valor 20 à variável denominada b. Na linha 16 é apresentada uma atribuição como sendo o resultado de uma expressão aritmética de adição, por conseguinte, a variável soma re- cebe o resultado da operação da variável a somado com a variável b. Finalmente, na linha 19 é apresentado na tela o resultado da soma dos valores. É importante destacar que a instrução escreva é utilizada para exibir uma informação na tela, em que todas as informações textuais de- vem ser especificadas entre “aspas duplas”. Para a escrita de variáveis na tela, não é necessário utilizar as aspas duplas. O resultado da execução do algoritmo é apresentado na figura 6. Figura 5 – Resultado da execução do algoritmo. Outro tipo de dado utilizado para a manipulação de informações numéricas é denominado real. Com o tipo de dados real é possível reali- zar operações com números que contenham casas decimais, por exemplo, 2.34, 4.48, -5.82, 0.004, entre outros. Um detalhe importante que merece destaque é com relação ao símbolo utilizado para separação das casas de- cimais. Geralmente, pelo fato das linguagens de programação utilizarem instruções na linguagem inglesa, a separação das casas decimais é reali- zada com o símbolo de . (ponto), no entanto, é possível criar mecanismos capazes de efetuar a substituição do ponto pelo símbolo de , (vírgula) utilizado para separar a parte fracionária no Brasil. Para demonstrar a uti- lização de números do tipo real, considere o problema de calcular a média
  • 46. 46 Organização de Computadores Proibidaareprodução–©UniSEB de um conjunto numérico. Podemos utilizar como exemplo, a necessidade de calcular a média de notas de um conjunto de cinco alunos, por isso, a figura 7 apresenta o resultado da codificação deste exemplo. Antes da exe- cução, o arquivo foi salvo com o nome de unid3_exemplo03.alg. Neste algoritmo é importante notar a declaração das variáveis nota1, nota2, nota3, nota4 e nota5. Na linha 8, as variáveis que receberão os va- lores referentes as notas são declaradas em uma mesma linha. Este tipo de declaração é possível, pois todas as variáveis são do mesmo tipo. Dessa forma, é possível simplificar a seção de declaração das variáveis. No en- tanto, a escolha de como as variáveis serão declaradas, é exclusivamente do programador, e este fato não interfere no desempenho da execução do algoritmo ou do programa. Caso preferir, o programador pode declarar as variáveis individualmente, uma em cada linha, como apresentado na lista- gem código 2. Código 2 1 var 2 nota1: real 3 nota2: real 4 nota3: real 5 nota4: real 6 nota5: real 7 media: real Figura 6 – Algoritmo que demonstra a utilização de variáveis do tipo real.
  • 47. 47 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB O resultado da execução do algoritmo é apresentado na figura 8. Na execução é importante notar que na separação das casas decimais o Visu- Alg utiliza o símbolo de ponto. Figura 7 – Resultado da execução do algoritmo. Para manipulação de informações literais, as linguagens de progra- mação e os algoritmos, possuem um tipo específico denominado carac- tere. Com este tipo de dados é possível armazenar e manipular qualquer tipo de valor, tais como uma letra do alfabeto, um símbolo, um número, entre outros. Em linguagens de programação de alto nível, tais como Java ou C#, a manipulação de caracteres pode ser realizada individualmente, com um tipo exclusivo chamado char, ou ainda, por meio de um conjunto de caracteres, com um tipo de dados específico conhecido como string. A figura 9 apresenta um algoritmo que realiza a manipulação de infor- mações com o tipo de dados caractere. Este exemplo foi nomeado como unid3_exemplo04.alg. Figura 8 – Algoritmo que demonstra a manipulação de informações com o tipo de dados caractere.
  • 48. 48 Organização de Computadores Proibidaareprodução–©UniSEB Neste exemplo é importante notar que os valores do tipo caracte- re são representados entre aspas duplas, como pode ser visualizado nas linhas 13 e 14. Porém, algumas linguagens de programação realizam a separação entre a representação de um único caractere, e a definição de um conjunto de caracteres. Geralmente, a especificação de um único caractere é definida utilizando aspas simples, por exemplo, ‘M’, e a indicação de um conjunto de caracteres é realizada com aspas duplas, por exemplo, “João da Silva”. Na linguagem VisuAlg, tanto a repre- sentação de um único caractere, quanto de vários, é realizada com as- pas duplas. O resultado da execução do algoritmo pode ser visualizado na figura 10. Figura 9 – Resultado da execução do algoritmo. Os algoritmos ainda possuem um tipo de dados específico utilizado para manipulação de valores lógicos, os quais são conhecidos em progra- mação como booleanos. Um tipo de dados booleano permite o armazena- mento de valores lógicos, por exemplo, verdadeiro (true) ou falso (false). Em programação, um valor lógico pode ser utilizado para expressar a presença ou ausência de uma determinada informação, tal como, um valor do tipo sim ou não. Na linguagem algorítmica, o tipo de dados booleano é definido como lógico. Para demonstrar a utilização do tipo de dados lógico, vamos codifi- car mais um algoritmo. Este exemplo, nomeado como unid3_exemplo05. alg, apresenta um algoritmo que manipula informações de todos os tipos de dados existentes, sendo eles inteiro, real, caractere e lógico. No exem- plo, é importante destacar a atribuição de um valor lógico, que ocorre na linha 18. Na linguagem algorítmica utilizada pelo ambiente VisuAlg, uma va- riável do tipo lógico pode assumir dois valores, verdadeiro ou falso, e nes- te caso a atribuição de valores lógicos também utiliza os possíveis valores (verdadeiro ou falso). A figura 11 apresenta o resultado da codificação do algoritmo.
  • 49. 49 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Figura 10 – Algoritmo que demonstra a utilização dos principais tipos de dados e apresenta a manipulação de valores do tipo lógico. O resultado da execução do algoritmo, que pode ser visualizada uti- lizando o menu Algoritmo>Executar, é apresentada na figura 12. Figura 11 – Resultado da execução do algoritmo. Com isso, você conheceu os principais tipos de dados que podem ser utilizados para manipulação de informações nos algoritmos e progra- mas. O próximo passo é aprender como ler informações fornecidas pelo usuário, e como apresentar resultados na tela. Atividades 01. Pesquise sobre a origem da linguagem binária, antes de seu uso pela computação. 02. Por que o sistema binário é mais adequado para o uso em dispositvos eletrônicos? 03. Decomponha 19583 em potências de base 10.
  • 50. 50 Organização de Computadores Proibidaareprodução–©UniSEB 04. Converta 19583 na base binária. 05. Decomponha o resultado do exercício 4 em potências de base 2. 06. Pesquise sobre o padrão UNICODE e identifique os grupos de carac- teres que são definidos. Reflexão Neste capítulo, entendemos melhor como o computador e dispositi- vos eletrônicos podem representar números e letras. Também vimos que o sistema binário permite manipulações aritméticas, o que seria suficiente para caracterizar uma calculadora. Contudo, como os sistemas computa- cionais conseguem fazer tarefas variadas como reconhecer voz e ajudar em diagnósticos médicos? Como essas tarefas se traduzem em processa- mento de dados? Leitura recomendada LEVY, S. Os Heróis da Revolução. São Paulo: Evora, 2012. Comentário: a descrição de como computadores funcionam pode ser um as- sunto bastante árido se esquecermos as pessoas e as motivações que residem por cada característica da computação.Ao traçar o panorama dos atores que ajudaram a desenvolver os primeiros sistemas computacionais, passando pelos PCs, chegando aos programadores de aplicativos móveis, Levy nos mostra a feição humana, entu- siasmada e obsessiva dos responsáveis pela revolução digital. Referências bibliográficas BBC. Y2K around the word. BBC, website. <http://news.bbc.co.uk/hi/ english/static/millennium_bug/countries/default.stm>. Acesso em: 19 jun. 2014. CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice Hall. 2004. LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren- ciais. São Paulo: Prentice Hall. 2007.
  • 51. 51 Representação de Dados – Capítulo 2 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB LEUNG, L. How much data x store? Techexpectations, 13 mar. 2014. Disponível em: <http://techexpectations.org/2014/05/17/how- much-data-does-x-store/>. Acesso em: 19 jun. 2014. MCKENNA, B. What does a petabyte look like? Computer Weelky, março 2013. Disponível em: <http://www.computerweekly.com/featu- re/What-does-a-petabyte-look-like>. Acesso em: 19 jun. 2014. MONTEIRO, M. A. Introdução à Organização de Computadores. 5a ed. São Paulo: LTC, 2007. MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de Computadores. Rio de Janeiro: Campus, 2000. NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi- zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010. REBER, P. What is the memory capacity of the human brain? Scientific American, maio/junho, 2010. Disponível em: <http://www. scientificamerican.com/article/what-is-the-memory-capacity/>. Acesso em: 19 jun. 2014. SCHONFELD, E. Google processing 20,000 terabytes a day, and growing. Techcrunch, website, 9 jan. 2008. Disponível em: <http:// techcrunch.com/2008/01/09/Google-processing-20000-terabytes-a- day-and-growing/>. Acesso em. 19 jun 2014. SMAAL, 2011. 2038: o bug do milênio atacará novamente. Tec- mundo, website, 25 fev 2011. Disponível em: <http://www.tecmundo. com.br/historia/8795-2038-o-bug-do-milenio-atacara-novamente.>. Acesso em: 19 jun. 2014. STALLINGS, W. Arquitetura e Organização de Computadores. São Paulo: Prentice Hall, 2002. No próximo capítulo No próximo capítulo, conheceremos a álgebra booleana, que permi- te que os computadores possam manipular os dados logicamente.
  • 53. Capítulo3 Álgebra Booleana e Operações Lógicas em Algoritimos No capítulo anterior, vimos a forma como dados podem ser representados no computador em base nú- mérica, ou seja, passível de operações como aritméticas de adição. Mas quando usamos um caixa eletrônico, por exemplo, há diversas outras operações envolvidas. A simples comparação da senha que digitamos com aquela registrada pede uma operação lógica que deve responder “a senha confere” ou “a senha não confere”. Em um videogame, cada uma das ações do jogador tem determinadas consequências tanto para o encadea- mento posterior de eventos, quanto para o próprio ambiente do jogo. Esses são apenas exemplos de como o processamento de dados depen- de de operações lógicas (LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004). A implementação dessas operações em computador estão, por sua vez, baseadas na álgebra booleana, tema principal deste capítulo. Objetivos da sua aprendizagem • Compreender os operadores principais da álgebra booleana. • Construir tabelas verdade para cada operador. • Identificar símbolos de portas lógicas. • Entender como os operadores aritméticos e lógicos são implementa- dos em algoritmos. Você se lembra? No primeiro capítulo, foi dado o exemplo da receita de bolo como um algoritmo não computacional. Como outros algorit- mos, a receita de bolo é um conjunto de instruções formali- zado para resolver um problema e, nesse caso específico, as instruções seguem umas às outras diretamente. Bus- que pensar em algoritmos condicionais, ou seja, cuja realização de instruções depende de condições e também de resultados de instruções anteriores.
  • 54. 54 Organização de Computadores Proibidaareprodução–©UniSEB 3.1  Álgebra booleana Segundo Linda Null e Julia Lobur, a álgebra booleana é “uma álge- bra para a manipulação de objetos que podem assumir somente dois valo- res, normalmente verdadeiro ou falso” (NULL & LOBUR, 2011, p. 141). É fácil entender que essa álgebra seja adequada ao computadores, os quais funcionam usando a linguagem binária. A seguir, vamos falar da origem da álgebra booleana para, a seguir, passar para seus operadores. 3.1.1  Origens A linguagem binária se tornou um componente fundamental da computação, mesmo tendo sido desenvolvida muito antes dos primeiros computadores. O mesmo aconteceu com a álgebra booleana: nascida no séc. XIX fruto da formalização do pensamento lógico realizada por Geor- ge Boole, um grande matemático inglês (figura 1). A motivação de Boole era encontrar e formalizar leis universais do raciocínio, aproximando este da álgebra matemática. Esse esforço foi estruturado em sua obra “As Leis do Pensamento”, de 1854 (NULL & LOBOUR, 2011). Figura 1 – George Boole (1814 – 1864) Fonte: http://en.wikipedia.org/wiki/George_Boole#mediaviewer/ File:George_Boole_color.jpg. Acesso em: 24 jul. de 2014. Uma ilustração simples da álgebra booleana pode ser dada avalian- do as três afirmações abaixo: Afirmação 1: Ana foi ao cinema. Afirmação 2: Paulo foi ao show. Afirmação 3: Ana foi ao cinema E Paulo foi ao show.
  • 55. 55 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Para a afirmação 3 ser verdadeira, tanto a afirmação 1 quanto a 2 devem ser também. Se Ana não foi ao cinema, ou se Paulo não foi ao show, já fica comprometida a afirmação feita sobre os dois. Perceba que a afirmação 3 equivale considerar a afirmação 1 e a afirmação 2 simultanea- mente. Podemos organizar o que foi dito até aqui por uma tabela-verdade, a qual relaciona os valores de proposições e operadores lógicos. Com esse fim, vamos usar a notação: Afirmação 1: p Afirmação 2: q Afirmação 3: Afirmação 1 E Afirmação 2: p.q V: proposição verdadeira F: proposição falsa. Desse modo, a tabela-verdade fica: p q p • q V V V V F F F V F F F F Podemos ainda explicar mais um operador lógico a partir da seguin- te assertiva: Afirmação 4: Ana foi ao cinema OU Paulo foi ao show. : Afirmação 1 OU Afirmação 2: p + q A afirmação 4 será verdadeira caso ambas as afirmativas sejam ver- dadeiras, mas também caso somente uma delas seja. Por exemplo, mesmo Paulo não tendo ido ao show, basta que Ana tenha ida ao cinema para ga- rantir essa veracidade. A afirmativa 4 só será falsa se ambas as afirmativas também o forem. Consequentemente, a tabela-verdade neste caso terá a seguinte configuração: p q p+q V V V V F V F V V F F F
  • 56. 56 Organização de Computadores Proibidaareprodução–©UniSEB Figura 2 – Labirinto Teseu de Claude Shannon (Museu do MIT) Fonte: Labirinto Teseus de Claude Shannon (Museu do MIT) http:// commons.wikimedia.org/wiki/Category:Claude_Shannon#mediaviewer/ File:Theseus_Maze_by_Claude_Shannon,_1952_-_MIT_ Museum_-_DSC03702.JPG. Acesso em: 24 jul. de 2014. A utilidade da álgebra booleana e suas tabelas verdade para circui- tos elétricos foi estabelecida pelo americano Charles Shannon em sua dissertação de mestrado de 1937, concluída no MIT. Em lugar dos valores “falso” ou “verdadeiro”, os circuitos poderiam operar por essa álgebra usando os “zeros” e “uns”. Essa adaptação lançou as bases da computação que conhecemos hoje. Shannon ainda ajudou a criar os fundamentos da teoria da informação e da inteligência artificial. Um dos seus experimen- tos famosos foi um “rato eletromecânico” programado a encontrar a saída de um labirinto (figura 2) e capaz de acumular conhecimento a cada entra- da no mesmo labirinto. (GLEICK, 2011). Na sumarização seguinte da álgebra booleana, vamos usar os dígitos binários. Assim, “0” será equivalente a “falso” e, consequentemente, 1 a “verdadeiro”. Além de formalizar nesses termos os operadores E e OU já vistos, vamos ainda definir a Negação, XOR, NOT e NAND, baseando-se em Murdocca e Heuring (2000), Monteiro (2007) e Stallings (2002). 3.1.2  Operador E (Conjunção ou AND) Uma expressão com operador E resulta 1 somente se as suas entra- das forem todas iguais a 1. O funcionamento é análogo ao exemplo da seção anterior com a afirmativa 3. Considerando duas entradas, p e q, a notação de “p E q” já foi vista: p . q
  • 57. 57 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Existem outras notações para operado- res vistos aqui e que podem ser comumente encontradas na disciplina de Raciocínio Lógico: Operador E: p • q. Operador OU: p + q. Operador Negação: _ p Chama-se essa expressão também de produto booleano, ou multi- plicação lógica. Abaixo está a tabela-verdade para o operador E com duas entradas: p q p • q 1 1 1 1 0 0 0 1 0 0 0 0 3.1.3  Operador OU (Disjunção ou OR) Uma expressão com operador OU resulta em 0 somente se as suas entradas forem todas iguais a 0. Aqui temos um comportamento análogo ao exemplo anterior com a afirmativa 4. Considerando duas entradas, p e q, já conhecemos a notação de “p OU q”. p + q Essa expressão também é no- meada de soma booleana, ou adição lógica. A tabela-verdade para o operador OU com duas entradas está a seguir: p q p+q 1 1 1 1 0 1 0 1 1 0 0 0 3.1.4  Operador Negação (Inversão ou NOT) Esse operador simplesmente inverte a entrada. Ou seja, se a entrada é 0 o operador o transforma em 1, e vice-versa. Com uma entrada p, a no- tação de “p negado” é: ~p A tabela-verdade para esse operador é: p ~p 1 0 0 1
  • 58. 58 Organização de Computadores Proibidaareprodução–©UniSEB 3.1.5  Operadores XOR, NOR, NAND Os operadores AND, OR e NOT podem ser combinados e aplicados sucessivamente a entradas. Três dessas combinações encontram uso cor- rente em sistemas computacionais: Disjunção exclusiva (XOR) O resultado dessa operação é 1 se, e somente se, apenas uma das entradas for 1. A tabela-verdade do operador XOR é: p q (p • ~q) + (~p • q) 1 1 0 1 0 1 0 1 1 0 0 0 • NEM (NOR) O resultado dessa operação é 1 se, e somente se, todas as entradas forem 0. A tabela-verdade do operador NOR é: p q ~ (p + q) 1 1 0 1 0 0 0 1 0 0 0 1 • NOU (“Não... e...”, NAND) O resultado dessa operação é 1 se pelo menos uma entrada for 0. A tabela verdade do operador NOU é: p q ~ (p + q) 1 1 0 1 0 1 0 1 1 0 0 1 Conexão: Para aprofundar seus conhecimentos sobre álgebra booleana, leia o texto dispo- nível em: http://www.inf.ufsc. br/~guntzel/isd/isd2.pdf Acesso em: 24 jul. de 2014.
  • 59. 59 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB 3.2  Portas lógicas A adaptação de Claude Shannon da álgebra booleana é também de- nominada álgebra de chaveamento devido à orientação inicial para circui- tos que podiam estar ligados ou desligados por chave. Essa álgebra é usa- da na construção de circuitos físicos, que podem modificar os sinais digitais conforme estabe- lecido por seu desenho. Devido a esse uso, há símbolos gráficos para cada operador, chamadas portas lógicas, o que facilita o trabalho em circuitos complexos. Na tabe- la a seguir, as entradas são representadas pelos traços à esquerda, podendo ser, cada uma, zero ou um. A saída é representada pelo traço à direita, também obedecendo à base binária. AND Operador Símbolo OR NOT XOR NOR NAND Fonte: http://commons.wikimedia.org/wiki/File:NAND_ ANSI.svg. Acesso em: 24 jul. de 2014. Para fins didáticos, tratamos de operações, portas lógicas e símbolos com apenas duas entradas. No caso abaixo, temos um operador AND com três entradas de valor 1. Pela própria definição do operador, a saída tam- bém será 1: 1 1 1 1 Conexão: Conheça um aplicativo gratuito para dispositivos móveis que desenha portas lógicas: https://play.google.com/store/apps/ details?id=com.Logic.gates_Xor.en Acesso em: 24 jul. de 2014.
  • 60. 60 Organização de Computadores Proibidaareprodução–©UniSEB Em 1997, o supercomputador Deep Blue da IBM venceu o cam- peão mundial de xadrez Garry Kas- parov em um match de seis partidas. O evento chamou a atenção do mun- do para os avanços em inteligência artificial, estimulando a reflexão sobre os limites e as potencialidades dos computadores. Kasparov havia derrotado uma versão desse compu- tador em 1996 e acusou a IBM de fraudar a disputa em 1997. A fraude teria sido o uso de grandes mestres de xadrez para apoiar o processo de decisão do computador. De qualquer modo, a superioridade dos computa- dores nesse jogo foi reafirmada por programas de software mais inteli- gentes e que, assim, não requerem a capacidade de processamento do Deep Blue. Se este calculava até 200 milhões de posições de jogo por segundo em um estrutura complexa e dedicada, o programa Deep Fritz, rodando em Windows com processa- dores Pentium, conseguiu derrotar o campeão mundial Vladimir Kramnik em 2006 (NEWBORN, 2011). 3.3  Operações aritméticas e lógicas em algoritmos Até aqui, entendemos as operações booleanas principais. Contudo, como elas são usadas em programação? A seguir, vamos mostrar opera- ções aritméticas e lógicas implementadas em algoritmos simples, usando o visualg. Não devemos perder de vista, contudo, que são essas operações que fundamentam programas complexos e processamento de dados em grande escala. O poder analítico desse processamento nos é lembrado com frequência, como acontece com as vitórias de sistemas computacio- nais sobre grandes mestres do xadrez (ver box explicativo). Figura 3 – Supercomputador Deep Blue (Museu da História do Computador, Califórnia. Fonte: http://commons.wikimedia. org/wiki/File:Deep_Blue. jpg. Acesso 24 jul. de 2014 Figura 4 – Garry Kasparov. Fonte: http://commons.wikimedia. org/wiki/File:Kasparov-27.jpg. Acesso em 24 jul. de 2014.
  • 61. 61 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB 3.3.1  Comandos de entrada e saída Os algoritmos computacionais e os programas têm como principal funcionalidade o processamento de informações. Essas informações ge- ralmente são fornecidas pelo usuário, o qual utiliza o teclado para entrada de dados e, em um segundo momento, os resultados são apresentados em dispositivos de saída como monitor ou impressora. Durante o processo de construção de algoritmos, o programador pode contar com instruções específicas para carregar informações fornecidas pelo usuário e para apre- sentar resultados na tela, essas instruções são chamadas de comandos de entrada e saída. Para leitura de informações, o comando utilizado para entrada de dados é conhecido como leia. Assim, com este comando é possível trans- ferir uma informação digitada pelo usuário com o teclado para uma deter- minada variável no escopo do algoritmo. Por outro lado, para a apresenta- ção de uma informação na tela é utilizada um comando de saída específico denominado escreva. Para demonstrar a utilização dos comandos de entrada e saída va- mos construir uma calculadora simples de quatro operações. Nesta calcu- ladora, o usuário fornecerá dois valores números (valor1 e valor2) e serão realizados os cálculos de soma, subtração, multiplicação e divisão. Para leitura dos valores será utilizado o comando leia e para a apresentação dos resultados será necessário o comando escreva. Na linguagem algorítmica VisuAlg, existe uma variação do comando escreva denominada escreval. Este comando, além de exibir as informações desejadas na tela, também realizar a quebra de linha, ou seja, o comando é capaz de exibir uma de- terminada informação na tela e mudar de linha. Com isso, os dados não serão apresentados em uma única linha, o que facilita bastante a exibição de grandes quantidades de informações. O algoritmo que codifica a calculadora simples de quatro operações foi nomeado como unid3_exemplo06 e a figura 5 apresenta a codificação completa do exemplo.
  • 62. 62 Organização de Computadores Proibidaareprodução–©UniSEB Figura 5 – Algoritmo que codifica um cálculo simples com quatro operações. O resultado da execução do algoritmo é apresentado na figura 6. Nessa execução, os valores fornecidos como entrada foram 10 e 20. Figura 6 – Resultado da execução do algoritmo. O próximo exemplo de codificação utilizando comandos de entrada e saída tem como objetivo construir um algoritmo capaz de calcular o consumo médio de combustível de um veículo. Para isso, o usuário deverá informar como entrada os quilômetros percorridos pelo veículo e o total de litros abastecidos. Com isso, o algoritmo é capaz de determinar o con- sumo médio e o resultado é exibido na tela. Este algoritmo foi nomeado como unid3_exemplo07, e a codificação é demonstrada na figura 7.
  • 63. 63 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Figura 7 – Algoritmo para determinar o consumo médio de combustível de um veículo. O resultado da execução do algoritmo pode ser visualizado na Fi- gura 8. Os parâmetros informados na entrada foram 460 para quilômetros rodados e 50 para litros abastecidos. Figura 8 – Resultado da execução do algoritmo. 3.3.2  Operações e expressões Os computadores podem ser encarados como grandes máquinas capazes de realizar uma quantidade imensa de operações por segundo. Na evolução histórica da computação, os primeiros algoritmos foram criados com o intuito de solucionar complexas expressões em poucos segundos.
  • 64. 64 Organização de Computadores Proibidaareprodução–©UniSEB As expressões são formadas essencialmente por operadores, operandos e parênteses. De acordo com o tipo de operador utilizado, podemos criar expressões denominadas: 3.3.3  Expressões aritméticas As expressões aritméticas utilizam os operadores aritméticos da matemática tradicional para criar expressões capazes de resolver os mais variados tipos de funções. Neste grupo, os principais operadores utiliza- dos são soma (+), subtração (–), multiplicação (*), divisão (/) e resto da divisão (%). A figura 9 apresenta a codificação de um algoritmo que utiliza ex- pressões aritméticas para resolver um polinômio. Este algoritmo foi no- meado como unid3_exemplo08.alg. Figura 9 – Algoritmo computacional que utiliza expressões aritméticas. A figura 18 apresenta o resultado da execução do algoritmo. Figura 10 – Resultado da execução do algoritmo.
  • 65. 65 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Em uma expressão relacional o resulta- do produzido pela avaliação da expressão é sempre um valor lógico. Assim, uma expres- são relacional resulta em um valor do tipo verdadeiro ou falso. 3.3.4  Expressões relacionais Quando construímos algoritmos é muito comum a necessidade de comparar, ou estabelecer relações entre determina- dos operandos. Para isso, podemos utilizar um conjunto específico de operadores capazes de produzir ex- pressões relacionais. Os operadores relacionais conhecidos são: • maior (>) • menor (<) • menor ou igual (<=) • maior ou igual (>=) • igual (=) • diferente (<>). A figura 11 demonstra a construção de um algoritmo computacional que utiliza expressões relacionais. Note no algoritmo que todos os opera- dores relacionais são expressões por meio de símbolos. Este algoritmo foi nomeado como unid3_exemplo09.alg. Figura 11 – Algoritmo computacional que demonstra a utilização de expressões e operadores relacionais.
  • 66. 66 Organização de Computadores Proibidaareprodução–©UniSEB A figura 12 apresenta o resultado da execução do algoritmo. Figura 12 – Resultado da execução do algoritmo. 3.3.5  Expressões lógicas Na construção de algoritmos com- putacionais também é possível criar expressões a partir de operadores lógi- cos. Estas expressões são conhecidas como expressões lógicas. Para cria- ção de uma expressão lógica é neces- sário utilizar operadores booleanos, em que os principais são: • negação (NOT) • conjunção1 (E) • disjunção (OU) • disjunção-exclusiva (XOR) Na figura 13 é apresentada a codificação de um algoritmo capaz de cal- cular a tabela-verdade a partir de expressões lógicas. Neste exemplo é possível determinar um dos principais conceitos da lógica matemática conhecido como tabela-verdade. Este algoritmo foi nomeado como unid3_exemplo10.alg. Para um estudo aprofundado a respeito de tabelas verdade, você poderá con- sultar as seguintes referências: http://pt.wikipedia.org/wiki/Tabela_verdade http://www.calculadoraonline.com.br/tabela-verdade 1 Oportunidade; ocasião; conjuntura. Conexão: Os operadores lógicos são muito importantes para a construção de programas, principalmente para a elaboração de expressões relacionais compostas. Para complementar seu estudo você poderá utilizar a seguinte referência: http://pt.wikipedia.org/wiki/ Operadores_l%C3%B3gicos Acesso em 24 jul. de 2014.
  • 67. 67 Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3 EAD-14-OrganizaçãodeComputadores–Proibidaareprodução–©UniSEB Figura 13 – Algoritmo computacional que demonstra a utilização de expressões e operadores lógicos. A figura 14 apresenta o resultado da execução do algoritmo. Figura 14 – Resultado da execução do algoritmo. Com isso, concluímos o estudo a respeito dos operadores e das ex- pressões aritméticas, relacionais e lógicas. Aproveite este momento para construir algoritmos a partir das atividades propostas.