Curso: Programação de Computadores - feg.unesp.br · 11/3/2013 · 1-O COMPUTADOR Curso:...
Transcript of Curso: Programação de Computadores - feg.unesp.br · 11/3/2013 · 1-O COMPUTADOR Curso:...
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