You are on page 1of 90

Profs.

: Andrey Elisio Monteiro Brito
José Eustáquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria
Carga Horária: 60 h
rangel@dsc.ufcg.edu.br

CEEI

DSC

Introdução à Programação
 Tópicos:
 Introdução O

que é um Computador?  Organização de um Computador  Evolução de Sistemas Operacionais  Computação Pessoal, Distribuída e Cliente/Servidor  Linguagens de Máquina, de Montagem (Assembly) e de Alto Nível  Histórico da Linguagem C  A Biblioteca Padrão de C

rangel@dsc.ufcg.edu.br

2

Introdução à Programação
 Tendências

de Desenvolvimento de Software: Tecnologia de Objetos  C e C++  Java  Outras Linguagens de Alto Nível  Programação Estruturada  Fundamentos de um Ambiente Típico de Desenvolvimento de Programas em C  Tendências de Hardware  Internet  World Wide Web (WEB)
rangel@dsc.ufcg.edu.br

3

com o histórico da linguagem de programação C.Objetivos  Após a discussão do material deste capítulo.edu. v. será capaz de:  Compreender conceitos computacionais básicos.  Familiarizar-se  Familiarizar-se  Tomar com diferentes tipos de linguagens de programação.ufcg. rangel@dsc.br 4 . conhecimento da biblioteca-padrão da linguagem C.

edu. porque C oferece um embasamento para estudos posteriores de outras linguagens de programação. porque é importante aprender C em um primeiro curso programação. em especial C++ e Java.ufcg. será capaz de:  Compreender os elementos de um ambiente típico de programação em C.br  Entender  Ponderar 5 . rangel@dsc. v.Objetivos  Após a discussão do material deste capítulo.

br 6 .Introdução  Objeto de Estudo A linguagem de programação C  Técnicas de Programação Estruturada   Extensão do Livro-texto   Fundamentos de C++   Capítulos 15 a 23 Capítulos 24 a 30 Fundamentos de Java  Público-alvo  Estudantes universitários com pouca ou nenhuma experiência de programação rangel@dsc.edu.ufcg.

ufcg. submetê-las a um conjunto especificado/pré-determinado de operações lógicas/aritméticas e fornecer o resultado destas operações rangel@dsc.edu.br 7 .O que é um Computador?  Computador  Dispositivo capaz de realizar computações e tomar decisões lógicas  Computadores processam dados a partir de conjuntos de instruções denominadas programas  Máquina eletrônica capaz de receber informações.

edu.O que é um Computador?  Os computadores atuais são dispositivos eletrônicos que. executam quatro operações fundamentais    Entrada (Input) Processamento (Processing) Saída (Output)  Armazenamento (Storage) rangel@dsc. sob direção e controle de um programa.ufcg.br 8 .

br 9 .ufcg.O que é um Computador?  Ciclo IPOS Entrada Processamento Saída Armazenamento rangel@dsc.edu.

realizar algum tipo de operação aritmética/ lógica envolvendo os dados. de modo a produzir diferentes níveis de informações rangel@dsc.e. i.O que é um Computador?  Sistema de computação  Integração de componentes atuando como uma entidade.edu.ufcg. com o propósito de processar dados.br 10 .

ufcg.O que é um Computador?  Componentes de um Sistema Computacional Peopleware Hardware Software rangel@dsc.br 11 .edu.

indivíduos que utilizam o computador como ferramenta rangel@dsc.edu.O que é um Computador?  Componentes de um Sistema Computacional  Peopleware  Componente humana de um sistema de computação.ufcg. i.e.br 12 .

ufcg.e. processamento.br 13 .O que é um Computador?  Componentes de um Sistema Computacional  Hardware  Componente física de um sistema de computação. i.edu. armazenamento e saída de dados rangel@dsc. todos os equipamentos utilizados pelo usuário nas ações de entrada.

br 14 . séries de instruções que fazem o computador funcionar (programas de computador) rangel@dsc. i.ufcg.O que é um Computador?  Componentes de um Sistema Computacional  Software  Componente lógica de um sistema de computação.e.edu.

discos. memória.O que é um Computador?  Hardware  Gama variada de dispositivos que compõem um computador Teclado.ufcg.edu. CD-ROM e unidades de processamento   Software  Programas que são executados em um computador rangel@dsc.br 15 . mouse. terminal de vídeo (monitor).

O Software  "É o software que dá vida à máquina".edu. Os programas que compõem o software da máquina são instruções eletrônicas que informam ao computador como realizar determinadas tarefas.  Existem duas classes de software:  Software básico.ufcg.  Software aplicativo.  rangel@dsc.br 16 .

ufcg.edu. rangel@dsc.br 17 . planilhas eletrônicas e aplicações gráficas. utilizando o computador como ferramenta (o foco está na aplicação).  exemplos: jogos.O Software  Software aplicativo :  Os programas aplicativos se concentram na solução de algum tipo de problema específico.

ufcg. editores de texto.  exemplos: sistemas operacionais. seja qual for a aplicação (o foco está na máquina) – o software básico se concentra na necessidades gerais de grande parte dos usuários. compiladores.edu. rangel@dsc.O Software  Software básico:  O software básico têm como objetivo possibilitar a operação e o uso do computador. etc.br 18 .

Organização de um Computador Unidade Central de Processamento Dispositivos de Entrada Unidade de Controle ULA Dispositivos de Saída Unidade Primária de Armazenamento Dispositivos de Armazenamento Secundário rangel@dsc.ufcg.edu.br 19 .

br 20 .g.g.Organização de um Computador  Unidades Lógicas Básicas  Unidade de Entrada (Input Unit)  Obtenção da informação a partir de dispositivos de entrada (e. teclado. mouse)  Unidade de Saída (Output unit)  Apresenta a informação em dispositivos de saída (e.edu.ufcg. monitor. de baixa capacidade e armazenamento da informação obtida pelos dispositivos de entrada rangel@dsc. impressora)  Unidade de Memória (Memory unit)  Acesso rápido.

ufcg.edu. de alta capacidade e longa  duração  Armazenamento de programas inativos rangel@dsc.Organização de um Computador  Unidade Central de Processamento – UCP (Central Processing unit .br 21 .CPU) Supervisão e coordenação das demais unidades que compõem o computado  Unidade de Armazenamento Secundário (Secondary storage unit)  Armazenamento barato.

br 22 .edu.  Executa instruções de programa armazenadas.ufcg.Unidade Central de Processamento  Conjunto complexo de circuitos eletrônicos.  Duas partes:   Unidade de controle Unidade aritmética e lógica (ALU) © 2004 by Pearson Education rangel@dsc.

Unidade de Controle  Direciona o sistema do computador a executar instruções de programa armazenadas.edu.ufcg.  Envia dados e instruções do armazenamento secundário para a memória. quando necessário.br 23 .  Deve comunicar-se com a memória e com a ALU. © 2004 by Pearson Education rangel@dsc.

Unidade Aritmética e Lógica  Executa todas as operações aritméticas e lógicas.  Testa uma de três condições:    Condição de igualdade (igual a) Condição menor que Condição maior que rangel@dsc. divisão. subtração.ufcg. multiplicação.  Operações aritméticas:  Adição. letras ou caracteres especiais.br © 2004 by Pearson Education 24 .edu.  Operações lógicas:  Compara números.

um disco.br 25 . Armazenado em mídia externa.Armazenamento de Dados e a CPU  Dois tipos de armazenamento:  Armazenamento primário (memória):   Armazena dados temporariamente. Armazenamento de longo prazo. por exemplo.edu.ufcg. A CPU referencia-o tanto para obtenção de instruções de programa como de dados.  Armazenamento secundário:   © 2004 by Pearson Education rangel@dsc.

ufcg. A unidade de controle recupera dados do disco e transfere-os para a memória.A CPU e a Memória  A CPU não pode processar dados diretamente do disco ou de um dispositivo de entrada:   Primeiramente.edu.  Itens enviados à CPU para ser processados:   Dados e instruções permanecem na memória até serem enviados a um dispositivo de saída ou armazenamento. © 2004 by Pearson Education rangel@dsc. A unidade de controle envia itens à CPU e depois os envia novamente à memória após serem processados.br 26 . eles devem residir na memória. ou o programa ser fechado.

edu.ufcg.Áreas de Armazenamento Temporário  Registradores  Memória © 2004 by Pearson Education rangel@dsc.br 27 .

ufcg.  Localizações de armazenamento situadas dentro da CPU.edu.  Funcionam sob direção da unidade de controle:   Recebem. rangel@dsc. Controlam onde a próxima instrução a ser executada ou os dados necessários serão armazenados. guardam e transferem instruções ou dados.br © 2004 by Pearson Education 28 .Registradores  Áreas de armazenamento temporário de alta velocidade.

 Armazena informações somente enquanto o programa está em operação.Memória  Também conhecida como armazenamento primário e memória principal.br 29 . Não faz parte da CPU.ufcg.  Retém dados e instruções para serem processados. © 2004 by Pearson Education rangel@dsc.edu.   Freqüentemente expressa como memória de acesso aleatório (RAM).

rangel@dsc.    Computadores pessoais executam-nas em menos de um milionésimo de segundo. execução e armazenamento. decodificação.Como a CPU Executa Instruções  Quatro etapas são executadas para cada instrução: captação.  Cada CPU tem seu próprio conjunto de instruções:  Aquelas instruções as quais a CPU pode entender e executar. Supercomputadores executam-nas em menos de um trilionésimo de segundo. Ciclo de máquina: a quantidade de tempo necessária para executar uma instrução.edu.br 30 .ufcg.

ufcg.O Ciclo da Máquina  O tempo necessário para recuperar. © 2004 by Pearson Education rangel@dsc.  Componentes:   Tempo de instrução Tempo de execução  O clock de sistema sincroniza as operações.edu. executar e armazenar uma operação.br 31 .

© 2004 by Pearson Education rangel@dsc.  A unidade de controle recebe a instrução da memória e a coloca em um registro.edu.  A unidade de controle decodifica a instrução e determina qual é a localização na memória para os dados necessários.ufcg.Tempo de Instrução  Também chamado de I-time.br 32 .

Tempo de Execução
 A unidade de controle transfere dados da

memória para registros na ALU.

A ALU executa instruções relativas aos dados.

 A unidade de controle armazena o resultado

da operação na memória ou em um registro.

© 2004 by Pearson Education

rangel@dsc.ufcg.edu.br

33

Endereços de Memória

Cada localização de memória tem um endereço:

Um número único, como em uma caixa postal.

Pode conter somente uma instrução ou peça de dados:

Quando dados são reescritos na memória, o conteúdo anterior desse endereço é destruído. As linguagens de programação usam um endereço simbólico (nomeado), tal como Horas ou Salário.

Referenciado pelo número:

© 2004 by Pearson Education

rangel@dsc.ufcg.edu.br

34

Representação de Dados
 Os computadores entendem

duas coisas: ligado e desligado.  Dados são representados na forma binária:
 

Sistema numérico binário (base 2). Contém somente 2 dígitos: 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
 Abreviação de binary digit (dígito binário).
 

Dois valores possíveis: 0 e 1. Nunca pode estar vazio. 0 significa desligado; 1 significa ligado.

 Unidade básica para armazenar dados:

© 2004 by Pearson Education

rangel@dsc.ufcg.edu.br

37

edu.  Para texto.ufcg.  Cada byte tem 256 (28) valores possíveis. Pode ser letra. dígito ou caractere especial. armazena um caractere:   Dispositivos de memória e armazenamento são medidos em número de bytes. © 2004 by Pearson Education rangel@dsc.br 38 .Byte  Um grupo de 8 bits.

edu. um número inteiro de bytes.ufcg. Computadores pessoais tipicamente têm 32 ou 64 bits de extensão de palavras. Quanto maior a palavra.    Tipicamente.br 39 .Palavra  O número de bits que a CPU processa como uma unidade. © 2004 by Pearson Education rangel@dsc. mais potente é o computador.

ufcg. CD-ROMs). Dispositivos de armazenamento para sistemas muito grandes. Dispositivos de armazenamento (discos rígidos). um milhão (220) de bytes.edu.Capacidades de Armazenamento  Kilobyte: 1024 (210) bytes. Memória de mainframes e servidores de rede.    Terabyte: aproximadamente.  © 2004 by Pearson Education rangel@dsc. um trilhão (240) de bytes.br 40 .    Gigabyte: aproximadamente. Memória de computadores pessoais. Dispositivos de armazenamento portáteis (disquetes.  Megabyte: aproximadamente.  Capacidade de memória dos computadores pessoais mais antigos. um bilhão (230) de bytes.

edu.ufcg.Capacidades de Armazenamento  SUMÁRIO:  · 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.br 41 .

edu. ASCII EBCDIC Unicode  Esquemas comuns:    © 2004 by Pearson Education rangel@dsc.  Necessários para os computadores poderem intercambiar dados.ufcg.br 42 .Esquemas de Codificação  Provêem uma maneira comum para representar um caractere de dados.

br 43 .  Usado virtualmente em todos os computadores pessoais. © 2004 by Pearson Education rangel@dsc.ASCII  Sigla de American Standard Code for Information Interchange.edu.ufcg.  O padrão mais amplamente usado.

ufcg.EBCDIC  Sigla de Extended Binary Coded Decimal Interchange Code. © 2004 by Pearson Education rangel@dsc.edu.br 44 .  Usado principalmente em mainframes IBM e compatíveis com IBM.

edu.ufcg.br 45 .  Exige duas vezes mais espaço para armazenar dados.Unicode  Projetado para acomodar alfabetos com mais de 256 caracteres.  Usa 16 bits para representar um caractere. © 2004 by Pearson Education rangel@dsc.536 valores possíveis.  65.

A Unidade de Sistema  Abriga os componentes eletrônicos do sistema de computador:   Placa-mãe (motherboard) Dispositivos de armazenamento © 2004 by Pearson Education rangel@dsc.edu.br 46 .ufcg.

Placa-mãe (motherboard)  Placa de circuitos plana que contém os circuitos do computador.br 47 . http://www.youtube.edu.ufcg.  A unidade central de processamento (microprocessador) é o componente mais importante.com/watch?v=zq WKDzlIssU © 2004 by Pearson Education rangel@dsc.

edu.  Incluem-se entre os exemplos: discos rígidos.br 48 . DVD-ROMs. disquetes. © 2004 by Pearson Education rangel@dsc.Dispositivos de Armazenamento  Armazenamento de longo prazo da memória.  Dados não se perdem quando o computador é desligado.ufcg.

Microprocessador  Unidade central de processamento impressa em chip de silício.edu.  Componentes-chave:    Unidade central de processamento.br 49 . Clock do sistema. © 2004 by Pearson Education rangel@dsc. Registradores.  Contém dezenas de milhões de minúsculos transistores.ufcg.

ufcg.edu.com/watch?v=IfOIB4-pn1k  Conheça mais o processador http://olhardigital.uol.br 50 .com.youtube.br/produtos/central_ de_videos/conheca-seu-micro-processador rangel@dsc.Microprocessador  Como funcionam os processadores http://www.

Transistores  Comutadores eletrônicos que podem permitir ou não a passagem de corrente elétrica. representando um bit 0.edu. representando um bit 1. o comutador estará ativado.ufcg. © 2004 by Pearson Education rangel@dsc. Caso contrário.   Se a corrente elétrica passar. o comutador estará desativado.br 51 .

 Outros processadores:    rangel@dsc. Opteron. Processador Celeron e Atom vendido para PCs de baixo custo. Chips PowerPC são usados principalmente em computadores Macintosh. da Compaq. i3 e i5 na maioria dos PCs.br 52 . O microprocessador Alpha. Itanium. Core 2 Extreme. Core 2 Duo. A Cyrix e a AMD produzem microprocessadores compatíveis com Intel.edu. Pentium Dual Core. Core 2 Quad e i7 para estações de trabalho high-end e servidores de rede.ufcg. é usado em servidores high-end.Tipos de Chips  A Intel produz uma família de processadores:    Processadores Pentium 4. Xeon.

br 53 .Componentes da Memória  Memória semicondutora  RAM e ROM  Memória Flash © 2004 by Pearson Education rangel@dsc.edu.ufcg.

Semicondutor Complementar de Óxido de Metal – Complementary Metal Oxide Semiconductor (CMOS).   Retém informação quando a energia é desligada.edu. Volátil: exige corrente elétrica contínua.  Se a corrente for interrompida. © 2004 by Pearson Education rangel@dsc.Memória Semicondutora  Usada pela maioria dos computadores modernos:    Confiável.ufcg. Usado para armazenar informações necessárias quando o computador é inicializado. barata e compacta.br 54 . os dados se perdem.

edu.ufcg.RAM e ROM  Memória de Acesso Aleatório – Random- Access Memory (RAM)  Memória Somente de Leitura – Read-Only Memory (ROM) © 2004 by Pearson Education rangel@dsc.br 55 .

000.000.Memória de Acesso Aleatório  Dados podem ser acessados aleatoriamente:  O endereço de memória 10 pode ser acessado tão rapidamente quanto o endereço de memória 10. © 2004 by Pearson Education rangel@dsc.ufcg.edu.br 56 .

Não-volátil: o conteúdo não desaparecerá quando houver queda de energia.   Não pode ser alterada pelo usuário.Memória Somente de Leitura  Contém programas e dados registrados permanentemente na memória pela fábrica.br 57 .ufcg.  Chips de ROM programáveis (PROM):  © 2004 by Pearson Education rangel@dsc.edu. Algumas instruções no chip podem ser alteradas.

© 2004 by Pearson Education rangel@dsc.Memória Flash  RAM não-volátil    Usada em telefones celulares. Os chips de memória flash assemelham-se aos cartões de crédito.ufcg.br 58 . Menores do que uma unidade de disco e requerem menos energia.edu. câmeras digitais e computadores manuais (handheld).

ufcg.Classificação de tipos de Memória  Quanto às operações suportadas:   RAM ROM Volátil Não Volátil  Quanto ao tempo de permanência de dados:   rangel@dsc.br .edu.

O Barramento (Bus) do Sistema  Percursos elétricos paralelos que transportam dados entre a CPU e a memória.  Velocidade de barramento:  Medida em megahertz (MHz).ufcg. © 2004 by Pearson Education rangel@dsc.edu.br 60 . Medida em bits.  Largura de barramento:   O número de percursos elétricos para transportar dados.

Referenciar números de endereço de memória maiores:  Permite mais memória.ufcg. © 2004 by Pearson Education rangel@dsc.Largura de Barramento  Tipicamente.br 61 . Suportar um número e uma variedade maiores de instruções. a mesma largura do tamanho de palavra da CPU. a CPU pode:    Transferir mais dados simultaneamente:  Torna o computador mais rápido.edu.  Com um tamanho de barramento maior.

br 62 . © 2004 by Pearson Education rangel@dsc.ufcg.Velocidade de Barramento  Quanto maior a velocidade de barramento.  Computadores pessoais têm velocidades de barramento de 400 MHz . 800 MHz ou 1066 MHz. mais rapidamente os dados viajarão por meio do sistema.edu. 533 MHz.

ufcg.br 63 .Barramentos de Expansão  Adiciona dispositivos periféricos ao sistema:  Placa  Porta de expansão © 2004 by Pearson Education rangel@dsc.edu.

edu.  São usadas para conectar dispositivos periféricos.br 64 .Placas de Expansão  Conectam-se a slots (encaixes) de expansão ou à placa-mãe. © 2004 by Pearson Education rangel@dsc.ufcg.  A maioria dos computadores são “onboard”.

como impressoras e scanners.  Usadas para dispositivos lentos.  Usadas para dispositivos mais rápidos. impressoras. como.edu.ufcg.  Dois tipos de portas:  Seriais: transmitem dados à base de um bit a cada vez.br 65 .Portas  Conectores externos para plugar periféricos. © 2004 by Pearson Education rangel@dsc. por exemplo. como o mouse e o teclado.  Paralelas: transmitem grupos de bits em conjunto. lado a lado.

br 66 .edu.ufcg.Cache  Uma área de armazenamento temporário:  Agiliza a transferência de dados dentro do computador.  Memória cache  Cache de processador © 2004 by Pearson Education rangel@dsc.

br 67 . Se não estiverem na cache.  Quanto mais “presença de dados” na cache. a unidade de controle recupera-os da memória. © 2004 by Pearson Education rangel@dsc.  O microprocessador procura primeiramente na cache os dados de que necessita:   Transferidos da cache muito mais rapidamente do que da memória.edu.Memória Cache  Um pequeno bloco de memória de alta velocidade:  Armazena os dados e as instruções usados com mais freqüência e mais recentemente.ufcg. mais rápido é o desempenho do sistema.

edu. porém custo mais elevado.ufcg.  Acesso mais rápido.br 68 .  Cache externa (Nível 2) em um chip separado.  Incorporada ao processador e alguns microprocessadores atuais. © 2004 by Pearson Education rangel@dsc.Cache de Processador  Cache interna (Nível 1) embutida no microprocessador.

html   http://informatica.mg.Cache e Registradores  Diferença entre Memória Cache e Registradores  Registradores: armazenam dados a serem usados de imediato  Cache: armazena dados usados mais frequentemente  http://taturial.blogspot.br/2012/02/diferenca-entre-asmemorias.educacao.edu.com.ufcg.uol.hsw.br/sistema_crv/index.htm http://crv.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.com.br/memoria-do-computador4.br 69 .gov.

ufcg.Tendências de Hardware  Características que. disco rígido)  Armazenamento de longa duração de programas e dados Velocidade com que os computadores executam os programas  Rapidez do Processador  rangel@dsc.g.br 70 .edu. grosso modo. duplicam a cada um ou dois anos:   Quantidade de memória (execução de programas) Quantidade de meio de armazenamento secundário (e.

br 71 .edu.Evolução dos Sistemas Operacionais  Processamento por Lotes (Batch processing)  Apenas um serviço (job) ou uma tarefa (task) por vez  Sistemas Operacionais  Gestão de transições entre serviços/tarefas  Throughput incrementada  Quantidade de trabalho processada por computadores rangel@dsc.ufcg.

edu.br 72 .Evolução dos Sistemas Operacionais  Multiprogramação  Compartilhamento de recursos computacionais por vários serviços ou tarefas  Compartilhamento de Tempo (Timesharing)  Execução de diversos serviços. com a UCP alternando-se entre eles tão freqüentemente que os usuários podem interagir com cada programa durante sua execução.ufcg. rangel@dsc.

br 73 .ufcg.edu.Computação Pessoal. Distribuída e Cliente/Servidor  Computação Pessoal  Econômica o bastante para uso individual  Computação Distribuída  Processamento da informação através de redes de computadores  Computação Cliente/Servidor  Compartilhamento da informação ao longo de redes de computadores entre servidores e clientes de arquivos (computadores pessoais) rangel@dsc.

edu.Linguagens de Máquina. de Montagem e de Alto Nível  Tipos de Linguagens de Programação  Linguagens de Máquina  Seqüências de números relativas a instruções de máquina específicas Exemplo: +1300042774 +1400593419 +1200274027  rangel@dsc.ufcg.br 74 .

representando operações elementares.br 75 . de Montagem e de Alto Nível  Tipos de Linguagens de Programação  Linguagens de Montagem (Assembly)  Instruções computacionais formuladas a partir de termos ingleses abreviados.Linguagens de Máquina. traduzidas a partir de montadores (assemblers) Exemplo: LOAD A ADD B STORE (A+B)  rangel@dsc.ufcg.edu.

Linguagens de Máquina. de Montagem e de Alto Nível  Tipos de Linguagens de Programação  Linguagens de Alto Nível  Códigos  Uso similares ao inglês cotidiano de notações matemáticas (traduzidas via compiladores) Bruto = Líquido + Descontos Área = (Base * Altura)/2  Exemplo: rangel@dsc.edu.ufcg.br 76 .

ufcg. a partir de duas linguagens de programação antecessoras: BCPL e B  Uso no desenvolvimento do UNIX  Emprego na codificação de sistemas operacionais modernos  Independência de hardware (portável)  "C Tradicional"  C desenvolvido no final da década de 70 rangel@dsc.Histórico da Linguagem C  Linguagem C  Desenvolvida por Ritchie.edu.br 77 .

br 78 .edu.ufcg.Histórico da Linguagem C  Padronização da Linguagem C  Motivação: Incompatibilidade entre diversas variantes existentes de C  Formação de um comitê da ANSI para a definição de uma linguagem "isenta de ambigüidades e independente de máquina"  Criação do C padrão em 1989  Atualização da linguagem em 1999 rangel@dsc.

A Biblioteca Padrão de C  Programas em C  módulos denominados funções  Possibilidade de criação de funções específicas pelo programador  Vantagem  Conhecimento exato do comportamento das funções Dispêndio de tempo no desenvolvimento de funções específicas rangel@dsc.ufcg.br  Desvantagem  79 .edu.

br 80 .A Biblioteca Padrão de C  Programas em C  módulos denominados funções  Uso freqüente das funções da biblioteca de C por programadores  Uso como “blocos” para a construção de aplicações próprias  Reuso evita a “reinvenção da roda”  Uso de funções existentes é. em geral.edu. melhor do que a reescrita de código com o mesmo propósito  Funções da biblioteca foram cuidadosamente desenvolvidas para uso eficiente e portabilidade rangel@dsc.ufcg.

etc. tempo.Tendências de Desenvolvimento de Software: Tecnologia de Objetos  Objetos  Componentes reusáveis de software que modelam itens do mundo real  Unidades significativas de software   Objetos de dados.br 81 .ufcg. áudio.edu. vídeo. pagamento. arquivos. Qualquer nome pode ser representado como um objeto com comportamento bem definido  Maior capacidade de reuso rangel@dsc.

edu.br 82 . maior facilidade de manutenção do que a programação baseada em procedimentos (procedural)  Favorescimento à modularidade rangel@dsc.Tendências de Desenvolvimento de Software: Tecnologia de Objetos  Objetos  Maior compreensibilidade.ufcg. melhor organização.

C e C++  C++  Superconjunto de C.edu. desenvolvido por Bjarne Stroustrup no Bell Labs  “Extende" C.br 83 . oferecendo facilidades de orientação a objetos  Poder do projeto orientado a objetos  Produtividade incrementada de 10 a 100 vezes  Linguagem dominante na indústria e em academias rangel@dsc.ufcg.

se afigura indispensável o domínio de C para um aprendizado efetivo de C++  Vide Capítulo 15 (introdução ao C++) rangel@dsc.C e C++  Aprendizado de C++  Uma vez que C++ abrange C.ufcg.edu.br 84 .

edu.ufcg.br    85 . pagers e assistentes digitais pessoais (PDA) rangel@dsc.JAVA  Uso de Java  Criação de páginas Web com conteúdo dinâmico e interativo Desenvolvimento de aplicações empresariais em larga escala Incrementação da funcionalidade de servidores Web Desenvolvimento de aplicações para dispositivos tais como telefones celulares.

edu.br 86 .Outras Linguagens de Alto Nível  FORTRAN  Uso em aplicações de engenharia e aplicações científicas  COBOL  Uso para a manipulação de grandes quantidades de dados  Pascal  Uso acadêmico rangel@dsc.ufcg.

br 87 . facilidade de teste e depuração e facilidade de alteração do código rangel@dsc.edu.ufcg.Programação Estruturada  Programação Estruturada  Abordagem com regras bem definidas para a escrita de programas  Clareza.

O linker faz o link do código-objeto com as bibliotecas. O programa préprocessador processa o código.ufcg. O compilador cria o código-objeto e o armazena em disco. UCP rangel@dsc. armazenando (quando possível) novos valores de dados à medida que o programa é executado. Disco Memória Primária A UCP recupera cada instrução e a executa.br 88 .Ambiente Típico de Desenvolvimento de Programas em C  Fases de Programas Editor Disco O programa é criado no editor e armazenado em disco. em C/C++  Edição Pré-processador Disco    Pré-processamento Compilação Linkagem Compilador Disco Linker Disco Memória Primária   Carregamento Execução Carregador O carregador transfere o programa para a memória.edu.

br 89 .Preparação para o Capítulo 2 Exemplo (Soma de 2 Inteiros) /* Programa que executa a soma de dois inteiros */ #include <stdio. /* impressão da soma */ segundo número inteiro*/ primeiro número inteiro */ return 0.h> /* início da função main */ int main() { int inteiro1. /* leitura do primeiro número */ soma = inteiro1 + inteiro2. /* preparação para o recebimento do scanf( "%d". &inteiro2 ). /* leitura do primeiro número */ printf(“Digite o segundo inteiro:\n"). /*preparação para o recebimento do scanf( "%d". soma ). /* variável na qual será armazenado o resultado da soma */ printf(“Digite o primeiro inteiro:\n").edu. /* realização da soma dos 2 inteiros digitados pelo usuário */ printf( “A soma eh igual a %d\n". /*variável que contém a primeira parcela da soma */ int inteiro2.ufcg. /* indicação de que o programa encerrou satisfatoriamente */ } /* fim da função main */ rangel@dsc. /* variável que contém a segunda parcela da soma */ int soma. &inteiro1 ).

Andrey Elisio Monteiro Brito José Eustáquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO CEEI DSC rangel@dsc.ufcg.edu.br .