You are on page 1of 90

Profs.

: Andrey Elisio Monteiro Brito


Jos Eustquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria
Carga Horria: 60 h
rangel@dsc.ufcg.edu.br

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.

ser capaz de:


Compreender

conceitos computacionais

bsicos;
Familiarizar-se
Familiarizar-se Tomar

com diferentes tipos de linguagens de programao;


com o histrico da linguagem de programao C; conhecimento da biblioteca-padro da linguagem C;
rangel@dsc.ufcg.edu.br

Objetivos
Aps a discusso do material deste captulo, v.

ser capaz de:


Compreender

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

A linguagem de programao C Tcnicas de Programao Estruturada

Extenso do Livro-texto

Fundamentos de C++

Captulos 15 a 23 Captulos 24 a 30

Fundamentos de Java

Pblico-alvo

Estudantes universitrios com pouca ou nenhuma experincia de programao

rangel@dsc.ufcg.edu.br

O que um Computador?
Computador
Dispositivo capaz de realizar computaes e

tomar decises lgicas


Computadores processam dados a partir de

conjuntos de instrues denominadas programas


Mquina eletrnica capaz de receber

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

Entrada (Input) Processamento (Processing) Sada (Output)

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

Gama variada de dispositivos que compem um computador


Teclado, terminal de vdeo (monitor), mouse, discos, memria, CD-ROM e unidades de processamento

Software

Programas que so executados em um computador

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 :

Os programas aplicativos se concentram na

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:

O software bsico tm como objetivo

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.

exemplos: sistemas operacionais, compiladores, editores de texto, etc.

rangel@dsc.ufcg.edu.br

18

Organizao de um Computador
Unidade Central de Processamento
Dispositivos de Entrada
Unidade de Controle ULA

Dispositivos de Sada

Unidade Primria de Armazenamento

Dispositivos de Armazenamento Secundrio


rangel@dsc.ufcg.edu.br

19

Organizao de um Computador

Unidades Lgicas Bsicas


Unidade de Entrada (Input Unit)

Obteno da informao a partir de dispositivos de entrada (e.g. teclado, mouse)

Unidade de Sada (Output unit)

Apresenta a informao em dispositivos de sada (e.g. monitor, impressora)

Unidade de Memria (Memory unit)

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

Unidade Central de Processamento

Conjunto complexo de circuitos eletrnicos. Executa instrues de programa armazenadas. Duas partes:

Unidade de controle Unidade aritmtica e lgica (ALU)

2004 by Pearson Education

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.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

23

Unidade Aritmtica e Lgica


Executa todas as operaes

aritmticas e lgicas. Operaes aritmticas:

Adio, subtrao, multiplicao, diviso.

Operaes lgicas: Compara nmeros, letras ou caracteres especiais. Testa uma de trs condies:

Condio de igualdade (igual a) Condio menor que Condio maior que


rangel@dsc.ufcg.edu.br

2004 by Pearson Education

24

Armazenamento de Dados e a

CPU
Dois tipos de armazenamento:

Armazenamento primrio (memria):


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:

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

25

A CPU e a Memria
A CPU no pode processar dados diretamente do

disco ou de um dispositivo de entrada:


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.

Itens enviados CPU para ser processados:

Dados e instrues permanecem na memria at

serem enviados a um dispositivo de sada ou armazenamento, ou o programa ser fechado.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

26

reas de Armazenamento Temporrio


Registradores
Memria

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

27

Registradores
reas de armazenamento temporrio de

alta velocidade.

Localizaes de armazenamento situadas dentro da CPU.

Funcionam sob direo da unidade de

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

2004 by Pearson Education

28

Memria
Tambm conhecida como armazenamento

primrio e memria principal.


Freqentemente expressa como memria de acesso aleatrio (RAM). No faz parte da CPU.

Retm dados e instrues para

serem processados. Armazena informaes somente enquanto o programa est em operao.


2004 by Pearson Education

rangel@dsc.ufcg.edu.br

29

Como a CPU Executa Instrues

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.

Cada CPU tem seu prprio conjunto de instrues:

Aquelas instrues as quais a CPU pode entender e executar.

rangel@dsc.ufcg.edu.br

30

O Ciclo da Mquina
O tempo necessrio

para recuperar, executar e armazenar uma operao. Componentes:

Tempo de instruo Tempo de execuo

O clock de sistema

sincroniza as operaes.

2004 by Pearson Education

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.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

32

Tempo de Execuo
A unidade de controle transfere dados da

memria para registros na ALU.

A ALU executa instrues relativas aos dados.

A unidade de controle armazena o resultado

da operao na memria ou em um registro.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

33

Endereos de Memria

Cada localizao de memria tem um endereo:

Um nmero nico, como em uma caixa postal.

Pode conter somente uma instruo ou pea de dados:

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.

Referenciado pelo nmero:

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

34

Representao de Dados
Os computadores entendem

duas coisas: ligado e desligado. Dados so representados na forma binria:


Sistema numrico binrio (base 2). Contm somente 2 dgitos: 0 e 1.

Corresponde a dois estados: ligado e desligado.


2004 by Pearson Education
rangel@dsc.ufcg.edu.br

35

Representando Dados
Bit

Byte
Palavra

2004 by Pearson Education

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.

Unidade bsica para armazenar dados:

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

37

Byte
Um grupo de 8 bits.

Cada byte tem 256 (28) valores possveis.


Pode ser letra, dgito ou caractere especial.

Para texto, armazena um caractere:

Dispositivos de memria e armazenamento

so medidos em nmero de bytes.

2004 by Pearson Education

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.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

39

Capacidades de Armazenamento

Kilobyte: 1024 (210) bytes.

Capacidade de memria dos computadores pessoais mais antigos.


Memria de computadores pessoais. Dispositivos de armazenamento portteis (disquetes, CD-ROMs). Dispositivos de armazenamento (discos rgidos). Memria de mainframes e servidores de rede. Dispositivos de armazenamento para sistemas muito grandes.

Megabyte: aproximadamente, um milho (220) de bytes.


Gigabyte: aproximadamente, um bilho (230) de bytes.


Terabyte: aproximadamente, um trilho (240) de bytes.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

40

Capacidades de Armazenamento
SUMRIO:

1 Bit = Binary Digit

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

representar um caractere de dados.

Necessrios para os computadores poderem intercambiar dados. ASCII EBCDIC Unicode

Esquemas comuns:

2004 by Pearson Education

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.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

43

EBCDIC
Sigla de Extended Binary Coded Decimal

Interchange Code.

Usado principalmente em mainframes IBM e compatveis com IBM.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

44

Unicode
Projetado para acomodar alfabetos com

mais de 256 caracteres. Usa 16 bits para representar um caractere.

65.536 valores possveis.

Exige duas vezes mais espao para

armazenar dados.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

45

A Unidade de Sistema
Abriga os componentes eletrnicos do

sistema de computador:

Placa-me (motherboard) Dispositivos de armazenamento

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

46

Placa-me (motherboard)
Placa de circuitos plana

que contm os circuitos do computador.

A unidade central de processamento (microprocessador) o componente mais importante.

http://www.youtube.com/watch?v=zq WKDzlIssU

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

47

Dispositivos de Armazenamento
Armazenamento de longo prazo da memria.

Dados no se perdem quando o computador desligado.

Incluem-se entre os exemplos: discos

rgidos, disquetes, DVD-ROMs.

2004 by Pearson Education

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:

Unidade central de processamento. Registradores. Clock do sistema.


2004 by Pearson Education
rangel@dsc.ufcg.edu.br

49

Microprocessador
Como funcionam os processadores
http://www.youtube.com/watch?v=IfOIB4-pn1k

Conhea mais o processador

http://olhardigital.uol.com.br/produtos/central_ de_videos/conheca-seu-micro-processador

rangel@dsc.ufcg.edu.br

50

Transistores
Comutadores eletrnicos que podem

permitir ou no a passagem de corrente eltrica.


Se a corrente eltrica passar, o comutador estar ativado, representando um bit 1. Caso contrrio, o comutador estar desativado, representando um bit 0.

2004 by Pearson Education

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

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

53

Memria Semicondutora
Usada pela maioria dos computadores

modernos:

Confivel, barata e compacta. Voltil: exige corrente eltrica contnua.

Se a corrente for interrompida, os dados se perdem.

Semicondutor Complementar de xido de Metal Complementary Metal Oxide Semiconductor (CMOS).

Retm informao quando a energia desligada. Usado para armazenar informaes necessrias quando o computador inicializado.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

54

RAM e ROM
Memria de Acesso Aleatrio Random-

Access Memory (RAM) Memria Somente de Leitura Read-Only Memory (ROM)

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

55

Memria de Acesso Aleatrio


Dados podem ser acessados

aleatoriamente:

O endereo de memria 10 pode ser acessado to rapidamente quanto o endereo de memria 10.000.000.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

56

Memria Somente de Leitura


Contm programas e dados registrados

permanentemente na memria pela fbrica.


No pode ser alterada pelo usurio. No-voltil: o contedo no desaparecer quando houver queda de energia. Algumas instrues no chip podem ser alteradas.

Chips de ROM programveis (PROM):

2004 by Pearson Education

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.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

58

Classificao de tipos de Memria


Quanto s operaes suportadas:

RAM ROM Voltil No Voltil

Quanto ao tempo de permanncia de dados:

rangel@dsc.ufcg.edu.br

O Barramento (Bus) do Sistema


Percursos eltricos paralelos que

transportam dados entre a CPU e a memria. Largura de barramento:


O nmero de percursos eltricos para transportar dados. Medida em bits.

Velocidade de barramento: Medida em megahertz (MHz).

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

60

Largura de Barramento
Tipicamente, a mesma largura do tamanho

de palavra da CPU. Com um tamanho de barramento maior, a CPU pode:

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.

2004 by Pearson Education

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.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

62

Barramentos de Expanso
Adiciona dispositivos perifricos ao

sistema:
Placa Porta

de expanso

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

63

Placas de Expanso
Conectam-se a slots

(encaixes) de expanso ou placa-me.

So usadas para conectar dispositivos perifricos.

A maioria dos

computadores so onboard.
2004 by Pearson Education
rangel@dsc.ufcg.edu.br

64

Portas
Conectores externos para plugar perifricos,

como, por exemplo, impressoras. Dois tipos de portas:

Seriais: transmitem dados base de um bit a cada vez.

Usadas para dispositivos lentos, como o mouse e o teclado.

Paralelas: transmitem grupos de bits em conjunto, lado a lado.

Usadas para dispositivos mais rpidos, como impressoras e scanners.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

65

Cache
Uma rea de armazenamento temporrio:

Agiliza a transferncia de dados dentro do computador.

Memria cache

Cache de processador

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

66

Memria Cache
Um pequeno bloco de memria de alta velocidade:

Armazena os dados e as instrues usados com mais freqncia e mais recentemente.

O microprocessador procura primeiramente na

cache os dados de que necessita:

Transferidos da cache muito mais rapidamente do que da memria. Se no estiverem na cache, a unidade de controle recupera-os da memria.

Quanto mais presena de dados na cache, mais rpido o desempenho do sistema.

2004 by Pearson Education

rangel@dsc.ufcg.edu.br

67

Cache de Processador
Cache interna (Nvel 1) embutida no

microprocessador.

Acesso mais rpido, porm custo mais elevado.

Cache externa (Nvel 2) em um chip

separado.

Incorporada ao processador e alguns microprocessadores atuais.

2004 by Pearson Education

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:

Quantidade de memria (execuo de programas)

Quantidade de meio de armazenamento secundrio (e.g. disco rgido)

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

Evoluo dos Sistemas Operacionais


Processamento por Lotes (Batch processing)
Apenas um servio (job) ou uma tarefa (task)

por vez
Sistemas Operacionais
Gesto de transies entre servios/tarefas Throughput incrementada

Quantidade de trabalho processada por computadores

rangel@dsc.ufcg.edu.br

71

Evoluo dos Sistemas Operacionais


Multiprogramao
Compartilhamento de recursos

computacionais por vrios servios ou tarefas


Compartilhamento de Tempo (Timesharing)
Execuo de diversos servios, com a UCP

alternando-se entre eles to freqentemente que os usurios podem interagir com cada programa durante sua execuo.

rangel@dsc.ufcg.edu.br

72

Computao Pessoal, Distribuda e Cliente/Servidor


Computao Pessoal

Econmica o bastante para uso individual


Computao Distribuda

Processamento da informao atravs de redes de computadores


Computao Cliente/Servidor

Compartilhamento da informao ao longo de redes de computadores entre servidores e clientes de arquivos (computadores pessoais)

rangel@dsc.ufcg.edu.br

73

Linguagens de Mquina, de Montagem e de Alto Nvel


Tipos de Linguagens de Programao
Linguagens de Mquina

Seqncias de nmeros relativas a instrues de mquina especficas Exemplo: +1300042774 +1400593419 +1200274027

rangel@dsc.ufcg.edu.br

74

Linguagens de Mquina, de Montagem e de Alto Nvel


Tipos de Linguagens de Programao
Linguagens de Montagem (Assembly)

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

Linguagens de Mquina, de Montagem e de Alto Nvel


Tipos de Linguagens de Programao
Linguagens de Alto Nvel
Cdigos Uso

similares ao ingls cotidiano

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

Emprego na codificao de sistemas operacionais modernos


Independncia de hardware (portvel)

"C Tradicional" C desenvolvido no final da dcada de 70


rangel@dsc.ufcg.edu.br

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

definio de uma linguagem "isenta de ambigidades e independente de mquina"


Criao do C padro em 1989

Atualizao da linguagem em 1999

rangel@dsc.ufcg.edu.br

78

A Biblioteca Padro de C
Programas em C mdulos denominados

funes
Possibilidade de criao de funes

especficas pelo programador

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 como blocos para a construo de aplicaes prprias

Reuso evita a reinveno da roda

Uso de funes existentes , em geral, melhor do que a reescrita de cdigo com o mesmo propsito

Funes da biblioteca foram cuidadosamente desenvolvidas para uso eficiente e portabilidade

rangel@dsc.ufcg.edu.br

80

Tendncias de Desenvolvimento de Software: Tecnologia de Objetos


Objetos

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

Maior capacidade de reuso


rangel@dsc.ufcg.edu.br

81

Tendncias de Desenvolvimento de Software: Tecnologia de Objetos


Objetos

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

Produtividade incrementada de 10 a 100 vezes

Linguagem dominante na indstria e em academias

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++

Vide Captulo 15 (introduo ao 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

Outras Linguagens de Alto Nvel


FORTRAN

Uso em aplicaes de engenharia e aplicaes cientficas

COBOL

Uso para a manipulao de grandes quantidades de dados

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

Ambiente Tpico de Desenvolvimento de Programas em C


Fases de Programas
Editor Disco
O programa criado no editor e armazenado em disco. O programa prprocessador processa o cdigo. O compilador cria o cdigo-objeto e o armazena em disco. O linker faz o link do cdigo-objeto com as bibliotecas.

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

Preparao para o Captulo 2


Exemplo (Soma de 2 Inteiros)
/* Programa que executa a soma de dois inteiros */

#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*/

primeiro nmero inteiro */

return 0; /* indicao de que o programa encerrou satisfatoriamente */ } /* fim da funo main */


rangel@dsc.ufcg.edu.br

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

You might also like