15
11/03/2013 1 Unesp – Campus de Guaratinguetá 1- O COMPUTADOR Curso: Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 11/03/2013 2 1.1 Histórico Necessidade humana de computação data de milhares de anos Tabuas de argilas contendo tabuadas por volta de 1700 ªC, próximo de Babilônia Babilônios usavam sistema de numeração sexadecimal (base 60) origem das unidades de tempo atuais Eles resolviam muitos tipos de equações algébricas. 11/03/2013 3 1.1 Histórico: Desenvolvimento de dispositivos automáticos 11/03/2013 4 O Ábaco: Oriente Médio 2500 a.C Instrumento construído de contas móveis se movimentando em eixos . . A informação está nas contas . . 1 10 100 1000 5 50 500 5000 Valem 5 unidades Valem 1 unidade 5 50 500 5000 1 10 100 1000 27 = 20+7 Ábaco Japonês

Curso: Programação de Computadores - UNESP: Câmpus de Guaratinguetá - Faculdade de ... · 2013-11-03 · Unesp –Campus de Guaratinguetá 1-O COMPUTADOR Curso: Programação

Embed Size (px)

Citation preview

11/03/2013 1

Unesp – Campus de Guaratinguetá

1- O COMPUTADOR

Curso: Programação de ComputadoresProf. Aníbal Tavares

Profa. Cassilda Ribeiro

11/03/2013 2

1.1 Histórico

� Necessidade humana de computação data de milhares de anos

� Tabuas de argilas contendo tabuadas por volta de 1700 ªC, próximo de Babilônia

� Babilônios usavam sistema de numeração sexadecimal (base 60) � origem das unidades de tempo atuais

� Eles resolviam muitos tipos de equações algébricas.

11/03/2013 3

1.1 Histórico: Desenvolvimento de dispositivos automáticos

11/03/2013 4

O Ábaco: Oriente Médio 2500 a.C

� Instrumento construído de contas móveis se movimentando em eixos..

� A informação está nas contas..

1101001000

5505005000Valem 5 unidades

Valem 1 unidade

5505005000

1101001000

27=

20+7

Ábaco Japonês

11/03/2013 5

5000 AC – O Ábaco

� Instrumento construído de contas móveis se movimentando em eixos..

� A informação está nas contas..

1101001000

5505005000Valem 5 unidades

Valem 1 unidade

5505005000

1101001000

27=

20+7

Ábaco Japonês

11/03/2013 6

Operações no Ábaco

http://www.youtube.com/watch?v=Hr7AB4cnyOs&feature=related

SOMA EFETUADA NO ÁBACO SOMA EFETUADA NO ÁBACO 236 + 61 = ?

5505005000

1101001000236236

5505005000

1101001000236236 ++ 6161 = = 297297

11/03/2013 7

1642 – Pascalina: a máquina de Blaise Pascal

Blaise Pascal

unidadedezena

http://woodgears.ca/gear_cutting/template.html

1 ciclo = 10 ciclos

0 9

1+

1 0

Predecessora da calculadora de mesa

11/03/2013 8

1801 - O Tear Programável

Joseph-Marie Jacquard

11/03/2013 9

Funcionamento do Tear

� Os desenhos eram cifrados em cartões de papel perfurado.

� Somente trabalhavam as agulhascoincidentes com os furos.

� As instruções estão codificadas nos cartões11/03/2013 10

1822 – A Máquina Diferencial

Calcularia funções trigonométricas e logarítmicas, usando os cartões de Jacquard. Construção difícil e cara para a época.

Charles Babbage

11/03/2013 11

A Primeira Programadora

�� 18331833 - Babbage projetou uma máquina bastante aperfeiçoada - Máquina AnalíticaMáquina Analítica..

� Podia ser programada através de cartões perfurados de Jacquard utilizando comandos como Se...então e Enquanto.

� Calculava várias funções matemáticas.� "Podemos dizer mais convenientemente que a

Máquina Analítica tece padrões algébricos, assim como o tear de Jacquard tece flores e folhas" . Ada Lovelace. Ada Lovelace

� Devido à tecnologia pouco avançada, a máquina não foi concluída. Somente um século depois suas idéias foram postas em prática.

� www.fourmilab.ch/babbage/contents.html11/03/2013 12

Os dados do censo (que ocorre a cada 10 anos) de 1880dos EUA levaram quase 8 anos para serem processados.Temia-se que os dados do censo de 1890 não estivessem processados em 1900.

1880 – A Tabuladora Hollerith

Herman Hollerith (estatístico):

Foi encarregado pela Agência Estatísticados EUA de desenvolver uma técnica para acelerar o processamento dos dadosdo censo.

11/03/2013 13

Hollerith usou a idéia de Jacquard e construiu a Perfuradora de Cartões.Perfuradora de Cartões.

1880 – A Tabuladora Hollerith

Os dados eram perfurados em cartõesque podiam ser classificados por meio de pinos que passavam pelos furos.

O processamento das Informações levou 3 anos.

� Observação: A empresa de Hermann Hollerith era a TabulatingMachine Company. Em 1911, ele juntou-se com outras 3 empresas e fundou a IBM.

11/03/2013 14

1936 – A Máquina de Turing

Alan Turing

MáquinaTeórica

� Turing imaginou uma máquina que poderia efetuar de forma automática os processos geralmente desenvolvidos por um matemático. Para cada processo, haveria uma máquina: uma para somar, outra para dividir, uma terceira para calcular integrais, e assim por diante. A máquina de Turing, nome pela qual ela ficou conhecida, jamais foi construção

TearProgramável

11/03/2013 15

Importância da Máquina de Turing

� Um tempo depois, Turing descobriu que era possível desenhar um aparelho "universal" que tivesse condições de realizar tudo o que as máquinas especializadas podiam fazer, desde que fossem programadas para tal. Assim, Turing elaborou a Teoria dos computadores programáveis

11/03/2013 16

Funcionamento da Máquina de Turing

� http://ironphoenix.org/tril/tm/

� Dispositivos: Entrada, Saída, Memória de trabalho.

� Fita: é dividida em células, cada uma contendo um símbolo.

� Símbolos: Alfabeto de entrada, Alfabeto auxiliar, Branco.

� Unidade de controle: se comunica com a Fita por uma cabeça simples que lê e/ou altera símbolos da lista.

� O movimento da máquina de Turing depende do símbolo lido e do estado do controle finito. Dependendo destes estados a máquina pode:

(1) Trocar de Estado.(2) Gravar um símbolo.(3) Mover o cabeçote de leitura.

11/03/2013 17

1937 - Lógica Booleana e Circuitos Elétricos

� Em 1847 é publicado o livro “The MathematicalAnalysis of Logic” que introduz a Álgebra Booleana. Três operadores E, OU e NÃO (AND, OR, NOT) são as únicas operações necessárias para efetuar comparações ou as

quatro operações aritméticas base.

Em 1937, Claude Shannon: Há uma correspondência de um-para-umentre circuitos elétricos e funções booleanas. Para toda e qualquer função booleana é possível desenvolver um circuito eletrônico e vice-versa.

George Boole

11/03/2013 18

1.3-Componentes Básicos do Computador

�HARDWARE: Toda parte física do computador. É o equipamento propriamente dito.

Inclui: circuitos eletrônicos, gabinete, fonte de

energia, cabos, teclado, mouse, etc.

�O SOFTWARE: Constituído pelos programas que permitem atender às necessidades do usuário

11/03/2013 19

UNIDADE DE SAÍDAUNIDADE DE CONTROLE

UNIDADE LÓGICA EARITMÉTICA

UNIDADE DEENTRADA

UNIDADES FUNCIONAIS

BÁSICAS

CPU

MEMÓRIA AUXILIAR

MEMÓRIA PRINCIPAL

MEMÓRIA

Composição do Hardware

11/03/2013 20

�A memória do computador é dividida em unidades pequenas (caixinhas) e de mesmo tamanho, chamadas PALAVRAS. Cada PALAVRA tem um único endereço

A Memória do Computador

�Os endereços são permanentes (vêm da fábrica) e não podem ser modificados pelo programador

11/03/2013 21

Palavra n-1n

......

Palavra 403

Palavra 302

Palavra 201

Palavra 100

A Memória do Computador

Memória de Tamanho “n”Memória de Tamanho “n”

Capacidade da memória

X

Espaço “endereçável”

Endereço

11/03/2013 22

�A PALAVRA (caixinha) é formada por um grupo de 2, 4, 6 e até 8 BYTES (depende do modelo de computador).

Exemplo: Palavra de 4 bytes, indica que se está usando uma caixinha cujo tamanho é de 4 bytes

PALAVRA

byte byte byte byte

00 01 02 03

PALAVRA

byte byte byte byte

04 05 06 07

00 04endereço

endereço

A Memória do Computador

11/03/2013 23

�BYTE (binary term) : Unidade básica da informação. O byte é composto por 8 BITS

�BIT (binary digit) - dígitos binários

bit bit bit bit bit bit bit bit

BYTE

A Memória do Computador

11/03/2013 24

�Os computadores armazenam as informações e fazem todo seu tratamento baseado em fenômenos sobre sistemas biestáveis

�Os símbolos básicos usados para representar os dois estágios são o 0 e o 1 (dígitos binários)

0 ou 10 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1 0 ou 1bit bit bit bit bit bit bit bit

BYTE

COMO FAZER PARA REPRESENTAR UM NÚMERO BINÁRIO?

Representação da Informação

11/03/2013 25

Sistema de numeração bináriaSistema de numeração binária

�É um sistema de numeração posicional (o valor de um dígito é dado pela sua posição no número)

�No sistema decimal, o número 2562 tem a seguinte interpretação:2 x 1000 (103) = 2000

5 x 100 (102) = 5006 x 10 (101) = 602 x 1 (100) = 2

A MEMÓRIA DO COMPUTADOR

11/03/2013 26

�No sistema binário de numeração a base é 2.

�Assim o valor do número 110101 é:

1 x 25 + 1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 +1 x 20

= 32 + 16 + 0 + 4 + 0 + 1= 53

A MEMÓRIA DO COMPUTADOR

11/03/2013 27

�Interligando todas as partes do computador, existem fios por onde “circulam”os bits (barramento).

�Computador de 16 bits => existem 16 fios para o transporte dos dados

�Computador de 32 bits => existem 32 fios para o transporte dos dados

A MEMÓRIA DO COMPUTADOR

11/03/2013 28

A MEMÓRIA DO COMPUTADOR

A memória é dividida em camadas:

• memória cache

• memória principal

• memória auxiliar

11/03/2013 29

A MEMÓRIA DO COMPUTADOR

UNIDADE DE CONTROLE

UNIDADE LÓGICA EARITMÉTICA

UNIDADE DEENTRADA

UNIDADE DE SAÍDA

UNIDADES FUNCIONAIS

BÁSICAS

CPU

MEMÓRIA AUXILIAR

MEMÓRIA PRINCIPAL

MEMÓRIA

MEMÓRIA CACHE

11/03/2013 30

Unesp-Campus de Guaratinguetá

A memória é dividida em camadas:

• memória cache

• memória principal

• memória auxiliar

A MEMÓRIA DO COMPUTADOR

MEMÓRIA CACHE

• Camada mais próxima do processador

• Funcionamento muito rápido

• Alto custo

• Pequena, devido ao custo

11/03/2013 31

Unesp-Campus de Guaratinguetá

A memória é dividida em camadas:

• memória cache

• memória principal

• memória auxiliar

A MEMÓRIA DO COMPUTADOR

MEMÓRIA PRINCIPAL

• Dados que não cabem na memória cache residem

na memória principal

• Mais lenta

• Maior que a cache

• Custo inferior a cache

11/03/2013 32

Unesp-Campus de Guaratinguetá

A MEMÓRIA DO COMPUTADOR

Tipos de memória principal:

– ROM (Read Only Memory)

– RAM (Random Access Memory)

– PROM (Programmable ROM)

– EPROM (Eraseble PROM)

– EAROM (Electrically Alterable ROM)

11/03/2013 33

Unesp-Campus de Guaratinguetá

A memória é dividida em camadas:

• memória cache

• memória principal

• memória auxiliar

A MEMÓRIA DO COMPUTADOR

MEMÓRIA AUXILIAR (discos magnéticos)

• Armazenam os dados que não cabem na memóriaprincipal.

• Podem reter grande quantidade de dados.

• Os dados não são perdidos quando o computadoré desligado.

• Funcionamento muito lento.

11/03/2013 34

Unesp-Campus de Guaratinguetá

A memória é dividida em camadas:

• memória cache

• memória principal

• memória auxiliar

A MEMÓRIA DO COMPUTADOR

MEMÓRIA AUXILIAR (discos magnéticos)

Dois tipos de disco:

1- DISCOS MAGNÉTICOS: Winchesters, Hard Disk, Disquetes

2 - DISCOS ÓTICOS : CD-ROM, erasable CD (CDRW)

Os dados e programas devem primeiro ser transferidospara a memória principal antes de serem processados

COMPACT DISC, READ ONLY MEMORY

CD ReWritable

11/03/2013 35

Unesp-Campus de Guaratinguetá

O PORTE do computador depende de:

• componentes (essência da memória e do processador)

• arquitetura,

• periféricos e • software básico.

�O tamanho da memória principal é um dos indicadores do porte do computador

�Unidade de medida: byte

A MEMÓRIA DO COMPUTADOR

11/03/2013 36

Unesp-Campus de Guaratinguetá

3.1.1 A MEMÓRIA DO COMPUTADOR

UNIDADES DE MEDIDA

• Kbyte = 1024 bytes

• kilobyte (Kbyte ou KB) ~= 103 bytes

• megabyte (Mbyte ou MB) ~= 106 bytes

• gigabyte (Gbyte ou GB) ~= 109 bytes

• terabyte (Tbyte ou TB) ~= 1012 bytes

11/03/2013 37

Unesp-Campus de Guaratinguetá

UNIDADE DE CONTROLE

UNIDADE LÓGICA EARITMÉTICA

UNIDADE DEENTRADA

UNIDADE DE SAÍDA

UNIDADES FUNCIONAIS

BÁSICAS

CPU

MEMÓRIA AUXILIAR

MEMÓRIA PRINCIPAL

MEMÓRIA

Unidades de Entrada e Saída

11/03/2013 38

Unesp-Campus de Guaratinguetá

MONITORES DE VÍDEO

UNIDADES DE ENTRADA E SAÍDA

TECLADOS

IMPRESSORAS

Tubo de Raios Catódicos Monitor de Cristal Líquido

LaserMatricial Jato de Tinta

11/03/2013 39

Unesp-Campus de Guaratinguetá

CD-ROM (Compact -Disk Read -Only Memory)

• Caracterizada pelo uso de técnicas óticas de laser.

UNIDADES DE ENTRADA E SAÍDA

SCANNER ou DIGITALIZADOR

• Dispositivo de entrada que digitaliza objetos escritos, desenhos (figuras) e fotografias sobre papel ou qualquer outro meio e armazena essas informações sob forma de sinais digitais, em arquivos.

11/03/2013 40

Unesp-Campus de Guaratinguetá

UNIDADES DE ENTRADA E SAÍDA

PLOTTER• É uma impressora capaz de imprimir desenhos em grandes dimensões com elevada qualidade e rigor, como por exemplo, plantas arquitetônicas, mapas cartográficos, projetos de engenharia e grafismo. Podem utilizar papel comum, fotográfico, película, vegetal, auto-adesivos e lonas.

11/03/2013 41

Unesp-Campus de Guaratinguetá

UNIDADES DE ENTRADA E SAÍDA

UNIDADE DE DISCO MAGNÉTICO FLEXÍVEL: Destinadas a disquetes de alta densidade, dupla face e 3 1/2 polegadas de diâmetro (Disk Drive ou Drive)

LEITORA DE CÓDIGO DE BARRAS

• Consistem basicamente em um foto-detector e um decodificador, acondicionados em um dispositivo conhecido como CANETA ÓTICA, através da qual são fornecidas ao computador as informações contidas na etiqueta

• Há diversos métodos de codificação de dados através de barras: Todos se baseiam em sucessão de listras escuras de largura variável intercaladas por espaços claros, passível de ser interpretada por processos óticos

11/03/2013 42

Unesp-Campus de Guaratinguetá

TELA SENSÍVEL AO TOQUE

• Dispositivo de entrada que permite ao usuário selecionar opções através de indicações sobre o vídeo, que se constituem um painel sensível a pressões

Exemplo: caixa eletrônico da nossa caixa, no bloco III

UNIDADES DE ENTRADA E SAÍDA

11/03/2013 43

� A CPU é quem executa as instruções• Instrução: comando que define integralmente uma operação

a ser executada• Programa: instruções ordenadas logicamente.

� A CPU tem 2 unidades:• UNIDADE DE CONTROLE: determina a execução e

interpretação dos dados que estão sendo processados

• UNIDADE LÓGICA E ARITMÉTICA: recebe os dados da memória para processá-los quando uma instrução aritmética ou lógica é executada

Unidade Central de Processamento- CPU

11/03/2013 44

VELOCIDADE DE PROCESSAMENTO: costuma ser expressa através de:

• MIPS (milhões de instruções por segundo)

Ex: Pentium de 166 MIPS

• MFLOPS ou MEGAFLOPS (milhões de operações de ponto flutuante por segundo)

Utilizada em sistemas onde há maior interesse em aplicações numéricas (sistemas científicos e sistemas de computação gráfica)

Unidade Central de Processamento

11/03/2013 45

O Software envolve um conjunto de:

1- INSTRUÇÕES que quando executadas produzem a função e o desempenho desejados

2- ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação

3- DOCUMENTOS que descrevem a operação e o uso dos programas

Software

11/03/2013 46

APLICAÇÕES DO SOFTWARE

�SOFTWARE BÁSICO• Coleção de programas escritos para dar apoio a

outros programas�SOFTWARE DE TEMPO REAL

• Software que monitora, analisa e controla eventos do mundo real

�SOFTWARE COMERCIAL

• Sistemas de operações comerciais e tomadas de decisões administrativas

11/03/2013 47

�SOFTWARE CIENTÍFICO E DE ENGENHARIA

• Caracterizado por algoritmos de processamento de números

�SOFTWARE EMBUTIDO

• Usado para controlar produtos e sistemas para os mercados industriais e de consumo

�SOFTWARE DE COMPUTADOR PESSOAL• Envolve processamento de textos, planilhas

eletrônicas, diversões, etc.

APLICAÇÕES DO SOFTWARE

11/03/2013 48

�SOFTWARE DE INTELIGÊNCIA ARTIFICIAL• Faz uso de algoritmos não numéricos para

resolver problemas que não sejam favoráveis à computação ou à análise direta.

APLICAÇÕES DO SOFTWARE

11/03/2013 49

�O desenvolvimento do software compreende um conjunto de etapas citadas como CICLOS DE VIDA DE SOFTWARE

�Essas etapas envolvem Métodos, Ferramentas e Procedimentos para a construção e manutenção do software.

�O ciclo de vida de software contém 3 fases genéricas: DEFINIÇÃO, DESENVOLVIMENTO e MANUTENÇÃO

3.3 CICLO DE VIDA DO SOFTWARE

11/03/2013 50

DEFINIÇÃODEFINIÇÃO

DESENVOLVIMENTODESENVOLVIMENTO

MANUTENÇÃOMANUTENÇÃO

O QUE

COMO

ALTERAÇÕES

Ciclo de vida do software

11/03/2013 51

DEFINIÇÃO (o que)DEFINIÇÃO (o que)

DESENVOLVIMENTODESENVOLVIMENTO(como)(como)

Revisões

Documentação

• Projetar a Solução (ALGORITMO)

• Codificar a Solução (Programar em Linguagem de Computador)

• Testar o Programa

Definição do Problema

Etapas da Construção de Programas

11/03/2013 52CPU

MEMÓRIA PRINCIPAL

MEMÓRIAPrograma Fonte escrito em Linguagem de Alto

ou Baixo Nível

Programa Fonte escrito em Linguagem de

Máquina

Programação e Níveis de Linguagem

11/03/2013 53

�LINGUAGEM DE MÁQUINA- Uma CPU somente pode compreender instruções que sejam expressas em termos de sua LINGUAGEM DE MÁQUINA

- Um programa escrito em linguagem de máquina consiste de uma série de números binários e é muito difícil de ser entendido pelas pessoas.

Exemplo: Cada instrução é constituída de 2 partes:código da operação operando

001 01010

Programação e Níveis de Linguagem

11/03/2013 54

� LINGUAGEM DE BAIXO NÍVEL

São linguagens de programação nas quais os programas são escritos em uma notação que está próxima da linguagem de máquina.

Exemplo:código da operação operando significado

LD A load AMPI 5 multiplica 5

Programação e Níveis de Linguagem

11/03/2013 55

� LINGUAGEM DE ALTO NÍVEL (OU DE COMPILADORES)São linguagens de programação nas quais se pode escreverprogramas em uma notação próxima à maneira natural de expressar o problema que se deseja resolver

Exemplo:RESULT = D-((A+B)/C)

Aplicações Científicas :FORTRAN, ALGOL, BASIC, APL, LISP, PASCAL, ADA, C, PROLOG, PLI

Aplicações Comerciais:COBOL, RPG, PLI

Programação e Níveis de Linguagem

11/03/2013 56

Do Algoritmo ao Programa

� O algoritmo em linguagem humana deve ser codificado em uma linguagem de programação. Depois é gerado um programa em linguagem de máquina para que o computador possa entender as instruções fornecidas. Estágios:

Editor

# include <stdio.h>main(){

printf(“Hello World”);}Programa-fonte: p1.c

Compilador

Programa-objeto(p1.o)

10100101

Bibliotecas

LigadorPrograma-executável(p1.exe)

Linguagens compiladas: C, C++, FORTRAN

11/03/2013 57

Editor

# include <stdio.h>main(){

printf(“Hello World”);}

Interpretador

Resultado daexecução

Linguagens interpretadas: MATLAB, JavaScript

� No ambiente de desenvolvimento, o programa interpretador compila o programa-fonte, linha a linha. A sintaxe de cada comando é verificada e,se estiver correta, o comando é executado. Em tais linguagens, a execuçãode programa é, em média, dez vezes mais lenta que seu correspondentecompilado.

Do Algoritmo ao Programa

11/03/2013 58

� COMPILADOR: Programa utilizado pelo computador para traduzir os comandos simbólicos de uma linguagem de alto nível, para linguagem de máquina.

Do Algoritmo ao Programa

� INTERPRETADOR: Lê e executa uma declaração do programa por vez. Nenhuma fase intermediária de compilação é necessária. A execução do programa interpretado requer que o interpretador da linguagemesteja sendo executado no computador.

� LIGADOR: Programa utilizado pelo computador para traduzir os comandos simbólicos de uma linguagem de baixo nível , para linguagem de máquina.

� EDITOR: Ambiente onde os programas de computador podem ser escritos.

11/03/2013 59

1- O COMPUTADOR

FIM FIM FIM FIM FIM FIM FIM FIM

AULA 1AULA 1AULA 1AULA 1AULA 1AULA 1AULA 1AULA 1