Professional Documents
Culture Documents
CEEI
DSC
Introduo Programao
Tpicos:
Introduo O
que um Computador? Organizao de um Computador Evoluo de Sistemas Operacionais Computao Pessoal, Distribuda e Cliente/Servidor Linguagens de Mquina, de Montagem (Assembly) e de Alto Nvel Histrico da Linguagem C A Biblioteca Padro de C
rangel@dsc.ufcg.edu.br
Introduo Programao
Tendncias
de Desenvolvimento de Software: Tecnologia de Objetos C e C++ Java Outras Linguagens de Alto Nvel Programao Estruturada Fundamentos de um Ambiente Tpico de Desenvolvimento de Programas em C Tendncias de Hardware Internet World Wide Web (WEB)
rangel@dsc.ufcg.edu.br
Objetivos
Aps a discusso do material deste captulo, v.
conceitos computacionais
bsicos;
Familiarizar-se
Familiarizar-se Tomar
Objetivos
Aps a discusso do material deste captulo, v.
os elementos de um ambiente tpico de programao em C; porque importante aprender C em um primeiro curso programao; porque C oferece um embasamento para estudos posteriores de outras linguagens de programao, em especial C++ e Java.
rangel@dsc.ufcg.edu.br
Entender
Ponderar
Introduo
Objeto de Estudo
Extenso do Livro-texto
Fundamentos de C++
Captulos 15 a 23 Captulos 24 a 30
Fundamentos de Java
Pblico-alvo
rangel@dsc.ufcg.edu.br
O que um Computador?
Computador
Dispositivo capaz de realizar computaes e
informaes, submet-las a um conjunto especificado/pr-determinado de operaes lgicas/aritmticas e fornecer o resultado destas operaes
rangel@dsc.ufcg.edu.br
O que um Computador?
Os computadores atuais so dispositivos
eletrnicos que, sob direo e controle de um programa, executam quatro operaes fundamentais
Armazenamento (Storage)
rangel@dsc.ufcg.edu.br
O que um Computador?
Ciclo IPOS
Entrada Processamento
Sada
Armazenamento
rangel@dsc.ufcg.edu.br
O que um Computador?
Sistema de computao
Integrao de componentes atuando como uma entidade, com o propsito de processar dados, i.e. realizar algum tipo de operao aritmtica/ lgica envolvendo os dados, de modo a produzir diferentes nveis de informaes
rangel@dsc.ufcg.edu.br
10
O que um Computador?
Componentes de um Sistema Computacional
Peopleware
Hardware
Software
rangel@dsc.ufcg.edu.br
11
O que um Computador?
Componentes de um Sistema Computacional
Peopleware
Componente humana de um sistema de computao, i.e. indivduos que utilizam o computador como ferramenta
rangel@dsc.ufcg.edu.br
12
O que um Computador?
Componentes de um Sistema Computacional
Hardware
Componente fsica de um sistema de computao, i.e. todos os equipamentos utilizados pelo usurio nas aes de entrada, processamento, armazenamento e sada de dados
rangel@dsc.ufcg.edu.br
13
O que um Computador?
Componentes de um Sistema Computacional
Software
Componente lgica de um sistema de computao, i.e. sries de instrues que fazem o computador funcionar (programas de computador)
rangel@dsc.ufcg.edu.br
14
O que um Computador?
Hardware
Software
rangel@dsc.ufcg.edu.br
15
O Software
" o software que d vida mquina".
Os programas que compem o software da mquina so instrues eletrnicas que informam ao computador como realizar determinadas tarefas. Existem duas classes de software: Software bsico. Software aplicativo.
rangel@dsc.ufcg.edu.br
16
O Software
Software aplicativo :
soluo de algum tipo de problema especfico, utilizando o computador como ferramenta (o foco est na aplicao). exemplos: jogos, planilhas eletrnicas e aplicaes grficas.
rangel@dsc.ufcg.edu.br
17
O Software
Software bsico:
possibilitar a operao e o uso do computador, seja qual for a aplicao (o foco est na mquina) o software bsico se concentra na necessidades gerais de grande parte dos usurios.
rangel@dsc.ufcg.edu.br
18
Organizao de um Computador
Unidade Central de Processamento
Dispositivos de Entrada
Unidade de Controle ULA
Dispositivos de Sada
19
Organizao de um Computador
Acesso rpido, de baixa capacidade e armazenamento da informao obtida pelos dispositivos de entrada
rangel@dsc.ufcg.edu.br
20
Organizao de um Computador
Unidade Central de Processamento UCP (Central
Processing unit - CPU) Superviso e coordenao das demais unidades que compem o computado Unidade de Armazenamento Secundrio (Secondary storage unit)
Armazenamento barato, de alta capacidade e longa
durao
Armazenamento de programas inativos
rangel@dsc.ufcg.edu.br
21
Conjunto complexo de circuitos eletrnicos. Executa instrues de programa armazenadas. Duas partes:
rangel@dsc.ufcg.edu.br
22
Unidade de Controle
Direciona o sistema do computador a
executar instrues de programa armazenadas. Deve comunicar-se com a memria e com a ALU. Envia dados e instrues do armazenamento secundrio para a memria, quando necessrio.
rangel@dsc.ufcg.edu.br
23
Operaes lgicas: Compara nmeros, letras ou caracteres especiais. Testa uma de trs condies:
24
Armazenamento de Dados e a
CPU
Dois tipos de armazenamento:
Armazena dados temporariamente. A CPU referencia-o tanto para obteno de instrues de programa como de dados. Armazenamento de longo prazo. Armazenado em mdia externa; por exemplo, um disco.
Armazenamento secundrio:
rangel@dsc.ufcg.edu.br
25
A CPU e a Memria
A CPU no pode processar dados diretamente do
Primeiramente, eles devem residir na memria. A unidade de controle recupera dados do disco e transfere-os para a memria. A unidade de controle envia itens CPU e depois os envia novamente memria aps serem processados.
rangel@dsc.ufcg.edu.br
26
rangel@dsc.ufcg.edu.br
27
Registradores
reas de armazenamento temporrio de
alta velocidade.
controle:
Recebem, guardam e transferem instrues ou dados. Controlam onde a prxima instruo a ser executada ou os dados necessrios sero armazenados.
rangel@dsc.ufcg.edu.br
28
Memria
Tambm conhecida como armazenamento
Freqentemente expressa como memria de acesso aleatrio (RAM). No faz parte da CPU.
rangel@dsc.ufcg.edu.br
29
Quatro etapas so executadas para cada instruo: captao, decodificao, execuo e armazenamento.
Ciclo de mquina: a quantidade de tempo necessria para executar uma instruo.
Computadores pessoais executam-nas em menos de um milionsimo de segundo. Supercomputadores executam-nas em menos de um trilionsimo de segundo.
rangel@dsc.ufcg.edu.br
30
O Ciclo da Mquina
O tempo necessrio
O clock de sistema
sincroniza as operaes.
rangel@dsc.ufcg.edu.br
31
Tempo de Instruo
Tambm chamado de I-time.
A unidade de controle recebe a instruo da
memria e a coloca em um registro. A unidade de controle decodifica a instruo e determina qual a localizao na memria para os dados necessrios.
rangel@dsc.ufcg.edu.br
32
Tempo de Execuo
A unidade de controle transfere dados da
rangel@dsc.ufcg.edu.br
33
Endereos de Memria
Quando dados so reescritos na memria, o contedo anterior desse endereo destrudo. As linguagens de programao usam um endereo simblico (nomeado), tal como Horas ou Salrio.
rangel@dsc.ufcg.edu.br
34
Representao de Dados
Os computadores entendem
35
Representando Dados
Bit
Byte
Palavra
rangel@dsc.ufcg.edu.br
36
Bit
Abreviao de binary digit (dgito binrio).
Dois valores possveis: 0 e 1. Nunca pode estar vazio. 0 significa desligado; 1 significa ligado.
rangel@dsc.ufcg.edu.br
37
Byte
Um grupo de 8 bits.
rangel@dsc.ufcg.edu.br
38
Palavra
O nmero de bits que a CPU processa como
uma unidade.
Tipicamente, um nmero inteiro de bytes. Quanto maior a palavra, mais potente o computador. Computadores pessoais tipicamente tm 32 ou 64 bits de extenso de palavras.
rangel@dsc.ufcg.edu.br
39
Capacidades de Armazenamento
rangel@dsc.ufcg.edu.br
40
Capacidades de Armazenamento
SUMRIO:
8 Bits = 1 Byte 1000 Bytes = 1 Kilobyte 1000 Kilobytes = 1 Megabyte 1000 Megabytes = 1 Gigabyte 1000 Gigabytes = 1 Terabyte 1000 Terabytes = 1 Petabyte 1000 Petabytes = 1 Exabyte 1000 Exabytes = 1 Zettabyte 1000 Zettabytes = 1 Yottabyte 1000 Yottabytes = 1 Brontobyte 1000 Brontobytes = 1 Geopbyte
rangel@dsc.ufcg.edu.br
41
Esquemas de Codificao
Provem uma maneira comum para
Esquemas comuns:
rangel@dsc.ufcg.edu.br
42
ASCII
Sigla de American Standard Code for
Information Interchange. O padro mais amplamente usado. Usado virtualmente em todos os computadores pessoais.
rangel@dsc.ufcg.edu.br
43
EBCDIC
Sigla de Extended Binary Coded Decimal
Interchange Code.
rangel@dsc.ufcg.edu.br
44
Unicode
Projetado para acomodar alfabetos com
armazenar dados.
rangel@dsc.ufcg.edu.br
45
A Unidade de Sistema
Abriga os componentes eletrnicos do
sistema de computador:
rangel@dsc.ufcg.edu.br
46
Placa-me (motherboard)
Placa de circuitos plana
http://www.youtube.com/watch?v=zq WKDzlIssU
rangel@dsc.ufcg.edu.br
47
Dispositivos de Armazenamento
Armazenamento de longo prazo da memria.
rangel@dsc.ufcg.edu.br
48
Microprocessador
Unidade central de
processamento impressa em chip de silcio. Contm dezenas de milhes de minsculos transistores. Componentes-chave:
49
Microprocessador
Como funcionam os processadores
http://www.youtube.com/watch?v=IfOIB4-pn1k
http://olhardigital.uol.com.br/produtos/central_ de_videos/conheca-seu-micro-processador
rangel@dsc.ufcg.edu.br
50
Transistores
Comutadores eletrnicos que podem
Se a corrente eltrica passar, o comutador estar ativado, representando um bit 1. Caso contrrio, o comutador estar desativado, representando um bit 0.
rangel@dsc.ufcg.edu.br
51
Tipos de Chips
A Intel produz uma famlia de processadores:
Processadores Pentium 4, Pentium Dual Core, Core 2 Duo, i3 e i5 na maioria dos PCs. Processador Celeron e Atom vendido para PCs de baixo custo. Opteron, Xeon, Itanium, Core 2 Extreme, Core 2 Quad e i7 para estaes de trabalho high-end e servidores de rede. A Cyrix e a AMD produzem microprocessadores compatveis com Intel. Chips PowerPC so usados principalmente em computadores Macintosh. O microprocessador Alpha, da Compaq, usado em servidores high-end.
Outros processadores:
rangel@dsc.ufcg.edu.br
52
Componentes da Memria
Memria semicondutora
RAM e ROM
Memria Flash
rangel@dsc.ufcg.edu.br
53
Memria Semicondutora
Usada pela maioria dos computadores
modernos:
Retm informao quando a energia desligada. Usado para armazenar informaes necessrias quando o computador inicializado.
rangel@dsc.ufcg.edu.br
54
RAM e ROM
Memria de Acesso Aleatrio Random-
rangel@dsc.ufcg.edu.br
55
aleatoriamente:
O endereo de memria 10 pode ser acessado to rapidamente quanto o endereo de memria 10.000.000.
rangel@dsc.ufcg.edu.br
56
No pode ser alterada pelo usurio. No-voltil: o contedo no desaparecer quando houver queda de energia. Algumas instrues no chip podem ser alteradas.
rangel@dsc.ufcg.edu.br
57
Memria Flash
RAM no-voltil
Usada em telefones celulares, cmeras digitais e computadores manuais (handheld). Os chips de memria flash assemelham-se aos cartes de crdito. Menores do que uma unidade de disco e requerem menos energia.
rangel@dsc.ufcg.edu.br
58
rangel@dsc.ufcg.edu.br
rangel@dsc.ufcg.edu.br
60
Largura de Barramento
Tipicamente, a mesma largura do tamanho
Transferir mais dados simultaneamente: Torna o computador mais rpido. Referenciar nmeros de endereo de memria maiores: Permite mais memria. Suportar um nmero e uma variedade maiores de instrues.
rangel@dsc.ufcg.edu.br
61
Velocidade de Barramento
Quanto maior a velocidade de barramento,
mais rapidamente os dados viajaro por meio do sistema. Computadores pessoais tm velocidades de barramento de 400 MHz , 533 MHz, 800 MHz ou 1066 MHz.
rangel@dsc.ufcg.edu.br
62
Barramentos de Expanso
Adiciona dispositivos perifricos ao
sistema:
Placa Porta
de expanso
rangel@dsc.ufcg.edu.br
63
Placas de Expanso
Conectam-se a slots
A maioria dos
computadores so onboard.
2004 by Pearson Education
rangel@dsc.ufcg.edu.br
64
Portas
Conectores externos para plugar perifricos,
rangel@dsc.ufcg.edu.br
65
Cache
Uma rea de armazenamento temporrio:
Memria cache
Cache de processador
rangel@dsc.ufcg.edu.br
66
Memria Cache
Um pequeno bloco de memria de alta velocidade:
Transferidos da cache muito mais rapidamente do que da memria. Se no estiverem na cache, a unidade de controle recupera-os da memria.
rangel@dsc.ufcg.edu.br
67
Cache de Processador
Cache interna (Nvel 1) embutida no
microprocessador.
separado.
rangel@dsc.ufcg.edu.br
68
Cache e Registradores
Diferena entre Memria Cache e Registradores Registradores: armazenam dados a serem usados de imediato Cache: armazena dados usados mais frequentemente
http://taturial.blogspot.com.br/2012/02/diferenca-entre-asmemorias.html
http://informatica.hsw.uol.com.br/memoria-do-computador4.htm
http://crv.educacao.mg.gov.br/sistema_crv/index.aspx?ID_OBJETO=3 7829&tipo=ob&cp=003366&cb=&n1=&n2=Biblioteca%20Virtual&n3=C adernos%20de%20Inform%C3%A1tica&n4=&b=s
rangel@dsc.ufcg.edu.br
69
Tendncias de Hardware
Caractersticas que, grosso modo, duplicam a cada
um ou dois anos:
Armazenamento de longa durao de programas e dados Velocidade com que os computadores executam os programas
Rapidez do Processador
rangel@dsc.ufcg.edu.br
70
por vez
Sistemas Operacionais
Gesto de transies entre servios/tarefas Throughput incrementada
rangel@dsc.ufcg.edu.br
71
alternando-se entre eles to freqentemente que os usurios podem interagir com cada programa durante sua execuo.
rangel@dsc.ufcg.edu.br
72
Compartilhamento da informao ao longo de redes de computadores entre servidores e clientes de arquivos (computadores pessoais)
rangel@dsc.ufcg.edu.br
73
Seqncias de nmeros relativas a instrues de mquina especficas Exemplo: +1300042774 +1400593419 +1200274027
rangel@dsc.ufcg.edu.br
74
Instrues computacionais formuladas a partir de termos ingleses abreviados, representando operaes elementares, traduzidas a partir de montadores (assemblers) Exemplo: LOAD A ADD B STORE (A+B)
rangel@dsc.ufcg.edu.br
75
de notaes matemticas (traduzidas via compiladores) Bruto = Lquido + Descontos rea = (Base * Altura)/2
Exemplo:
rangel@dsc.ufcg.edu.br
76
Histrico da Linguagem C
Linguagem C
Desenvolvida por Ritchie, a partir de duas linguagens de programao antecessoras: BCPL e B Uso no desenvolvimento do UNIX
77
Histrico da Linguagem C
Padronizao da Linguagem C
Motivao: Incompatibilidade entre diversas
variantes existentes de C
Formao de um comit da ANSI para a
rangel@dsc.ufcg.edu.br
78
A Biblioteca Padro de C
Programas em C mdulos denominados
funes
Possibilidade de criao de funes
Vantagem
Conhecimento exato do comportamento das funes Dispndio de tempo no desenvolvimento de funes especficas
rangel@dsc.ufcg.edu.br
Desvantagem
79
A Biblioteca Padro de C
Programas em C mdulos denominados
funes
Uso freqente das funes da biblioteca de C por programadores
Uso de funes existentes , em geral, melhor do que a reescrita de cdigo com o mesmo propsito
rangel@dsc.ufcg.edu.br
80
Componentes reusveis de software que modelam itens do mundo real Unidades significativas de software
Objetos de dados, tempo, pagamento, udio, vdeo, arquivos, etc. Qualquer nome pode ser representado como um objeto com comportamento bem definido
81
Maior compreensibilidade, melhor organizao, maior facilidade de manuteno do que a programao baseada em procedimentos (procedural) Favorescimento modularidade
rangel@dsc.ufcg.edu.br
82
C e C++
C++
Superconjunto de C, desenvolvido por Bjarne Stroustrup no Bell Labs Extende" C, oferecendo facilidades de orientao a objetos Poder do projeto orientado a objetos
rangel@dsc.ufcg.edu.br
83
C e C++
Aprendizado de C++
Uma vez que C++ abrange C, se afigura indispensvel o domnio de C para um aprendizado efetivo de C++
rangel@dsc.ufcg.edu.br
84
JAVA
Uso de Java
Criao de pginas Web com contedo dinmico e interativo Desenvolvimento de aplicaes empresariais em larga escala Incrementao da funcionalidade de servidores Web Desenvolvimento de aplicaes para dispositivos tais como telefones celulares, pagers e assistentes digitais pessoais (PDA)
rangel@dsc.ufcg.edu.br
85
COBOL
Pascal
Uso acadmico
rangel@dsc.ufcg.edu.br
86
Programao Estruturada
Programao Estruturada
Abordagem com regras bem definidas para a escrita de programas Clareza, facilidade de teste e depurao e facilidade de alterao do cdigo
rangel@dsc.ufcg.edu.br
87
em C/C++
Edio
Pr-processador
Disco
Pr-processamento
Compilao Linkagem
Compilador
Disco
Linker
Disco
Memria Primria
Carregamento
Execuo
Carregador
O carregador transfere o programa para a memria.
Disco
Memria Primria
A UCP recupera cada instruo e a executa, armazenando (quando possvel) novos valores de dados medida que o programa executado.
UCP
rangel@dsc.ufcg.edu.br
88
#include <stdio.h> /* incio da funo main */ int main() { int inteiro1; /*varivel que contm a primeira parcela da soma */ int inteiro2; /* varivel que contm a segunda parcela da soma */ int soma; /* varivel na qual ser armazenado o resultado da soma */ printf(Digite o primeiro inteiro:\n"); /*preparao para o recebimento do
scanf( "%d", &inteiro1 ); /* leitura do primeiro nmero */ printf(Digite o segundo inteiro:\n"); /* preparao para o recebimento do
scanf( "%d", &inteiro2 ); /* leitura do primeiro nmero */ soma = inteiro1 + inteiro2; /* realizao da soma dos 2 inteiros digitados pelo
usurio */ printf( A soma eh igual a %d\n", soma ); /* impresso da soma */ segundo nmero inteiro*/
89
Andrey Elisio Monteiro Brito Jos Eustquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE
CENTRO DE ENGENHARIA ELTRICA E INFORMTICA
DEPARTAMENTO DE SISTEMAS E COMPUTAO
CEEI
DSC
rangel@dsc.ufcg.edu.br