Profs.: Andrey Elisio Monteiro Brito Carga Horária: CEEI 60 h DSC [email protected] José Eustáquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria 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 2 [email protected] 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) 3 [email protected] Objetivos Após a discussão do material deste capítulo, v. será capaz de: Compreender conceitos computacionais básicos; Familiarizar-se com diferentes tipos de linguagens de programação; Familiarizar-se com o histórico da linguagem de programação C; Tomar conhecimento da biblioteca-padrão da linguagem C; 4 [email protected] Objetivos Após a discussão do material deste capítulo, v. será capaz de: Compreender os elementos de um ambiente típico de programação em C; Entender porque é importante aprender C em um primeiro curso programação; Ponderar porque C oferece um embasamento para estudos posteriores de outras linguagens de programação, em especial C++ e Java. 5 [email protected] 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++ Fundamentos de Java Capítulos 15 a 23 Capítulos 24 a 30 Público-alvo Estudantes universitários com pouca ou nenhuma experiência de programação 6 [email protected] 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 dados, submetê-los a um conjunto especificado/prédeterminado de operações lógicas/aritméticas e fornecer o resultado destas operações 7 [email protected] O que é um Computador? Os computadores atuais são dispositivos eletrônicos que, sob direção e controle de um programa, executam quatro operações fundamentais Entrada (Input) Processamento (Processing) Saída (Output) Armazenamento (Storage) 8 [email protected] O que é um Computador? Ciclo IPOS Entrada Processamento Saída Armazenamento 9 [email protected] O que é um Computador? Sistema de computação Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e. realizar algum tipo de operação aritmética/ lógica envolvendo os dados, de modo a produzir diferentes níveis de informações 10 [email protected] O que é um Computador? Componentes de um Sistema Computacional Peopleware Hardware Software 11 [email protected] O que é um Computador? Componentes de um Sistema Computacional Peopleware Componente humana de um sistema de computação, i.e. indivíduos que utilizam o computador como ferramenta 12 [email protected] O que é um Computador? Componentes de um Sistema Computacional Hardware Componente física de um sistema de computação, i.e. todos os equipamentos utilizados pelo usuário nas ações de entrada, processamento, armazenamento e saída de dados 13 [email protected] O que é um Computador? Componentes de um Sistema Computacional Software Componente lógica de um sistema de computação, i.e. séries de instruções que fazem o computador funcionar (programas de computador) 14 [email protected] O que é um Computador? Hardware Gama variada de dispositivos que compõem um computador Teclado, terminal de vídeo (monitor), mouse, discos, memória, CD-ROM e unidades de processamento Software Programas que são executados em um computador 15 [email protected] O Software "É o software que dá vida à máquina". 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. Software aplicativo. 16 [email protected] O Software Software aplicativo : Os programas aplicativos se concentram na solução de algum tipo de problema específico, utilizando o computador como ferramenta (o foco está na aplicação). exemplos: jogos, planilhas eletrônicas, aplicações gráficas, e-mail, etc. 17 [email protected] O Software Software básico: O software básico têm como objetivo possibilitar a operação e o uso do computador, seja qual for a aplicação (o foco está na máquina) – o software básico se concentra nas necessidades gerais de grande parte dos usuários. exemplos: sistemas operacionais, BIOS, compiladores, etc. 18 [email protected] O Software Exemplos: Uma planilha excel é um software aplicativo que faz um gráfico. Já o software básico é o driver da placa de vídeo que de fato exibe o gráfico na tela. Um software aplicativo é o email. Ele manda mensagens de uma pessoa para outra. Um software básico seria o driver de rede local que conecta o computador que envia a mensagem ao servidor que irá entregá-la ao destinatário. 19 [email protected] 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 20 [email protected] Organização de um Computador Unidades Lógicas Básicas Unidade de Entrada (Input Unit) Obtenção de dados a partir de dispositivos de entrada (e.g. teclado, mouse) Unidade de Saída (Output unit) Apresenta a informação em dispositivos de saída (e.g. monitor, impressora) Unidade de Memória (Memory unit) Acesso rápido, de baixa capacidade de armazenamento de informações. 21 [email protected] Organização de um Computador Unidade Central de Processamento – UCP (Central Processing unit - CPU) Supervisão e coordenação das demais unidades que compõem o computador Unidade de Armazenamento Secundário (Secondary storage unit) Armazenamento barato, de alta capacidade e longa duração Armazenamento de programas inativos 22 [email protected] Unidade Central de Processamento Conjunto complexo de circuitos eletrônicos. Executa instruções de programas armazenadas. Duas partes: Unidade de Controle Unidade Aritmética e Lógica (ALU) © 2004 by Pearson Education 23 [email protected] Unidade de Controle Direciona o sistema do computador a executar instruções de programa armazenadas. Deve comunicar-se com a memória e com a ALU. Envia dados e instruções do armazenamento secundário para a memória, quando necessário. © 2004 by Pearson Education 24 [email protected] Unidade Aritmética e Lógica Executa todas as operações aritméticas e lógicas. Operações aritméticas: Adição, subtração, multiplicação, divisão. Operações lógicas: Compara números, letras ou caracteres especiais. Testa uma de três condições: Condição de igualdade (igual a) Condição menor que Condição maior que © 2004 by Pearson Education 25 [email protected] Armazenamento de Dados e a CPU Dois tipos de armazenamento: Armazenamento primário (memória): Armazena dados temporariamente. A CPU referencia-o tanto para obtenção de instruções de programa como de dados. Armazenamento secundário: Armazenamento de longo prazo. Armazenado em mídia externa; por exemplo, um disco. © 2004 by Pearson Education 26 [email protected] A CPU e a Memória A CPU não pode processar dados diretamente do disco ou de um dispositivo de entrada: Primeiramente, eles devem residir na memória. A unidade de controle recupera dados do disco e transfere-os para a memória. Itens enviados à CPU para ser processados: A unidade de controle envia itens à CPU e depois os envia novamente à memória após serem processados. Dados e instruções permanecem na memória até serem enviados a um dispositivo de saída ou armazenamento, ou o programa ser fechado. © 2004 by Pearson Education 27 [email protected] Áreas de Armazenamento Temporário Registradores Memória © 2004 by Pearson Education 28 [email protected] Registradores Áreas de armazenamento temporário de alta velocidade. Localizações de armazenamento situadas dentro da CPU. Funcionam sob direção da unidade de controle: Recebem, guardam e transferem instruções ou dados. Controlam onde a próxima instrução a ser executada ou os dados necessários serão armazenados. © 2004 by Pearson Education 29 [email protected] Memória Também conhecida como armazenamento primário e memória principal. Freqüentemente expressa como memória de acesso aleatório (RAM). Não faz parte da CPU. Retém dados e instruções para serem processados. Armazena informações somente enquanto o programa está em operação. © 2004 by Pearson Education 30 [email protected] Como a CPU Executa Instruções Quatro etapas são executadas para cada instrução: captação, decodificação, execução e armazenamento. Ciclo de máquina: a quantidade de tempo necessária para executar uma instrução. Computadores pessoais executam-nas em menos de um milionésimo de segundo. Supercomputadores executam-nas em menos de um trilionésimo de segundo. Cada CPU tem seu próprio conjunto de instruções: Aquelas instruções as quais a CPU pode entender e executar. 31 [email protected] O Ciclo da Máquina O tempo necessário para recuperar, executar e armazenar uma operação. Componentes: Tempo de instrução Tempo de execução O clock de sistema sincroniza as operações. © 2004 by Pearson Education 32 [email protected] Tempo de Instrução Também chamado de I-time. A unidade de controle recebe a instrução da memória e a coloca em um registro. A unidade de controle decodifica a instrução e determina qual é a localização na memória para os dados necessários. © 2004 by Pearson Education 33 [email protected] 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 34 [email protected] Endereços de Memória Cada localização de memória tem um endereço: Pode conter somente uma instrução ou peça de dados: Um número único, como em uma caixa postal. Quando dados são reescritos na memória, o conteúdo anterior desse endereço é destruído. Referenciado pelo número: As linguagens de programação usam um endereço simbólico (nomeado), tal como Horas ou Salário. © 2004 by Pearson Education 35 [email protected] 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 36 [email protected] Representando Dados Bit Byte Palavra © 2004 by Pearson Education 37 [email protected] Bit Abreviação de binary digit (dígito binário). Dois valores possíveis: 0 e 1. Nunca pode estar vazio. Unidade básica para armazenar dados: 0 significa desligado; 1 significa ligado. © 2004 by Pearson Education 38 [email protected] Byte Um grupo de 8 bits. Cada byte tem 256 (28) valores possíveis. Para texto, armazena um caractere: Pode ser letra, dígito ou caractere especial. Dispositivos de memória e armazenamento são medidos em número de bytes. © 2004 by Pearson Education 39 [email protected] Palavra O número de bits que a CPU processa como uma unidade. Tipicamente, um número inteiro de bytes. Quanto maior a palavra, mais potente é o computador. Computadores pessoais tipicamente têm 32 ou 64 bits de extensão de palavras. © 2004 by Pearson Education 40 [email protected] Capacidades de Armazenamento Kilobyte: 1024 (210) bytes. Megabyte: aproximadamente, um milhão (220) de bytes. Memória de computadores pessoais. Dispositivos de armazenamento portáteis (disquetes, CD-ROMs). Gigabyte: aproximadamente, um bilhão (230) de bytes. Capacidade de memória dos computadores pessoais mais antigos. Dispositivos de armazenamento (discos rígidos). Memória de mainframes e servidores de rede. Terabyte: aproximadamente, um trilhão (240) de bytes. Dispositivos de armazenamento para sistemas muito grandes. © 2004 by Pearson Education 41 [email protected] 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 42 [email protected] Esquemas de Codificação Provêem uma maneira comum para representar um caractere de dados. Necessários para os computadores poderem intercambiar dados. Esquemas comuns: ASCII EBCDIC Unicode © 2004 by Pearson Education 43 [email protected] ASCII Sigla de American Standard Code for Information Interchange. O padrão mais amplamente usado. Usado virtualmente em todos os computadores pessoais. © 2004 by Pearson Education 44 [email protected] EBCDIC Sigla de Extended Binary Coded Decimal Interchange Code. Usado principalmente em mainframes IBM e compatíveis com IBM. © 2004 by Pearson Education 45 [email protected] Unicode Projetado para acomodar alfabetos com mais de 256 caracteres. Usa 16 bits para representar um caractere. 65.536 valores possíveis. Exige duas vezes mais espaço para armazenar dados. © 2004 by Pearson Education 46 [email protected] A Unidade de Sistema Abriga os componentes eletrônicos do sistema de computador: Placa-mãe (motherboard) Dispositivos de armazenamento © 2004 by Pearson Education 47 [email protected] Placa-mãe (motherboard) Placa de circuitos plana que contém 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 48 [email protected] Dispositivos de Armazenamento Armazenamento de longo prazo da memória. Dados não se perdem quando o computador é desligado. Incluem-se entre os exemplos: discos rígidos, disquetes, DVD-ROMs. © 2004 by Pearson Education 49 [email protected] Microprocessador Unidade central de processamento impressa em chip de silício. Contém dezenas de milhões de minúsculos transistores. Componentes-chave: Unidade central de processamento. Registradores. Clock do sistema. © 2004 by Pearson Education 50 [email protected] Microprocessador Como funcionam os processadores http://www.youtube.com/watch?v=IfOIB4-pn1k Conheça mais o processador http://olhardigital.uol.com.br/produtos/central_ de_videos/conheca-seu-micro-processador 51 [email protected] Transistores Comutadores eletrônicos que podem permitir ou não a passagem de corrente elétrica. Se a corrente elétrica passar, o comutador estará ativado, representando um bit 1. Caso contrário, o comutador estará desativado, representando um bit 0. © 2004 by Pearson Education 52 [email protected] Tipos de Chips A Intel produz uma família 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 estações de trabalho high-end e servidores de rede. Outros processadores: A Cyrix e a AMD produzem microprocessadores compatíveis com Intel. Chips PowerPC são usados principalmente em computadores Macintosh. O microprocessador Alpha, da Compaq, é usado em servidores high-end. 53 [email protected] Componentes da Memória Memória semicondutora RAM e ROM Memória Flash © 2004 by Pearson Education 54 [email protected] Memória Semicondutora Usada pela maioria dos computadores modernos: Confiável, barata e compacta. Volátil: exige corrente elétrica contínua. Se a corrente for interrompida, os dados se perdem. Semicondutor Complementar de Óxido de Metal – Complementary Metal Oxide Semiconductor (CMOS). Retém informação quando a energia é desligada. Usado para armazenar informações necessárias quando o computador é inicializado. © 2004 by Pearson Education 55 [email protected] 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 56 [email protected] 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.000.000. © 2004 by Pearson Education 57 [email protected] Memória Somente de Leitura Contém programas e dados registrados permanentemente na memória pela fábrica. Não pode ser alterada pelo usuário. Não-volátil: o conteúdo não desaparecerá quando houver queda de energia. Chips de ROM programáveis (PROM): Algumas instruções no chip podem ser alteradas. © 2004 by Pearson Education 58 [email protected] Memória Flash RAM não-volátil Usada em telefones celulares, câmeras digitais e computadores manuais (handheld). Os chips de memória flash assemelham-se aos cartões de crédito. Menores do que uma unidade de disco e requerem menos energia. © 2004 by Pearson Education 59 [email protected] Classificação de tipos de Memória Quanto às operações suportadas: RAM ROM Quanto ao tempo de permanência de dados: Volátil Não Volátil [email protected] O Barramento (Bus) do Sistema Percursos elétricos paralelos que transportam dados entre a CPU e a memória. Largura de barramento: O número de percursos elétricos para transportar dados. Medida em bits. Velocidade de barramento: Medida em megahertz (MHz). © 2004 by Pearson Education 61 [email protected] 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 rápido. Referenciar números de endereço de memória maiores: Permite mais memória. Suportar um número e uma variedade maiores de instruções. © 2004 by Pearson Education 62 [email protected] Velocidade de Barramento Quanto maior a velocidade de barramento, mais rapidamente os dados viajarão por meio do sistema. Computadores pessoais têm velocidades de barramento de 400 MHz , 533 MHz, 800 MHz ou 1066 MHz. © 2004 by Pearson Education 63 [email protected] Barramentos de Expansão Adiciona dispositivos periféricos ao sistema: Placa de expansão Porta © 2004 by Pearson Education 64 [email protected] Placas de Expansão Conectam-se a slots (encaixes) de expansão ou à placa-mãe. São usadas para conectar dispositivos periféricos. A maioria dos computadores são “onboard”. © 2004 by Pearson Education 65 [email protected] Portas Conectores externos para plugar periféricos, 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 rápidos, como impressoras e scanners. © 2004 by Pearson Education 66 [email protected] 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 67 [email protected] 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. O microprocessador procura primeiramente na cache os dados de que necessita: Transferidos da cache muito mais rapidamente do que da memória. Se não estiverem na cache, a unidade de controle recupera-os da memória. Quanto mais “presença de dados” na cache, mais rápido é o desempenho do sistema. © 2004 by Pearson Education 68 [email protected] Cache de Processador Cache interna (Nível 1) embutida no microprocessador. Acesso mais rápido, porém custo mais elevado. Cache externa (Nível 2) em um chip separado. Incorporada ao processador e alguns microprocessadores atuais. © 2004 by Pearson Education 69 [email protected] 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.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 70 [email protected] Tendências de Hardware Características que, 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.g. disco rígido) Armazenamento de longa duração de programas e dados Rapidez do Processador Velocidade com que os computadores executam os programas 71 [email protected] 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 72 [email protected] 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. 73 [email protected] 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) 74 [email protected] 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 75 [email protected] Linguagens de Máquina, 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, representando operações elementares, traduzidas a partir de montadores (assemblers) Exemplo: LOAD A ADD B STORE (A+B) 76 [email protected] Linguagens de Máquina, de Montagem e de Alto Nível Tipos de Linguagens de Programação Linguagens de Alto Nível Códigos similares ao inglês cotidiano Uso de notações matemáticas (traduzidas via compiladores) Exemplo: Bruto = Líquido + Descontos Área = (Base * Altura)/2 77 [email protected] Histórico da Linguagem C Linguagem C Desenvolvida por Ritchie, 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 78 [email protected] 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 79 [email protected] 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 Desvantagem Dispêndio de tempo no desenvolvimento de funções específicas 80 [email protected] 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, 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 81 [email protected] 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, tempo, pagamento, áudio, vídeo, arquivos, etc. Qualquer nome pode ser representado como um objeto com comportamento bem definido Maior capacidade de reuso 82 [email protected] Tendências de Desenvolvimento de Software: Tecnologia de Objetos Objetos Maior compreensibilidade, melhor organização, maior facilidade de manutenção do que a programação baseada em procedimentos (procedural) Favorescimento à modularidade 83 [email protected] C e C++ C++ Superconjunto de C, desenvolvido por Bjarne Stroustrup no Bell Labs “Extende" C, 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 84 [email protected] C e C++ Aprendizado de C++ Uma vez que C++ abrange C, se afigura indispensável o domínio de C para um aprendizado efetivo de C++ Vide Capítulo 15 (introdução ao C++) 85 [email protected] 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, pagers e assistentes digitais pessoais (PDA) 86 [email protected] 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 87 [email protected] Programação Estruturada Programação Estruturada Abordagem com regras bem definidas para a escrita de programas Clareza, facilidade de teste e depuração e facilidade de alteração do código 88 [email protected] Ambiente Típico de Desenvolvimento de Programas em C Fases de Programas Editor Disco O programa é criado no editor e armazenado em disco. Disco O programa préprocessador processa o código. Disco O compilador cria o código-objeto e o armazena em disco. Disco O linker faz o link do código-objeto com as bibliotecas. em C/C++ Edição Pré-processamento Compilação Pré-processador Compilador Linker Memória Primária Linkagem Carregamento Execução Carregador O carregador transfere o programa para a memória. Disco UCP Memória Primária A UCP recupera cada instrução e a executa, armazenando (quando possível) novos valores de dados à medida que o programa é executado. 89 [email protected] Preparação para o Capítulo 2 Exemplo (Soma de 2 Inteiros) /* Programa que executa a soma de dois inteiros */ #include <stdio.h> /* início da função main */ int main() { int inteiro1; /*variável que contém a primeira parcela da soma */ int inteiro2; /* variável que contém a segunda parcela da soma */ int soma; /* variável na qual será armazenado o resultado da soma */ printf(“Digite o primeiro inteiro:\n"); /*preparação para o recebimento do primeiro número inteiro */ scanf( "%d", &inteiro1 ); /* leitura do primeiro número */ printf(“Digite o segundo inteiro:\n"); /* preparação para o recebimento do segundo número inteiro*/ scanf( "%d", &inteiro2 ); /* leitura do primeiro número */ soma = inteiro1 + inteiro2; /* realização da soma dos 2 inteiros digitados pelo usuário */ printf( “A soma eh igual a %d\n", soma ); /* impressão da soma */ return 0; /* indicação de que o programa encerrou satisfatoriamente */ } /* fim da função main */ 90 [email protected] 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 CEEI DSC [email protected] DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO