Buscar

Introdução à Computação - Aulas (parte 1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 289 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 289 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 289 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução a Ciência da 
Computação 
Ana Luiza Bessa Barros 
analuiza@larces.uece.br 
Sejam Bem-vindos ao 
Curso de Ciência da 
Computação da UECE 
Slides baseados na seguinte referência: 
 
Dale, Nell; Lewis, John. Ciência da Computação. Quarta Edição. LTC, 2011. 
Sistemas Computacionais 
Qual a diferença entre 
Computador e Sistema 
Computacional??? 
Sistema Computacional 
 Entidade dinâmica, usada para resolver problemas e 
interagir com o seu ambiente 
 
 Composta por : 
 Hardware 
 Software 
 Dados 
Computador 
 Dispositivo 
Coleção de elementos físicos que formam a máquina com suas 
respectivas partes 
Hardware Computacional 
Coleção de elementos físicos que formam a máquina com suas 
respectivas partes 
Hardware Computacional 
Coleção de programas que fornecem as instruções para um 
computador funcionar 
Software Computacional 
Sem dados, o hardware e o software são inúteis!!! 
Dados 
Informação 
Hardware 
Programação 
Sistemas Operacionais 
Aplicativos 
Comunicações 
Camadas de um Sistema Computacional 
Modo como a informação é 
representada 
 
Informação em um computador é 
gerenciada usando dígitos binários, 1 e 0 
Para compreender o 
processamento 
computacional 
• Entender o sistema de numeração binária e sua 
relação com outros sistemas de numeração 
 
• Entender como representar em um formato binários 
a diversidade de tipos de informações que são 
gerenciadas – números, textos, imagens, áudio, vídeo 
Informação 
Hardware 
Programação 
Sistemas Operacionais 
Aplicativos 
Comunicações 
Camadas de um Sistema Computacional 
Parte física de um sistema computacional 
• Inclui dispositivos como portas e circuitos que controlam o fluxo de eletricidade 
 
• Esse núcleo de circuitos eletrônicos dá origem a componentes de hardware especializados, 
como a unidade central de processamento de um computador (CPU) e a memória 
Informação 
Hardware 
Programação 
Sistemas Operacionais 
Aplicativos 
Comunicações 
Camadas de um Sistema Computacional 
Lida com o software, as instruções usadas 
para realizar cálculos e gerenciar dados 
Programas podem assumir muitas formas, serem executados em vários níveis e implementados 
em muitas linguagens, mas o objetivo é sempre o mesmo: resolver problemas 
Informação 
Hardware 
Programação 
Sistemas Operacionais 
Aplicativos 
Comunicações 
Camadas de um Sistema Computacional 
Todo computador tem um sistema 
operacional 
 
Ajuda a gerenciar os recursos 
computacionais 
 
Ajuda a interagir com o sistema 
computacional e a gerenciar a forma 
pela qual dispositivos de hardware, 
programas e dados interagem entre si 
 
Ex: Windows, Linux, Mac OS 
Informação 
Hardware 
Programação 
Sistemas Operacionais 
Aplicativos 
Comunicações 
Camadas de um Sistema Computacional 
Objetivo: utilização do computador 
para solução de problemas específicos 
do mundo real 
 
Ex: projetar um edifício, jogar, editar 
uma música 
Informação 
Hardware 
Programação 
Sistemas Operacionais 
Aplicativos 
Comunicações 
Camadas de um Sistema Computacional 
Tecnologia computacional também é 
utilizada para comunicação 
 
Computadores são ligados em rede 
para que possam compartilhar 
informações e recursos 
Tudo isso é para dizer o que um computador 
pode fazer e como ele o faz 
No entanto, computadores têm limitações inerentes à capacidade 
deles em representar informação e eles são tão bons apenas quanto a 
programação deles os faz ser 
Abstração 
Um motor de carro e a abstração 
que nos permite usá-lo 
Abstração 
Modelo mental, uma maneira de pensar sobre alguma coisa, que remove ou 
esconde detalhes complexos 
Quando estamos lidando com um computador em uma camada, não 
precisamos ficar pensando sobre os detalhes das outras camadas 
História da Computação 
Uma Breve História do Hardware Computacional 
Computação 
Computador 
Computar 
Ato ou efeito de computar 
• Aquele que cômputos, que calcula 
• Máquina capaz de receber, armazenar e enviar dados, e de efetuar, 
sobre eles, operações aritméticas (como cálculos) e lógicas 
(como comparações), com o objetivo de resolver problemas 
• Fazer a contagem, o cômputo de, contar 
• Calcular 
• Confrontar, comparar 
• Contar 
História inicial 
A história do computador, ao contrário do que muitos podem imaginar, tem seu início 
há muito tempo atrás, desde quando o homem descobriu que somente com os dedos, 
ou com pedras e gravetos, não dava mais para fazer cálculos... 
Então foi criado, há aproximadamente 4.000 
a.C., um aparelho muito simples formado por 
uma placa de argila onde se escreviam 
algarismos que auxiliavam nos cálculos. Esse 
aparelho era chamado de ÁBACO - palavra 
de origem Fenícia. 
4.000 a.C. 
5 50 500 5000 
1 10 100 1000 
Representação do número 
27 
27 = 20 + 7 
Ábaco 
História inicial 
Ábaco - Soma 
5 50 500 5000 
1 10 100 1000 
236 
5 50 500 5000 
1 10 100 1000 
236 + 61 = 297 
História inicial 
História inicial 
Geração Zero 
Os primeiros computadores (geração zero), apareceram no século XVII e eram 
compostos exclusivamente por elementos mecânicos 
 
 
Caracterizavam-se por uma grande rigidez no que diz respeito aos programas a executar 
 
 
Grande parte das máquinas era o que se chama hoje de máquinas dedicadas. 
História inicial 
Século XVII 
 Blaise Pascal construiu e vendeu máquinas mecânicas movidas a engrenagens que 
realizavam adição e subtração de números globais 
 
Ano de 1642  um francês de 18 anos de nome Blaise Pascal, inventou a primeira 
máquina de somar: PASCALINA, a qual executava operações aritméticas quando se 
giravam os discos interligados, sendo assim a precursora das calculadoras mecânicas. 
Pascalina - 1642 
História inicial 
Século XVII 
 
 Gottfried Wilhelm von Leibniz construiu o primeiro dispositivo mecânico destinado a 
fazer as quatro operações com números globais: adição, subtração, multiplicação e 
divisão 
Ano de 1671 (Alemanha)  Gottfried Leibniz inventou uma máquina muito parecida 
com a Pascalina, que efetuava cálculos de multiplicação e divisão, e qual se tornou a 
antecessora direta das calculadoras manuais. 
Calculadora de Leibniz - 1673 
História inicial 
Século XVIII 
Joseph Jacquard desenvolveu o tear de 
Jacquard, usado para produzir tecidos 
• Usava uma série de cartões com furos 
para determinar o uso de fios coloridos 
específicos para definir o desenho que 
seria estampado no tecido 
• Não era um dispositivo de computação, 
mas foi o primeiro a fazer uso de uma 
importante forma de entrada: os 
cartões perfurados 
Ano de1802 (França)  Joseph Marie Jacquard passou a utilizar Cartões 
Perfurados para controlar suas máquinas de tear e automatizá-las. 
Tear de Jacquard - 1804 
O conjunto de cartões poderia ser alterado sem alterar a estrutura da máquina têxtil 
 Foi um marco na programação 
História inicial 
Século XIX 
Início do século XIX (1822 – Inglaterra)  desenvolvida pelo cientista Charles 
Babbage uma máquina diferencial que permitia cálculos como funções 
trigonométricas e logaritmicas, utilizando os cartões de Jacquard. 
Máquina Diferencial - 1822 
Projetada para produzir tabelas matemáticas 
História inicial 
Século XIX 
Ano de 1834  Charles Babbage desenvolveu uma máquina analítica capaz 
de executar as quatro operações (somar, dividir, subtrair, multiplicar), 
armazenar dados em uma memória(de até 1.000 números de 50 dígitos) e 
imprimir resultados. 
Porém, sua máquina só pôde 
ser concluída anos após a sua 
morte, tornando-se a base para 
a estrutura dos computadores 
atuais, fazendo com que 
Charles Babbage fosse 
considerado como o "Pai do 
Computador". 
Máquina Analítica - 1834 
História inicial 
Século XIX 
Charles Babbage projetou o mecanismo analítico 
• Projeto incluía importantes componentes dos computadores atuais 
• Primeiro a incluir uma memória (valores intermediários não precisavam 
ser fornecidos novamente) 
• Incluía entrada de números e de passos mecânicos, usando cartões 
perfurados semelhantes aos de Jacquard 
• Projeto muito complexo para ser construído com a tecnologia da época  
nunca foi implementado 
Ada Augusta, condessa de Lovelace 
• Se interessou pelo trabalho de Babbage 
• Ampliou as ideias do mecanismo analítico e corrigiu alguns erros 
• É tida como a primeira programadora 
• Conceito de laço 
• Linguagem de programação Ada 
História inicial 
Século XIX 
Ano de 1890 (época do censo dos EUA)  Hermann Hollerith percebeu que só 
conseguiria terminar de apurar os dados do censo quando já seria o tempo de se 
efetuar novo censo (1900). Então aperfeiçoou os cartões perfurados (aqueles 
utilizados por Jacquard) e inventou máquinas para manipulá-los, conseguindo com 
isso obter os resultados em tempo recorde, isto é, 3 anos depois. 
Tabulador de Hollerith - 1890 
Tabulava estatísticas com Cartões Perfurados 
História inicial 
Final do século XIX e início do século XX 
Ano de 1896  Hollerith fundou uma companhia chamada TMC - Tabulation 
Machine Company 
Ano de 1914  TMC associou-se com duas outras pequenas empresas, formando a 
Computing Tabulation Recording Company (CTRC) 
Ano de 1924  CTRC torna-se a tão conhecida IBM - Internacional Business 
Machine. 
História inicial 
Final do século XIX e início do século XX 
 William Burroughs produziu e comercializou uma máquina mecânica de adição 
 
 Herman Hollerith 
 Desenvolveu o primeiro tabulador eletromecânico que lia informações a 
partir de um cartão perfurado 
 
 Criou a IBM 
Século XX 
 Em 1936, Alan Turing inventou a máquina de Turing, um modelo matemático abstrato, 
e estabeleceu a base para uma importante área da teoria da computação 
 Desenvolvimento teórico que, em si mesmo, nada tinha a ver com hardware, mas 
que influenciou profundamente a área de ciência da computação 
Hollerith 
História inicial 
Na época da Segunda Guerra Mundial, vários 
computadores estavam sendo projetados e construídos... 
 Mark I 
 ENIAC 
 EDVAC 
 Concluído em 1950 
 UNIVAC I 
 Entregue em 1951 
 Primeiro computador utilizado para prever o resultado de uma eleição 
presidencial 
 Realizou o sonho de um dispositivo que poderia rapidamente manipular números 
ENIAC 
UNIVAC UNIVAC 
História inicial 
Ábaco UNIVAC I 
Após o UNIVAC I, em 1959, começou uma expansão sem fim do uso dos computadores 
A partir desse momento, a história é classificada em “gerações”, 
com base na tecnologia empregada em cada geração 
 
Muitos consideram os mecanismos desenvolvidos até aqui como 
sendo da “Geração Zero” 
Primeira Geração (1951-1959) 
 Computadores usavam válvulas ou relés ou os dois 
 
 Relés 
 Elemento magnético 
 Sua movimentação determinava um valor binário: ou 0 ou 1, ou ligado e desligado 
 Mais confiáveis que as válvulas, mas muito mais lentos 
 Um relé demora mais de um milésimo de segundo para fechar um circuito 
 
 Válvulas 
 Câmera de vácuo por onde os elétrons fluíam num filamento, 
 Filamento: cerne das quebras (semelhante às lâmpadas de tungstênio) 
 Geravam grande quantidade de calor 
 Bem mais rápidas que os relés (até 1 milhão de vezes) 
 O fluxo de elétrons na válvula, que podia ser cessado ou intensificado, fechava 
ou abria o circuito, determinando as posições “ligado e desligado” do sistema 
binário 
 Ex: ENIAC (17.468 válvulas) 
 
 
Primeira Geração (1951-1959) 
 As máquinas precisavam de: 
 Sistemas de refrigeração de grande carga 
 Manutenção frequente 
 Salas muito grande, especialmente construídas 
 Dispositivo de memória primária 
 Cilindo magnético que girava sob uma cabeça de leitura/escrita 
 Dispositivo de entrada 
 Leitor de cartão (lia furos feitos em um cartão IBM) 
 Dispositivo de saída 
 Cartão perfurado ou impressora 
 Dispositivo de armazenamento externo à memória (dispositivos auxiliares de 
armazenamento) 
 Fita magnética (acesso sequencial) 
Vantagens das máquinas a relé sobre as máquinas de calcular mecânicas: 
• Maior velocidade de processamento 
• Possibilidade de funcionamento contínuo, apresentando poucos erros de 
 cálculo e pequeno tempo de manutenção. 
Utilização de relés e válvulas eletrônicas para a realização de 
cálculos automaticamente 
Relé Válvula 
Primeira Geração (1951-1959) 
Ano de1945  John von Neumann delineia os elementos críticos de um sistema de 
computador. 
• Consultor do projeto ENIAC 
• Criou o conceito de “programa armazenado” 
• Criou o conceito de operações com número binário 
• Desenvolveu a lógica dos circuitos 
Os programas para os 
computadores da época eram feitos 
através de modificações nos circuitos 
 
• Trabalho de dias para um programa 
relativamente simples 
Primeira Geração (1951-1959) 
Arquitetura de Von Neumann 
Memória 
Controlador 
Aritmético 
Controlador 
Central 
Dispositivo 
de E/S 
Primeira Geração (1951-1959) 
Primeira Geração (1951-1959) 
Arquitetura de Von Neumann 
• O modelo inicial evoluiu para uma estrutura em barramento, que é a base 
 dos computadores modernos 
 
• As memórias de dados e de programa são fundidas em uma memória 
 única, e as comunicações entre elementos são efetuadas através de uma 
 via comum de alta velocidade 
Primeira Geração (1951-1959) 
Arquitetura de Von Neumann 
Memória de dados 
Memória de Programas 
As válvulas representavam um grande avanço tecnológico, 
mas apresentavam os seguintes problemas: 
 
• Aquecimento demasiado provocando queima constante 
 
• Elevado consumo de energia 
 
• Eram relativamente lentas 
Válvula 
Primeira Geração (1951-1959) 
• Material semicondutor 
• Pode conduzir ou isolar energia 
• Pode ser usado como uma chave, assim como o relê ou a 
válvula, entre posições binárias 
• Bloqueiam eletricidade, ou a amplificam, dependendo da 
necessidade 
• Grande vantagem  permite que os fluxos de elétrons da energia 
precisem percorrer distâncias bem pequenas no silício, sem a 
necessidade de filamentos frágeis e partes mecânicas 
Silício 
Segunda Geração (1959-1965) 
 O transistor substituiu o relé juntamente com as válvulas 
 Menor, mais confiável, mais rápido, mais durável e mais barato 
 Transistores e outros componentes para o computador eram montados à mão 
sobre placas de circuito impresso 
 Dispositivo de memória primária 
 Feito a partir de núcleos magnéticos, minúsculos dispositivos, cada um capaz de 
armazenar um bit de informação 
 Núcleos eram amarrados com fios para formar células 
 Células eram reunidas em uma unidade de memória 
 Dispositivo não se movimentava (como no cilindro), e era acessado 
eletronicamente  a informação ficava disponível instantaneamente 
 Dispositivo auxiliar de armazenamento 
 Disco magnético 
 Mais rápido que a fita, pois cada item de dado tem um endereço e pode ser 
acessado diretamente 
 
Segunda Geração (1959-1965) 
Ano de 1952  a Bell Laboratories inventou o Transistor que passoua ser um 
componente básico na construção de computadores e apresentava as seguintes vantagens: 
 
• Aquecimento mínimo 
 
• Pequeno consumo de energia 
 
• Mais confiável e veloz do que as válvulas 
Terceira Geração (1965-1971) 
 Circuitos Integrados (CIs) – Microchip 
 Peças sólidas de silício que continham os transistores, outros componentes e as 
conexões entre eles 
 Muito menores, mais baratos, mais rápidos e mais confiáveis do que placas de circuito 
impresso 
 
 Bob Noyce  físico norte-americano criador do circuito integrado, através da 
manipulação de silício, permitindo a ligação de transistores e circuitos 
elétricos 
Terceira Geração (1965-1971) 
Waffle de Silício 
Terceira Geração (1965-1971) 
Corte do Silício 
Tamanho do Microchip 
Terceira Geração (1965-1971) 
 Lei de Moore  o número de circuitos que podem ser colocados em um 
único circuito integrado dobrou a cada ano pelo mesmo custo 
 
 Transistores foram usados para construção de memórias (cada 
transistor representava um bit de informação) 
 Os CIs permitiram que placas de memória fossem construídas com transistores 
 
 Intrdução do terminal 
 Dispositivo de E/S com um teclado e uma tela 
 Teclado  dá ao usuário acesso direto computador 
 Tela  fornece uma resposta imediata 
Terceira Geração (1965-1971) 
 Utilização da tecnologia de Circuitos Integrados: 
 
• Permitiu a substituição de dezenas de transistores numa única peça de silício 
 
• Permitiu o surgimento de computadores de menores dimensões, mais rápidos e 
menos caros 
 
• O tempo passou a ser medido em nanossegundos (bilionésimos de segundos) 
Transitores, circuitos 
integrados e válvulas 
Quarta Geração (1971-?) 
 Integração em larga escala 
 Início dos anos 1970  muitos milhares de transistores em uma pastilha de silício 
 Meados da década de 1970  microcomputador inteiro em uma pastilha 
Integração de Circuitos em Larga Escala 
 
Com o grande desenvolvimento da tecnologia de circuitos integrados, o 
número de transistores podendo ser integrados numa pastilha de silício atingiu a faixa dos 
milhares e, logo em seguida, dos milhões 
 
Surgiram os novos computadores: 
• Menores 
• Mais velozes 
• Mais poderosos que aqueles da geração anterior 
Quarta Geração (1971-?) 
Década de 80  criado o IC LSI - Integrated Circuit Large Scale Integration 
(Circuito Integrado com Larga Escala de Integração) 
• Foram desenvolvidas técnicas para se aumentar cada vez mais o número de 
componentes no mesmo circuito integrado 
• Alguns tipos de IC LSI incorporavam até 300.000 componentes em uma única pastilha. 
Lei de Moore foi modificada novamente  “computadores vão duplicar a sua 
potência pelo mesmo preço ou reduzir o seu valor à metade para a mesma 
potência, a cada 18 meses” 
Quarta Geração (1971-?) 
 Fim dos anos 1970  Computadores pessoais (PC – Personal Computer) 
 1981  PC da IBM 
 Outras companhias fabricaram máquinas compatíveis (p.ex: Dell e Compaq) 
 1984  Apple introduziu o Macintosh 
 Meados da década de 1980  workstations 
 Dirigidas para negócio e não para uso pessoal 
 Conectadas por cabos ou ligadas em rede 
 Introdução da arquitetura RISC (reduced-instruction-set-computer) 
 Computadores ainda são feitos com placas de circuitos  não pode ser marcada o fim 
dessa geração 
IBM-PC 
Quarta Geração (1971-?) 
Ano de 1981  IBM resolve entrar no mercado de microcomputadores com o IBM-PC 
IBM-PC - 1981 MMX - Micro Doméstico - 1984 
Início da era da Informática Pessoal 
Computação Paralela 
 Final dos anos 1980  computadores com arquiteturas paralelas 
 Conjunto interligado de unidades centrais de processamento 
 
 Duas classes 
 Todos os processadores compartilham a mesma unidade de memória 
 Cada processador possui sua própria memória local e se comunica com os 
outros por meio de uma rede interna muito rápida 
 
 Classes de máquinas paralelas 
 SIMD (single instruction, multiple data stream) 
 Parte do programa separa em vários pedaços e os pedaços podem ser executados 
simultaneamente em vários processadores individuais 
 MIMD (multiple instruction, multiple data stream) 
 Trabalha em diferentes partes de um programa simultaneamente 
 
 Centenas ou milhares de processadores combinados em uma máquina 
 Desafio para programação 
 Repensar a forma de programar para tirar proveito do paralelismo 
Conectividade 
 Anos 1980 
 O conceito de uma grande máquina com muitos usuários deu lugar a uma rede de 
máquinas menores interconcetadas, de modo que pudessem compartilhar recursos 
como impressoras, software e dados 
 Ethernet (1973) 
 Cabo coaxial barato para conectar as máquinas e um conjunto de protocolos para 
permitir que as máquinas se comunicassem 
 1979  DEC, Intel e Xerox se uniram para estabelecer Ethernet como um padrão 
 1989  Netware (Novell) 
 Conexão de PCss a um servidor de arquivos 
 LANs  estações de trabalho ou computadores pessoais ligados em rede 
 Internet  descendente da Arpanet (iniciada no final dos anos 1960) 
 Chavamento de pacotes (assim como a Arpanet e as LANs) 
 Muitas redes diferentes em todo o mundo que se comunicam por meio de um 
protocolo comum, TCP/IP 
Uma Breve História do Software Computacional 
O hardware de um computador pode ser 
ligado, mas ele não fará nada até que seja 
direcionado a fazê-lo pelos programas que 
constituem o software do computador 
Primeira Geração (1951-1959) 
 Primeiros programas  escritos em linguagem de máquina 
(instruções usando 0s e 1s) 
 
 Perfil do programador em linguagem de máquina 
 Lembrar o que cada combinação de dígitos significava 
 Ex: somar  00101101; subtrair  10100011; ler um número  01001101 
 Precisava ser muito bom com números e detalhes 
 Matemáticos e engenheiros 
 
 Uso de linguagem de máquina 
 Grande consumo de tempo para programação 
 Propensão a erros 
Primeira Geração (1951-1959) 
 Foram desenvolvidas ferramentas para ajudar o processo de 
programação 
 Linguagens de montagem (assembly) 
 Códigos mnemônicos para representar cada instrução em linguagem de máquina 
 ADD = 00101101; SUB = 10100011; READ = 01001101 
 
 Desenvolvimento de tradutores (assembly  linguagem de máquina) 
 Montadores 
 
 Primeiros programadores de sistemas 
Linguagem de 
máquina 
Linguagem 
de 
montagem 
Segunda Geração (1959-1965) 
 Hardware mais poderoso  necessidade de ferramentas 
mais poderosas 
 
 Linguagens de alto nível 
 Instruções  sentenças mais parecidas com o inglês 
 FORTRAN (aplicações numéricas) 
 COBOL (aplicações de negócios) 
 Lisp (inteligência artificial e pesquisa) – não foi amplamente aceita 
 
 Possibilidade de executar o mesmo programa em mais de um 
computador 
 
 Cada linguagem de alto nível tem um programa tradutor associado a ela 
(compilador) 
 
Segunda Geração (1959-1965) 
 Programadores de sistemas  escreviam ferramentas como 
montadores e compiladores 
 
 Programadores de aplicativos  usavam as ferramentas para escrever 
programas de uso geral 
 
 Os programas foram ficando cada vez mais isolados do hardware computacional 
Linguagem de 
máquina 
Linguagem 
de 
montagem 
Linguagem de alto nível 
Terceira Geração (1965-1971) 
 Sistema Operacional 
 Os recursos do computador são gerenciados por ele e não por um operador 
 Determina qual o próximo programa a ser executado e quando 
 
 Programas utilitários, como carregadorese ligadores passaram a ser 
gerenciados pelo SO 
 
 Softwares de sistema 
 SO, programas utilitários, montadores e compiladores 
 
 Compartilhamento de tempo 
 Muitos usuários diferentes, cada um em um terminal, se comunicando (entrada e 
saída) com um único computador, todos ao mesmo tempo 
 
Terceira Geração (1965-1971) 
Início da era do computador 
O usuário de computador e o 
programador eram a mesma pessoa 
Final da 1ª geração 
Programadores de sistemas 
Programadores de aplicativos 
o programador continuava sendo ainda o usuário 
3ª geração 
Programadores de sistemas escreviam programas para outros usarem 
Usuários de computador que não eram programadores 
Terceira Geração (1965-1971) 
Um sistema computacional havia surgido 
(hardware, software e dados gerenciados por eles) 
Linguagem de 
máquina 
Linguagem 
de 
montagem 
Linguagem de alto nível 
Software de sistemas 
Pacotes de aplicativos 
• Apesar das camadas de linguagem continuarem aumentando, programdores continuaram 
usando algumas das camadas mais internas 
 
• Linguagem de montagem ou código de máquina possibilitam escrever segmentos de códigos 
que executam mais rapidamente e que ocupam menos quantidade de memória 
Quarta Geração (1971-1989) 
 Anos 1970  programação estruturada 
 Pascal, Modula-2, BASIC 
 C, C++ 
 Permitem inserir instruções em linguagem de montagem em um programa de alto nível 
 
 Melhores e mais poderosos sistemas operacionais 
 UNIX 
 Se tornou padrão em ambientes universitários 
 PC-DOS (para o PC da IBM) e MS-DOS (para PCs compatíveis) 
 Padrões para computadores pessoais 
 Macintosh 
 Introduziu o conceito de mouse e de interface gráfica de apontar-e-clicar, mudando 
drasticamente a interação usuário-máquina 
 
 Pacotes de softwares aplicativo 
 Planilhas, processadores de texto e sistemas gerenciadores de bancos de dados 
Quinta Geração (1990-Até hoje) 
 Projeto e programação orientados a objeto 
 World Wide Web 
 Microsoft 
 Java 
 Browser: Mosaic, Netscape, Internet Explorer, Mozilla Firefox 
 Jogos para computador, programas educacionais e pacotes de 
software amigáveis 
 Redes sociais 
 Blogs: conteúdo gerado e editado por usuários 
 Mais pessoas se tonaram usuárias de computador 
Produto da revolução nos últimos 55 anos  uso de circuitos integrados, ou pastilhas, 
para executar ou regular tudo (sistema embutidos) 
• De torradeiras a carros, monitores de tratamento intensivo, satélites, ... 
A Camada de Informação 
Valores Binários e Sistemas de Numeração 
Notação Posicional 
Quantas unidades existem em 943? 
Quantas coisas reais o número 943 representa? 
9 centenas + 4 dezenas + 3 unidades 
900 unidades + 40 unidades + 3 unidades 
OU 
Notação Posicional 
Quantas unidades existem em 754? 
700 unidades + 50 unidades + 4 unidades ? 
Depende da base do sistema de numeração 
No sistema decimal, ou de base 10, SIM! 
Notação Posicional 
Base de um sistema de numeração 
Especifica o número de dígitos usados no sistema 
(os dígitos sempre começam com 0 e continuam até o número 
anterior ao da base) 
 Base 2: 0 e 1 
 Base 8: 0, 1, 2, 3, 4, 5, 6, 7 
 Base 10: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 
Notação Posicional 
Base também determina o que a posição dos dígitos significam 
Números são escritos em notação posicional 
 9 * 102 = 9 * 100 = 900 
+ 4 * 101 = 4 * 10 = 40 
+ 3 * 100 = 3 * 1 = 3 
 943 
Notação Posicional 
Definição mais formal de Notação Posicional 
 943 = 9 * x2 + 4 * x1 + 3 * x0 
O valor é representado como um polinômio na 
base do sistema de numeração 
Variável x = base do 
sistema de numeração 
A expansão em forma polinomial e 
a soma dos números expandidos 
converte o número para a base 10 
Notação Posicional 
Exemplos de Sistemas de Numeração NÃO Posicionais 
• 1 unidade: Um traço vertical representava 
• 10 unidades: Um osso de calcanhar invertido 
• 100 unidades: Um laço 
• 1000 unidades: Uma flor de lótus 
• 10000 unidades: Um dedo dobrado 
• 100000 unidades: Um girino 
• 1000000 unidades: Uma figura ajoelhada, talvez 
representando um deus 
Apesar da ordem dos 
símbolos não ser a mesma, 
os três garotos estão 
escrevendo o mesmo 
número: 45 
Notação Posicional 
Os sistemas de numeração nos permitem representar 
valores de várias formas, em várias bases 
Qual valor o número 943 representa na base 13? 
 9 * 132 = 9 * 169 = 1521 
+ 4 * 131 = 4 * 13 = 52 
+ 3 * 130 = 3 * 1 = 3 
 1576 
Valor que 943 
representa na base 13 
Notação Posicional 
943 na base 13 é igual a 1576 na base 10 
Esses dois números têm valor equivalente  
Ambos representam a mesma quantidade 
Se uma sacola contiver 943 (na base 13) feijões e uma segunda 
sacola contiver 1576 (na base 10) feijões, então ambas as 
sacola conterão exatamente o mesmo número de feijões 
Questão: o número 943 pode representar um valor em uma base 
 menor que a base 10? Por quê??? 
Binário, Octal e Hexadecimal 
 
 O sistema de numeração binário (base 2) é 
particularmente importante em computação 
 
 Sistemas de numeração que são potências de 2 também 
são úteis 
 Base 8 (octal) 
 Base 16 (hexadecimal) 
Binário, Octal e Hexadecimal 
 
 Como são os dígitos em bases superiores a 10? 
 Símbolos representam os dígitos que correspondem aos 
valores de 10 em diante 
 Letras são usadas para representar dígitos 
 10 = A 
 11 = B 
 12 = C 
 ... 
 
 16 dígitos na base 16 
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 
Binário, Octal e Hexadecimal 
Representação na base 10 de valores octal, hexadecimal e binário 
Equivalente em decimal a 754 em 
octal (base 8) 
 7 * 82 = 7 * 64 = 448 
+ 5 * 81 = 5 * 8 = 40 
+ 4 * 80 = 4 * 1 = 4 
 492 
Equivalente em decimal a ABC em 
hexadecimal (base 16) 
 A * 162 = 10 * 256 = 2560 
+ B * 161 = 11 * 16 = 176 
+ C * 160 = 12 * 1 = 12 
 2748 
754(8) = 492(10) 
ABC(16) = 2748(10) 
Binário, Octal e Hexadecimal 
Representação na base 10 de valores octal, hexadecimal e binário 
 1 * 26 = 1 * 64 = 64 
+ 0 * 25 = 0 * 32 = 0 
+ 1 * 24 = 1 * 16 = 16 
+ 0 * 23 = 0 * 8 = 0 
+ 1 * 22 = 1 * 4 = 4 
+ 1 * 21 = 1 * 2 = 2 
+ 0 * 20 = 0 * 1 = 0 
 86 
Equivalente em decimal a 1010110 
em binário (base 2) 
1010110(2) = 86(10) 
Binário, Octal e Hexadecimal 
Curiosidade 
Para representar o valor da base na própria base são 
necessários dois dígitos 
 O na posição mais à direita 
 1 na segunda posição 
10 na base 10 = 10 
 8 na base 8 = 10 
16 na base 16 = 10 
Por quê??? 
Aritmética em Outras Bases 
É possível fazer operações aritméticas, como por exemplo 
soma, no sistema binário? 
Como é possível somar 1 + 1 em binário ? 
Aritmética em Outras Bases 
O que acontece ao somar dois números cuja soma é igual ou 
maior que o valor da base (p.ex: 1+9 no sistema decimal)??? 
Ideia básica de aritmetica em decimal: 0+1=1, 1+1=2, 2+1=3, ... 
O dígito mais à direita reverte para 0 
Há um vai-um para a próxima posição à esquerda 
1 + 9 = 10 na base 10 
Aritmética em Outras Bases 
E na aritmética binária, como acontece??? 
0+0=0 
0+1=1 
1+0=1 
1+1=0 com um vai-um 
11111 
1001001 
101110 
11011 + 
Que tal conferir 
o resultado em 
decimal?Aritmética em Outras Bases 
E a subtração, como é realizada? 
Em decimal: 9-1=8, 8-1=7, ..., até que se tente subtrair um 
dígito maior de um dígito menor (p.ex: 0-1) 
Pedir emprestado 1 do dígito mais à esquerda do número 
do qual se está subtraindo (pega emprestado uma potência 
da base) 
• Na base 10  pegar emprestado = pegar 10 
• Na base 2  pegar emprestado = pegar 2 
Aritmética em Outras Bases 
111001 
110 - 
Que tal conferir 
o resultado em 
decimal? 
022 
110011 
1 
111101 
110 - 
110111 
02 
02 
Convertendo da Base 10 a Outras Bases 
ENQUANTO ( o quociente não for zero) 
 Divida o número decimal pela nova base 
 Faça o resto ser o próximo dígito à esquerda na resposta 
 Substitua o número decimal pelo quociente 
Algoritmo* para converter da base 10 para outra base 
* Sequência lógica de passos que soluciona um problema 
Convertendo da Base 10 a Outras Bases 
2748(10) = ?(16) 
171 16 
1 
11 
10 quociente 
resto 
10 16 
10 
0 quociente 
resto 
Próximo dígito à esqueda 
Próximo dígito à esqueda 
Primeiro dígito à direita 
2748 16 
114 
112 
28 
16 
12 
quociente 
resto 
171 
= C 
= B 
= A 
Sistemas de Numeração em Potência de 2 
Binário Octal Decimal Hexadecimal 
0 0 0 0 
1 1 1 1 
10 2 2 2 
11 3 3 3 
100 4 4 4 
101 5 5 5 
110 6 6 6 
111 7 7 7 
1000 10 8 8 
1001 11 9 9 
1010 12 10 10 
Sistemas de Numeração em Potência de 2 
Qual o valor de 1010110 em octal? 
1 2 6 
1 010 110 
Qual o valor na base 10 de 126 em octal? 
1 * 82 = 1 * 64 = 64 
+ 2 * 81 = 2 * 8 = 16 
+ 6 * 80 = 6 * 1 = 6 
86 
Esse valor 
equivale ao valor 
de 1010110 em 
decimal? 
Sistemas de Numeração em Potência de 2 
Números binários e octais compartilham uma relação muito especial: 
 Dado um número binário, ele pode ser lido diretamente em octal e 
 Dado um número em octal, ele pode ser lido diretamente em binário 
Por quê??? 
8 é potência de 2!!! 
Sistemas de Numeração em Potência de 2 
E qual é a relação entre as bases binária e hexadecimal? 
Qual o valor, em haxadecimal, do número binário 1010110? 
101 0110 
5 6 
5 * 161 = 5 * 16 = 80 
+ 6 * 160 = 6 * 1 = 6 
86 
Existe uma relação entre 
binário e hexadecimal 
similar à relação entre 
binário e octal 
16 também é potência de 2! 
Sistemas de Numeração em Potência de 2 
Qual o valor de ABC(16) em binário? 
A B C 
1010 1011 1100 
Qual o valor de 101010111100(2) em octal? 
Qual o valor de ABC(16) em decimal? 2748 
101 010 111 100 
5 2 7 4 
ABC(16) = 101010111100(2) = 5274(8) = 2748(10) 
Valores Binários e Computadores 
Os primeiros computadores eram máquinas decimais 
Os computadores modernos são máquinas binárias 
• Números no computador são representados em forma binária 
Toda informação é, de alguma forma, representada usando 
valores binários 
Por que binário??? 
Cada localização de armazenamento dentro de um computador 
contém ou um sinal de baixa voltagem ou um sinal de alta voltagem 
 Baixa voltagem = 0 
 Alta voltagem = 1 
Valores Binários e Computadores 
Cada unidade de armazenamento = dígito binário ou bit 
Bits são agrupados em bytes (8 bits) e 
bytes são agrupados em palavras 
Número de bits em uma palavra = 
Comprimento da palavra do computador 
Computadores modernos são frequentemente máquinas de 
32 bits ou de 64 bits 
Microprocessadores usados em aparelhos pequenos 
são máquinas de 8 bits 
Representação de Dados 
Dados e Computadores 
Dados  Valores básicos ou fatos 
Informação  Dado que foi organizado e/ou processado de 
modo que ele seja útil na solução de algum tipo de problema 
Dados x Informação 
Dados e Computadores 
Computadores armazenam, apresentam e nos ajudam a 
modificar diferentes tipos de dados: 
• Números 
• Texto 
• Áudio 
• Imagens e gráficos 
• Vídeo 
Todos esses dados são armazenados como dígitos binários! 
Dados e Computadores 
Compressão de Dados 
Necessidades: 
• Armazenamento 
• Transmissão 
Redução da quantidade de espaço necessário para armazenar 
um fragmento de dados 
Dados e Computadores 
Razão de compressão  tamanho dos dados comprimidos 
dividido pelo tamanho dos dados originais 
• Indica quanta compressão é obtida 
• Número entre 0 e 1 
Tipos de Compressão 
• Sem perda 
 Os dados podem ser recuperados sem perder qualquer informação 
original 
• Com perda 
 Alguma informação é perdida no processo de compatação 
 Em alguns casos, essa perda é aceitável 
Dados e Computadores 
Mundo natural, em sua maior parte  contínuo e infinito 
Computadores, ao contrário, são finitos 
Como representar um mundo infinito em uma máquina finita??? 
Objetivo  representar parte suficiente do mundo para 
satisfazer nossas necessidades computacionais e nossos 
sentidos de visão e audição 
Dados e Computadores 
Dados analógicos  representação contínua análoga à 
informação real que ela representa 
Dados Analógicos e Digitais 
Dados digitais  representação discreta que 
desmembra a informação em elementos distintos 
Dados e Computadores 
Por que usamos o sistema binário? 
Computadores modernos são projetados para usar e 
gerenciar valores binários porque os dispositivos que 
armazenam e gerenciam os dados são bem mais baratos e 
bem mais confiáveis se eles tiverem que representar 
apenas um de dois valores possíveis 
Dados e Computadores 
Sinal Analógico e Sinal Digital 
Sinal Analógico  flutua continuamente para 
cima e para baixo em termo de voltagem 
Sinal Digital  possui apenas um estado 
alto ou um estado baixo, correspondendo 
aos dois dígitos binários 
Dados e Computadores 
Dados Analógicos e Digitais 
• Dados analógicos: 
 São diretamente proporcionais ao mundo infinito e contínuo que nos cerca 
 Computadores não conseguem trabalhar bem com dados analógicos 
Digitalizamos dados desmembrando-os em pedaços 
(elementos discretos) e representando esses pedaços 
separadamente usando dígitos binários 
Dados e Computadores 
Dados Analógicos e Digitais 
Todo sinal eletrônico (analógico ou digital) degrada ao 
percorrer uma linha 
 A voltagem do sinal flutua devido a efeitos ambientais 
Sinais Degradados 
Dados e Computadores 
Dados Analógicos e Digitais 
Sinal Analógico  Assim que um sinal analógico degrada, a 
informação é perdida 
Como qualquer nível de voltagem dentro da faixa é válido, é impossível saber 
qual era o estado original do sinal ou mesmo que ele foi realmente alterado 
Dados e Computadores 
Dados Analógicos e Digitais 
Sinal Digital  Salta abruptamente entre dois extremos 
Um sinal digital pode ficar consideravelmente degradado antes que qualquer 
informação seja perdida, porque qualquer valor de voltagem acima de certo 
limite é considerado um valor alto e qualquer valor abaixo desse limite é 
considerado um valor baixo 
Periodicamente, um sinal é restaurado para recuperar sua forma original 
 Desde que ele seja restaurado antes que muita degradação ocorra, 
nenhuma informação será perdida 
Dados e Computadores 
Representações Binárias 
Quantas coisas podem ser representadas por um número binário? 
Depende da quantidade de bits 
n bits podem representar 2n coisas 
2n combinações de 0 e 1 podem ser feitas com n bits 
Toda vez que incrementamos o número de bits em 1, 
dobramos o número de coisas que podem ser representadas 
Dados e Computadores 
Representações 
Binárias 
Combinações de bits 
Representando Dados NuméricosValores numéricos  tipos de dados predominantes 
usados em um sistema computacional 
• Valores Inteiros 
• Valores Negativos 
• Valores Não Inteiros 
Representando Dados Numéricos 
Representando Valores Negativos 
Três Formas: 
• Representação Sinal-Magnitude 
• Números de Tamanho Fixo 
• Complemento a Dois 
Representando Dados Numéricos 
Representando Valores Negativos 
Representação Sinal-Magnitude 
Uso dos sinais (+ ou -) antes do valor de um número 
Sinal  representa a posição relativa 
Dígitos  representam a magnitude do número 
Representando Dados Numéricos 
Representando Valores Negativos 
Representação Sinal-Magnitude 
Adições e subtrações com números inteiros com sinal 
 Deslocar certo número de unidades em uma direção ou em outra 
= 
Há duas representações para zero zero mais e zero menos 
Problema com essa representação 
Representando Dados Numéricos 
Representando Valores Negativos 
Números de Tamanho Fixo 
Possível representar números com valores apenas inteiros, 
onde metade deles representa números negativos 
Sinal  representado pela magnitude do número 
Representando Dados Numéricos 
Representando Valores Negativos 
Números de Tamanho Fixo 
Como efetuar soma nesse esquema? 
Adiciona os números juntos e 
descarta o “vai-um” 
Representando Dados Numéricos 
Representando Valores Negativos 
Números de Tamanho Fixo 
Chave  propriedade entre adição e subtração: A – B = A + (-B) 
É possível subtrair um número de outro somando o 
negativo do segundo ao primeiro 
-5 
 3 - 
-8 
95 
 3 - 
95 
92 
+97 
Sinal-
Magnitude 
Novo 
Esquema 
Somando 
Negativo 
Representando Dados Numéricos 
Representando Valores Negativos 
Números de Tamanho Fixo 
Fórmula para calcular a representação negativa 
Negativo (I) = 10k – I onde k é o número de dígitos 
-(3) = 102 – 3 = 97 
-(3) = 103 – 3 = 997 
representação de dois dígitos 
representação de três dígitos 
Essa representação de números negativos  complemento a dez 
Representando Dados Numéricos 
Representando Valores Negativos 
Em certos casos, a estratégia de complemento é realmente 
mais fácil quando de trata de cálculos eletrônicos 
Como o armazenamento em computadores modernos é 
feito em binário, é usado o equivalente binário do 
complemento a dez  complemento a dois 
Números de Tamanho Fixo 
Representando Dados Numéricos 
Representando Valores Negativos 
Complemento a Dois 
A fórmula para complemento a dez 
funcionaria com o 10 substituído por 2? 
É possível calcular a representação binária 
negativa de um número usando a fórmula 
Negativo (I) = 2k – I ??? 
Representando Dados Numéricos 
Representando Valores Negativos 
Complemento a Dois 
Representando Dados Numéricos 
Representando Valores Negativos 
Complemento a Dois 
-(2) = 28 – 2 = 128 – 2 = -126 126(10) = 176(8) = 1111110(2) 
7 dígitos 
E o 8º dígito? Indica o sinal 
• 0 no bit mais à esquerda = número positivo 
• 1 no bit mais à esquerda = número negativo 
(-2) = 11111110 
Representando Dados Numéricos 
Representando Valores Negativos 
Modo mais fácil de calcular Complemento a Dois 
Inverter os bits e somar 1 
• Pega o valor positivo 
• Altera todos os bits 1 para 0 e todos os bits 0 para 1 
• Soma 1 
+2 = 00000010 
inverter 11111101 
somar 1 00000001 
 
-2 = 11111110 
Representando Dados Numéricos 
Representando Valores Negativos 
Adição e subtração são realizadas da mesma forma que na 
aritmética de complemento a dez 
-127 = 10000001 
+1 00000001 
 
-126 = 10000010 
Com essa representação, o bit mais à esquerda em um 
número negativo é sempre 1 
Conteúdo 
da memória 
Sem sinal Sinal-
magnitude 
Complemento 
de dois 
0000 0 0 +0 
0001 1 1 +1 
0010 2 2 +2 
0011 3 3 +3 
0100 4 4 +4 
0101 5 5 +5 
0110 6 6 +6 
0111 7 7 +7 
1000 8 -0 -8 
1001 9 -1 -7 
1010 10 -2 -6 
1011 11 -3 -5 
1100 12 -4 -4 
1101 13 -5 -3 
1110 14 -6 -2 
1111 15 -7 -1 
Representando Dados Numéricos 
Representando Valores Negativos 
Transbordamento Numérico 
Transbordamento (overflow) ocorre quando o valor calculado 
não cabe no número de bits que são alocados para o resultado 
P.ex: Se são usados 8 bits para representar cada número, o que 
ocorrerá ao somar 127 e 3? 
 01111111 
+ 00000011 
 
 10000010 representa -126 
em complemento a 
dois e não +130 
Obs: se não estivessem sendo 
representados números negativos, 
o resultado estaria correto 
Representando Dados Numéricos 
Representando Valores Negativos 
Transbordamento Numérico 
Transbordamento é um exemplo clássico do tipo de problema 
encontrado ao mapear um mundo infinito em uma máquina finita 
Não importa quantos bits sejam alocados para um número, 
sempre existirá uma necessidade potencial de representar um 
número que não caiba no espaço reservado 
Representando Dados Numéricos 
Representando Números Reais 
Potências à direita do separador decimal  são negativas 
Posições à direita do ponto decimal são a posição de: 
• Décimos (10-1 ou um décimo) 
• Centésimos (10-2 ou um centésimo) 
• . . . 
Representando Dados Numéricos 
Representando Números Reais 
Como acontece em binário? 
As mesmas regras se aplicam, mas o valor da base é 2 
Posições à direita do separador fracionário são a posição de: 
• Metades (2-1 ou um meio) 
• Quartos (2-2 ou um quarto) 
• . . . 
Representando Dados Numéricos 
Representando Números Reais 
Qualquer valor real pode ser descrito por três propriedades: 
• Sinal (positivo ou negativo) 
• Mantissa – composta dos dígitos do valor com o 
separador fracionário assumido à direita 
• Expoente – determina como o separador fracionários é 
deslocado em relação à mantissa 
Representando Dados Numéricos 
Representando Números Reais 
Valor em base 10 
sinal * mantissa * 10exp 
Representação de ponto flutuante 
O número de dígitos é fixado, mas 
o separador fracionário flutua 
Número no formato de ponto flutuante: 
• Expoente positivo: desloca o separador decimal para a direita 
• Expoente negativo: desloca o separador decimal para a esquerda 
Representando Dados Numéricos 
Representando Números Reais 
Como converter um número real em notação decimal usual 
para notação em ponto flutuante? 
148,69 
• Sinal positivo 
• Dois dígitos à direita do separador 
decimal  expoente = -2 
14869 * 10-2 
Representando Dados Numéricos 
Representando Números Reais 
Como converter um número em formato ponto flutuante de 
volta para a notação decimal? 
• Expoente da base  diz quantas posições mover o seprador fracionário 
 Expoente negativo : move o separador fracionário para a esquerda 
 Expoente positivo: move o separador fracionário para a direita 
Representando Dados Numéricos 
Representando Números Reais 
Houve perda de informação 
Ao armazenar apenas 5 dígitos para representar os dígitos 
significativos (a mantissa), a parte inteira do valor não é 
precisamente representada na notação em ponto flutuante 
Representando Dados Numéricos 
Representando Números Reais 
Valor binário em ponto flutuante 
sinal * mantissa * 2exp 
conterá apenas dígitos binários 
Para armazenar um número em ponto flutuante em um 
computador, podem ser guardados os três valores que o definem 
Representando Dados Numéricos 
Representando Números Reais 
Exemplo de armazenamento de um valor em ponto 
flutuante utilizando 64 bits 
• Sinal  1 bit 
• Expoente  11 bits 
• Mantissa:  52 bits 
Internamente, esse formato é levado em contasempre que 
o valor é usado em um cálculo ou é exibido 
Representando Dados Numéricos 
Representando Números Reais 
Como obter o valor correto para a mantissa se o 
valor não for um número inteiro? 
ou seja, 
Como números reais são representados em um computador? 
Representando Dados Numéricos 
Representando Números Reais 
A conversão da parte fracionária de um número é 
similar à conversão da parte inteira, mas multiplica-se 
pela nova base em vez de dividir. 
• Vai-um da multiplicação = próximo dígito à direita na resposta 
• Parte fracionária do resultado: multiplicada pela nova base 
• Processo continua até a parte fracionária do resultado ser zero 
Representando Dados Numéricos 
Representando Números Reais 
0,75(10) = ?(2) 
0,75 * 2 = 1,50 
0,50 * 2 = 1,00 
0,75(10) = 0,11(2) 
Representando Dados Numéricos 
Representando Números Reais 
0,435(10) = ?(2) 
0,435 * 2 = 0,870 
0,870 * 2 = 1,740 
0,740 * 2 = 1,480 
0,480 * 2 = 0,960 
0,960 * 2 = 1,920 
0,920 * 2 = 1,840 
. . . 
0,435(10) = 0,011011...(2) 
Representando Dados Numéricos 
Representando Números Reais 
20,25(10) = ?(2) 
20 2 
20 
0 
10 
10 2 
10 
0 
5 
5 2 
4 
1 
2 
2 2 
2 
0 
1 
1 2 
0 
1 
0 
 20(10) = 10100(2) 
0,25 * 2 = 0,50 
0,50 * 2 = 1,00 
 0,25(10) = 0,01(2) 
20,25(10) = 10100,01(2) 
Representando Dados Numéricos 
Representando Números Reais 
Notação Científica 
Forma de representação em ponto flutuante na qual o 
separador decimal é mantido à direita do dígito mais à 
esquerda do número 
Como nas primeiras máquinas os expoentes não podiam 
ser impressos, um “E” era usado em seu lugar 
12001,32708 = 1,200132708E+4 
Representando Texto 
Questão central  representação de caracteres 
Representar texto  Processar palavras 
Documento = carateres + informação extra que é 
aramzenada junto com o restante do texto 
fontes, margens, tabulações, cores, ... 
Representando Texto 
Existe uma quantidade finita de caracteres a representar 
Abordagem geral para representar caracteres  listar todos 
eles e atribuir a cada caractere um código binário 
Quais caracteres devem ser representados? 
• Língua portuguesa = 26 letras 
• Separando maiúsculas e minúscula = 52 letras 
• Símbolos de pontuação 
• Valores numéricos (algarismos „0‟, „1‟ até „9‟) 
• Caractere de espaço 
O número de coisas distintas a serem representadas determina 
quantos bits são necessários para representar cada um deles 
Representando Texto 
Conjunto de caracteres 
Lista de caracteres e dos códigos usados para 
representar cada um deles 
Vários conjuntos de caracteres têm sido usados ao longo dos 
anos, mas poucos predominaram 
Estudaremos dois conjuntos: 
• ASCII 
• Unicode 
Representando Texto 
Conjunto de caracteres ASCII 
ASCII = American Standard Code for Information 
Inicialmente usava 7 bits para representar cada caractere 
• Oitavo bit de cada caractere = bit de verificação 
Extensão Latina 1 do conjunto ASCII  8 bits 
• Inclui letras com acentos e vários outros símbolos especiais 
Representando Texto 
Conjunto de caracteres ASCII 
Representando Texto 
Conjunto de caracteres Unicode 
Os 256 caracteres versão estendida do código ASCII são suficientes 
para o inglês, mas não são suficientes para uso internacional 
Unicode  tem uma influência muito mais forte internacionalmente 
• Objetivo: representar todo caractere em toda linguagem usada 
no mundo inteiro, incluindo todos os ideogramas da Ásia 
• Também representa muitos caracteres de propósito especial, 
tais como símbolos científicos 
Representando Texto 
Conjunto de caracteres Unicode 
É usado por muitas linguagens de programação e sistemas 
computacionais atualmente 
Uma codificação comumente empregada usa 16 bits por 
caractere e tem ASCII como subconjunto. No entanto, o 
próprio conjunto de caracteres ainda está em evolução 
• Os primeiros 256 caracteres correspondem exatamente 
ao conjunto de caracteres ASCII estendido 
(compatibilidade com programas que assumam valores 
ASCII) 
Representando Texto 
Conjunto de caracteres Unicode 
Representando Texto 
Compressão de Texto 
Armazenamento e transmissão de textos de forma eficiente 
Três tipos de compressão de texto: 
• Codificação por palavra-chave 
• Codificação por Comprimento de Sequência 
• Codificação de Huffman 
Representando Texto (compressão de texto) 
Codificação por Palavra-chave 
Palavras como “isto, “que”, “qual”, e “quais” são usadas 
frequentemente em um texto comum 
Se essas palavras ocupassem menos espaço (tivessem menos 
caracteres), o documento dimuniria de tamanho 
Codificação por Palavra-chave 
Objetivo: palavras frequentemente usadas são substituídas por 
um único caractere 
Representando Texto (compressão de texto) 
Palavra Símbolo 
como ^ 
que ~ 
têm + 
bem $ 
esse & 
todos % 
muitos # 
Representando Texto (compressão de texto) 
Codificação por Palavra-chave 
O corpo humano é composto por muitos sistemas independentes, tais como o sistema 
circulatório, o sistema respiratório e o sistema reprodutivo. Todos os sistemas têm que 
trabalhar não apenas independentemente, como também têm que interagir e cooperar. 
A saúde geral é uma função do bem-estar de sistemas separados, como também da 
forma como esses sistemas separados trabalham em conjunto. 
O corpo humano é composto por # sistemas independentes, tais ^ o sistema 
circulatório, o sistema respiratório e o sistema reprodutivo. Todos os sistemas + - 
trabalhar não apenas independentemente, ^ também + - interagir e cooperar. A saúde 
geral é uma função do $-estar de sistemas separados, ^ também da forma ^ & sistemas 
separados trabalham em conjunto. 
Parágrafo original 
Parágrafo codificado 
386 caracteres, incluindo espaços e pontuação 
355 caracteres, incluindo espaços e pontuação 
Razão de compressão = 355/386 = 0,92 
Representando Texto (compressão de texto) 
Codificação por Palavra-chave 
Limitações 
Os caracteres usados para codificar as palavras-chave não podem fazer parte 
do texto original 
• Isso limita o número de palavras que podem ser codificads e também a 
natureza do texto a ser codificado 
No exemplo, a palavra “Todos” não é codificada pelo caractere „%‟ por que 
“Todos” e “todos” contêm letras diferentes 
• Versões maiúscula e minúscula da mesma letra são caracteres 
diferentes quando são armazenadas em um computador 
Representando Texto (compressão de texto) 
Codificação por Palavra-chave 
Limitações 
Não há vantagem em codificar palavras como “a” e “o” porque seria substituir 
um caractere por outro 
• Quanto maior a palavra, maior é a compressão obtida por palavra 
• Na prática, as palavras mais frequentemente usadas são curtas 
Alguns documentos usam certas palavras mais frequentemente que outros, 
dependendo do assunto 
Representando Texto (compressão de texto) 
Codificação por Palavra-chave (uma extensão) 
Substituir padrões de texto específicos por caracteres especiais 
• Os padrões codificados geralmente não são palavras 
completas, mas partes de palavras tais como sufixos e 
prefixos comuns – “ex”, “indo”, “ão”, etc 
Padrões sendo codificados geralmente aparecem mais 
frequentemente que palavras inteiras (uma vez que eles ocorrem 
em muitas diferentes palavras) Vantagem 
Os padrões são, em geral, curtos e, assim, a redução por 
substituição a cada palavra é pequena Desvantagem 
Representando Texto (compressão de texto) 
Codificação por Comprimento de Sequência 
Uma sequência de caracteres é substituída por umcaractere 
sinalizador, seguido pelo caractere que se repete e por um 
dígito que informa quantas vezes o caractere se repete 
AAAAAAA *A7 * = sinalizador 
nnnnnxxxxxxxxxccchhhhhh algum outro texto *k8eee 
*n5*x9ccc*h6 algum outro texto *k8eee 
51 caracteres 
35 caracteres 
razão de compressão = 35/51  0,68 
Por que o “c” e o 
“e” não são 
codificados? 
Representando Texto (compressão de texto) 
Codificação de Huffman 
Usa cadeia de bits de comprimento variável para 
representar cada caractere 
Ideia básica  usar poucos bits para representar caracteres que 
aparecem frequentemente e reservar cadeias de bits maiores 
para caracteres que não aparecem frequentemente 
Representando Texto (compressão de texto) 
Codificação de Huffman Código de Huffman Caractere 
00 A 
01 C 
100 I 
110 H 
111 M 
1010 N 
1011 P 
Palavra CAMPAINHA 
Código de Huffman 0100111101100100101011000 
Cadeias de bits de tamanho fixo (8 bits) 9 caracteres x 8 
25 caracteres 
72 caracteres 
razão de compressão = 25/72  0,35 
Representando Texto (compressão de texto) 
Codificação de Huffman 
Como acontece o processo de decodificação? 
Quantos bits devem ser analisados para cada caractere? 
Nenhuma cadeia de bits usada para representar um caractere é o 
prefixo de qualquer outra cadeia de bits usada para representar 
um caractere 
Ao varrer uma cadeia de bits da esquerda para a direita, quando encontra-se uma 
cadeia de bits que corresponde a um caractere, essa cadeia tem que ser o 
caractere que ela representa. Ela não pode ser parte de uma cadeia de bits maior 
Representando Texto (compressão de texto) 
Codificação de Huffman 
00101100101011000 
APANHA 
Usando a tabela anterior 
Não há outra possibilidade! 
Representando Texto (compressão de texto) 
Codificação de Huffman 
Pontos fundamentais na criação de um conjunto 
particular de códigos de Huffman 
• Criação de uma tabela que liste a frequência dos caracteres que serão codificados 
 Contagem de caracteres em um documento específico (352 E´s, 248 S´s etc) 
 Contagem em uma amostra de texto de uma área em particular 
 Ideia geral de quão frequentemente as letras aparecem em um idioma 
específico como o português 
 
• Construir uma estrutura a partir da qual os códigod binários podem ser lidos 
 Garantir que os caracteres mais frequentemente usados obtenham as 
menores cadeias de bits 
Representando Áudio 
Quando o som é percebido? 
Como o som é definido na natureza? 
Quando uma série de compressões de ar 
vibra uma membrana no ouvido que envia 
sinais ao cérebro 
Pela onde de ar que interage com o tímpano 
Representando Áudio 
Como o som sai de um aparelho de som e chega até o ouvido? 
• O aparelho de som envia um sinal elétrico a um alto-falante 
para reproduzir som 
 O sinal é uma representação analógica da onda de som) 
 A voltagem do sinal varia em proporção direta à onda 
de som 
• O alto-falante recebe o sinal e faz vibrar uma membrana 
• A membrana vibra o ar (criando uma onda de som) 
• O ar vibra o tímpano 
A onda de som criada deverá, idealmente, ser idêntica àquela que foi 
capturada inicialmente ou, pelo menos, boa o bastante para agradar o ouvinte 
Representando Áudio 
Como representar dados de áudio em um computador? 
Digitalizar a onda de som, decompondo-a, de alguma forma, em 
partes discretas e tratáveis 
Pegar o sinal elétrico que representa a onda sonora e 
representá-lo como uma série de valores numéricos discretos 
Representando Áudio 
Digitalização do sinal de áudio 
• Um sinal analógico varia em voltagem continuamente 
• Para digitalizar o sinal, sua voltagem deve ser medida periodicamente 
 Os valores numéricos correspondentes devem ser gravados 
Amostragem Em vez de um sinal 
contínuo, tem-se uma série 
de números que 
representam níveis 
distintos de voltagem 
Representando Áudio 
Digitalização do sinal de áudio 
Como o som em formato digital é reproduzido? 
Os valores de voltagem armazenados são usados para criar um 
novo sinal eletrônico contínuo 
Hipótese: os níveis de voltagem no sinal original variaram 
uniformemente entre um valor de voltagem armazenado e o próximo 
Hipótese razoável se forem pegas amostras 
suficientes em um curto período de tempo 
Representando Áudio 
Digitalização do sinal de áudio 
O processo de conversão 
(amostragem) pode causar 
perda de informação 
Taxa de amostragem suficiente para criar uma reprodução de 
som razoável  40.000 vezes por segundo 
 
• Taxa de amostragem muito menor: ouvido humano começa a ouvir 
distorções 
 
• Taxa de amostragem muito maior: produz um som de melhor 
qualidade, mas após certo ponto, dados extras serão irrelevantes, pois 
o ouvido humano não consegue perceber a diferença 
Representando Áudio 
Formatos de Áudio 
Formatos como WAV, AU, AIFF, VQF e MP3 
 
• São baseados no armazenamento de valores de voltagens amostrados 
a partir de sinais analógicos 
 
• Reconhecem os detalhes dos dados de formas diferentes 
 
• Usam técnicas de compressão em graus variados 
MP3  oferece uma razão de compressão maior que outros formatos 
Representando Áudio 
O Formato de Áudio MP3 
MP3  “arquivo de camada de áudio 3 MPEG-2” 
“Moving Picture Experts Group” – comitê 
internacional que desenvolve padrões para 
compressões digitais de áudio e vídeo 
Emprega tanto compressão 
com perda quanto sem perda 
• São descartadas informações que não podem ser ouvidas por humanos 
 
• O fluxo de bits é comprimido usando uma forma de codificação de Huffman, 
para obter uma compressão adicional 
Principais Passos 
Representando Imagens e Gráficos 
Representando Cor 
Cor  Percepção que temos das várias frequências 
de luz que alcançam a retina dos nossos olhos 
Nossas retinas têm três tipos de células cones fotorreceptoras 
de cor que correspondem a diferentes conjuntos de freqûências 
 Esquemas de Cores: 
 RGB 
 Modelo aditivo de cores relacionado a luz 
 Percepção, representação, e apresentação 
de imagens em sistemas eletrônicos 
 Ex: TV, Computador 
 Dependente do dispositivo 
Representando Imagens e Gráficos 
 combinação “aditiva” de todas 
as luzes coloridas primárias 
 ausência de luz 
Branco 
Preto 
 Esquemas de Cores: 
 CMYK (K: key – black) 
 Modelo subtrativo de cores 
 Subtrai brilho do branco 
 Mascara, parcialmente ou inteiramente, 
cores em um fundo mais claro, 
geralmente branco 
 A cor reduz a luz que, caso contrário, 
seria refletida 
 Usado em impressoras 
Representando Imagens e Gráficos 
 cor natural do papel ou 
de outro fundo 
 combinação completa das 
tintas coloridas 
Branco 
Preto 
Representando Imagens e Gráficos 
Representação de Cor no Computador 
• Representação de um valor RGB 
 Três números indicam a contribuição relativa de cada 
uma das três cores primárias 
 Se cada número na tripla for dado em uma escala de 0 a 
255, então: 
 0 = nenhuma constribuição daquela cor 
 255 = constribuição total daquela cor 
Valor RGB de (255, 255, 0) 
Maximiza as contribuições de vermelho e de verde e 
minimiza a contribuição de azul, o que resulta em 
amarelo-claro 
Representando Imagens e Gráficos 
Representando Cor 
Profundidade de cor 
• Quantidade de dados usada para representar um cor 
• Geralmente expressa em termos do número de bits que usados para 
representar a cor 
HiColor  Profundidade de cor de 16 bits 
• 5 bits para cada número em um valor RGB 
• O bit extra algumas vezes é usado para representar transparência 
TrueColor  Profundidade decor de 24 bits 
• 8 bits para cada número em um valor RGB e o bit extra algumas vezes é 
usado para representar transparência 
• Faixa de 0 a 255 para cada número 
• Capacidade de representar mais de 16,7 milhões de cores distintas 
Representando Imagens e Gráficos 
Representando Cor 
Valor RGB Cor 
Vermelho Verde Azul 
0 0 0 Preto 
255 255 255 Branco 
255 255 0 Amarelo 
255 130 255 Rosa 
146 81 0 Marrom 
157 95 82 Roxo 
140 0 0 Castanho 
Alguns valores RGB e as cores que eles representam 
Representando Imagens e Gráficos 
Representando Cor 
Os monitores que exibem cores estão restritos a uma 
profundidade de cor específica 
Em hardware antigo, no qual cores em um monitor estão restritas a, digamos, 256 
cores, qualquer cor que seja especificada por um programa é mapeada na cor mais 
próxima da palheta de cores que o hardware seja capaz de exibir 
Uma palheta de cores 
restrita representada em 
tons de cinza 
Representando Imagens e Gráficos 
Gráficos e Imagens Digitalizadas 
Fotografia  representação analógica de uma imagem 
contínua em toda sua superfície, com tonalidades 
de uma cor se misturando com outra 
Digitalizar uma imagem  representá-la como uma coleção de 
pontos individuais chamados pixels 
elementos de imagem 
(picture elements) 
Representando Imagens e Gráficos 
Gráficos e Imagens Digitalizadas 
Cada pixel é composto de uma única cor 
Resolução  número de pixels usados para representar uma figura 
Se uma quantidade suficiente de pixels for usada (alta resolução) e eles 
forem apresentados na ordem adequada lado a lado, o olho humano 
poderá ser levado a pensar que está vendo uma imagem contínua 
Representando Imagens e Gráficos 
Gráficos e Imagens Digitalizadas 
Imagem digitalizada composta de muitos pixels individuais 
ampliação 
Representando Imagens e Gráficos 
Gráficos e Imagens Digitalizadas 
Armazenamento de informação de imagem em uma base pixel 
a pixel  formato gráfico de varredura (raster) 
Exemplos: bitmap (BMP), GIF e JPEG 
• Uma das mais diretas representações gráficas 
• Contém os valores de cor dos pixels da imagem, da esquerda para a direita e de cima 
para baixo 
• Suporta TrueColor de 24 bits (em alguns casos a profundidade de cor pode ser 
especificada para reduzir o tamanhp do arquivo) 
• Pode ser compactado usando codificação por comprimento de sequência 
Formato Bitmap 
Representando Imagens e Gráficos 
• Limita o número de cores disponível na imagem a 256 
• Uma imagem GIF pode ser composta apenas por 256 cores, mas cada imagem pode 
ser composta por diferentes conjuntos de 256 cores  cor indexada 
• Mais bem utilizado para gráficos e imagens com poucas cores 
• Considerados ideais para arte baseada em desenhos por linhas 
• Uma versão desse formato permite que pequenas animações sejam obtidas pelo 
armazenamento de uma série de imagens que um programa como uma navegador 
exibe em sucessão 
Formato GIF (Graphics Interchange Format) 
• Projetado para tirar proveito da natureza de nossos olhos 
• Seres humanos são mais sensíveis a mudanças graduais de brilho e de cor a distância 
do que em relação a mudanças rápidas 
• Dados armazenados = média das nuances de cores em curtas distâncias 
• Considerado superior para imagens coloridas 
• Um esquema de compressão razoavelmente complicado 
Formato JPEG 
Representando Imagens e Gráficos 
• Ideia  aperfeiçoar e substituir o formato GIF 
• Imagens em PNG podem geralmente obter uma compressão maior que GIFs e ainda 
oferecer uma faixa mais ampla de profundidades de cores 
• Nâo permitem animação 
• Não são amplamente aceitas como GIFs 
Formato PNG (Portable Network Graphics) 
Representando Imagens e Gráficos 
Representação Vetorial de Gráficos 
Gráfico vetorial  outra técnica para representar imagens 
• Descreve uma imagem em termos de linhas e formas geométricas (não 
atribui cores a pixels) 
• Série de comandos que descrevem direção, espessura e cor de uma linha 
• Tamanho do arquivo  tende a ser pequeno, pois não se leva em 
consideração a informação para cada pixel 
• Determinado pela complexidade da imagem e o número de itens na 
imagem 
• Podem ser redimensionados matematicamente e as alterações podem ser 
calculadas dinamicamente 
• Não são bons para representar imagens do mundo real 
• São bons para arte baseada em desenhos por linhas e desenhos animados 
Representando Imagens e Gráficos 
Representação Vetorial de Gráficos 
Formato de gráfico vetorial mais popular usado na 
Web atualmente  Flash 
Novo formato de gráfico vetorial  SVG (Scalable Vector Graphics) 
Representando Vídeo 
Informação de vídeo  um dos mais complexos tipos de 
informação para capturar, comprimir e ainda chegar a um 
resultado que faça sentido ao olho humano 
Videoclipes  contêm o equivalente a muitas imagens 
fixas, cada uma tendo que ser compactada 
Representando Vídeo 
Codecs de Vídeo 
Compressor/DECompressor (codificador/decodificador) 
Codec de vídeo  métodos usados para encolher o tamanho de um filme 
de modo que ele possa ser exibido em um computador ou pela rede 
• Quase todos usam compressão com perda 
• Objetivo: não perder informação que afete os sentidos do observador 
A Camada de Hardware 
Portas Lógicas e Circuitos 
Computadores e Eletricidade 
Qualquer sinal eletrônico tem um nível de voltagem 
O e 1 binários são distinguidos por meio do nível de 
voltagem de um sinal 
 0 a 2 volts (nível “baixo”)  0 binário 
 2 a 5 volts (nível “alto”)  1 binário 
Computadores e Eletricidade 
Porta  dispositivo que executa uma operação 
 elementar sobre sinais elétricos 
Aceita um ou mais sinais de entrada e produz um único sinal de saída 
Existem vários tipos de portas  cada tipo executa uma 
função lógica específica 
Computadores e Eletricidade 
Circuitos  combinação de portas com o objetivo 
 de executar tarefas mais complexas 
Circuitos podem ser projetados, por exemplo, para efeutar 
operações aritméticas e para armazenar valores 
Em um circuito, o valor de saída de uma porta, 
frequentemente, serve como valor de entrada para uma 
ou mais outras portas 
Fluxo de eletricidade que passa por um circuito  controlado 
pela lógica das portas que interagem 
Computadores e Eletricidade 
Três métodos são usados para descrever o 
comportamento de portas e circuitos 
 Expressões booleanas 
 Diagramas lógicos 
 Tabelas-verdade 
Computadores e Eletricidade 
George Boole  Criou uma forma de álgebra na qual 
variáveis e funções assumem apenas um de dois valores 
possíveis (0 e 1) 
Álgebra Booleana 
Permite definir e manipular lógica de circuitos 
usando uma notação matemática 
Computadores e Eletricidade 
Diagrama Lógico  representação gráfica de um circuito 
• Cada tipo de porta é representado por um símbolo gráfico específico 
• É possível representar visualmente a lógica de um circuito inteiro 
através da conexão de tais símbolos em diversas formas 
Tabela-Verdade  define a função de uma porta listando 
todas as combinações possíveis de entrada que a porta 
pode encontrar, juntamente com a saída correspondente 
Portas 
Cada Porta desempenha uma função lógica (por isso 
também chamadas de Portas Lógicas) 
Cada porta recebe um ou mais valores de entrada e 
produz um único valor na saída 
Seis tipos principais de portas: 
• NÃO 
• E 
• OU 
• OU EXCLUSIVO 
• NÃO-E 
• NÃO-OU 
Portas 
Porta NÃO 
Algumas vezes chamada de inversor, pois inverte o valor de entrada 
Variável A  sinal de 
entrada (0 ou 1) 
Variável X  sinal desaída 
(0 ou 1 – determinado pelo 
valor de A) 
Operador: „ ou  
Portas 
Porta E 
• Valores de entrada iguais  saída = 1 
• Valores de entrada diferentes  saída = 0 
Operador: . ou * 
Entrada  dois valores 
Portas 
Porta OU 
• Valores de entrada iguais a 0  saída = 0 
• Caso contrário  saída = 1 
Operador: + 
Entrada  dois valores 
Portas 
Porta NÃO-E (NAND) 
Operador: não existe operador específico 
Oposto da porta E 
saída = saída da porta E passando por uma porta inversora (porta NÃO) 
Portas 
Porta NÃO-OU (NOR) 
Operador: não existe operador específico 
Oposto da porta OU 
saída = saída da porta OU passando por uma porta inversora (porta NÃO) 
Portas 
Portas com Mais Entradas 
Porta E com 3 entradas  saída = 1 apenas se os três sinais de entrada forem 1 
Porta OU com 3 entradas  saída = 1 se pelo menos um sinal de entrada for 1 
Construindo Portas 
Como uma porta é construída para controlar o 
fluxo de eletricidade? 
Uma porta usa um ou mais transistores para estabelecer como os 
sinais de entrada são mapeados em valores de saída 
Construindo Portas 
Transistor  dispositivo que atua, dependendo do nível de 
voltagem do sinal de entrada, como: 
 Um fio que conduz eletricidade ou 
 Um resistor que bloqueia o fluxo de eletricidade 
Construindo Portas 
Transistor 
• Não possui parte móvel, mas atua como uma chave 
• É feito de material semicondutor 
• Não é um bom condutor de eletricidade (como o cobre) 
• Não é um bom isolante (como a borracha) 
• Normalmente se usa silício 
• Podem mudar de estado em poucos nanossegundos 
• A computação, como a conhecemos hoje, é devida, em 
grande parte, à invenção do transistor 
Construindo Portas 
portão 
fechado 
C B E 
• Coletor – coleta uma carga aplicada 
• Emissor – emite a carga que será coletada 
• Base – ativa a emissão (se a carga não for 
ativa, não vai haver emissão da carga coletada) 
 Funciona como um portão 
Transistor 
portão 
aberto 
Construindo Portas 
Transistor (Diagrama) 
Construindo Portas 
O transistor estará ativado, produzindo um sinal de saída alto, ou 
desativado, produzindo um sinal de saída baixo 
determinada pelo sinal 
elétrico da base 
sinal da base alto  sinal do coletor será aterrado  transistor será desativado 
sinal da base baixo  sinal do coletor se manterá alto  transistor ficará ativado 
Construindo Portas 
Como o transistor é usado para criar vários tipos de portas? 
Construindo Portas 
Função NÃO (NOT, INVERSORA ou COMPLEMENTO) 
Construindo Portas 
Função E (AND) 
Construindo Portas 
Função OU (OR) 
Construindo Portas 
Função NE (NAND ou NÃO-E) 
Construindo Portas 
Função NOU (NOR ou NÃO-OU) 
Construindo Portas 
Função XOR (Exclusive-OR ou EXOR) 
Construindo Portas 
Função XNOR (Exclusive-OR ou EXOR) 
Circuitos 
Como combinar portas para formar circuitos? 
Duas categorias de circuitos: 
Os valores de entrada determinam explicitamente a saída 
A saída é uma função dos valores de entrada como também do 
estado atual do circuito 
Combinacional 
Sequencial 
Geralmente envolvem armazenamento de informação 
Circuitos 
Circuitos Combinacionais 
Portas são combinadas em circuitos usando a saída de uma 
porta como entrada de outra 
Circuitos 
Circuitos Combinacionais 
A B C D E X 
0 0 0 0 0 0 
0 0 1 0 0 0 
0 1 0 0 0 0 
0 1 1 0 0 0 
1 0 0 0 0 0 
1 0 1 0 1 1 
1 1 0 1 0 1 
1 1 1 1 1 1 
Expressão Booleana: 
(AB + AC) 
AB AC AB+AC 
Circuitos 
Circuitos Combinacionais 
Qual o diagrama de circuito resultante da expressão booleana: 
A (B + C)? 
Circuitos 
Circuitos Combinacionais 
A B C B+C A(B+C) 
0 0 0 0 0 
0 0 1 1 0 
0 1 0 1 0 
0 1 1 1 0 
1 0 0 0 0 
1 0 1 1 1 
1 1 0 1 1 
1 1 1 1 1 
Circuitos 
Circuitos Combinacionais 
A B C B+C A(B+C) 
0 0 0 0 0 
0 0 1 1 0 
0 1 0 1 0 
0 1 1 1 0 
1 0 0 0 0 
1 0 1 1 1 
1 1 0 1 1 
1 1 1 1 1 
A B C AB AC AB+AC 
0 0 0 0 0 0 
0 0 1 0 0 0 
0 1 0 0 0 0 
0 1 1 0 0 0 
1 0 0 0 0 0 
1 0 1 0 1 1 
1 1 0 1 0 1 
1 1 1 1 1 1 
Equivalência de Circuitos 
Propriedade distributiva da Álgebra Booleana: 
A(B+C) = AB + AC 
Circuitos 
Circuitos Combinacionais 
Circuitos 
Álgebra Booleana  permite aplicar princípios matemáticos 
que podem ser provados para projetar circuitos lógicos 
Propriedade E OU 
Comutativa AB = BA A + B = B + A 
Associativa (AB)C = A(BC) (A + B) + C = A + (B + C) 
Distributiva A(B + C) = (AB) + (AC) A + (BC) = (A + B)(A+ C) 
Identidade A1 = A A + 0 = A 
Complemento A(A‟) = 0 A + (A‟) = 1 
Lei de DeMorgan (AB)‟ = A‟ + B‟ (A + B)‟ = A‟B‟ 
Confiram a propriedade complemento usando o diagrama de portas! 
Circuitos 
Somadores 
Realizam operações de adição 
Circuito semissomador  calcula a soma de dois bits e produz 
o bit correto de vai-um 
A B Soma Vai-um 
0 0 0 0 
0 1 1 0 
1 0 1 0 
1 1 0 1 
Qual a expressão booleana para o circuito semissomador? 
soma = A  B 
vai-um = AB 
Perfeito para somar dois dígitos únicos! 
Circuitos 
Somadores 
Limitação do circuito semissomador  não leva em conta o vem-um 
 Não pode ser usado para calcular a soma de dois valores 
binários com múltiplos dígitos cada 
Circuito somador completo  leva em conta os valores vem-um 
Circuitos 
Somador Completo 
A B Vem-um Soma Vai-um 
0 0 0 0 0 
0 0 1 1 0 
0 1 0 1 0 
0 1 1 0 1 
1 0 0 1 0 
1 0 1 0 1 
1 1 0 0 1 
1 1 1 1 1 
Qual a expressão booleana desse diagrama? 
Circuitos 
Multiplexadores (MUX) 
Circuito geral que gera um único sinal de saída, que é igual a um 
dos vários sinais de entrada do circuito 
Seleciona qual sinal de entrada deixa passar para a saída, 
com base nos valores de outros sinais de entrada 
sinais de seleção ou 
linhas de controle de seleção 
Circuitos 
Multiplexadores (MUX) 
S0 S1 S2 F 
0 0 0 D0 
0 0 1 D1 
0 1 0 D2 
0 1 1 D3 
1 0 0 D4 
1 0 1 D5 
1 1 0 D6 
1 1 1 D7 
Pode ser mostrado usando 8 potas E de 
três entradas e 1 porta OU de 8 entradas 
Demultiplexador (demux)  realiza a operação inversa 
S0 
S1 
S2 
D0 D1 D2 D3 D4 D5 D6 D7 
F 
Circuitos Integrados 
Circuito integrado (também chamado de pastilha)  pedaço de 
silício no qual múltiplas portas foram embutidas 
Pedaços de silício são montados em invólucros de plástico ou de cerâmica 
com pinos ao longo das bordas que podem ser soldadas em placas de 
circuito ou inseridas em soquestes apropriados 
Cada pino se conecta a uma entrada ou saída de 
um porta, ou à fonte de alimentação ou à terra 
Circuitos Integrados 
CI  São classificados em função do número de portas contidas nele 
Abreviação Nome Número de Portas 
SSI Integração em pequena escala 1 a 10 
MSI Integração em média escala 10 a 100 
LSI Integração em grande escala 100 a 100.000 
VLSI Integração em escala muito grande Mais de 100.000 
Circuitos Integrados 
Uma pastilha SSI tem umas poucas portas independentes 
14 pinos = 8: para entradas de portas 
 4: saídas das portas 
 1: terra 
 1: alimentação 
Pastilhas similares podem ser feitas 
com portas diferentes 
Circuitos Integrados 
Como uma pastilha pode ter mais de 100.000 portas nela? 
Seriam necessários 300 pinos! 
As portas em uma pastilha VLSI não são independentes, como na SSI 
• Embutem circuitos com uma alta razão entre portas e pinos 
• Muitas portas são combinadas para criar circuitos 
complexos,

Continue navegando