Download presentation
Presentation is loading. Please wait.
1
rangel@dsc.ufpb.br DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Carga Horária: 60 h
2
rangel@dsc.ufpb.br DSC/CCT/UFCG 2 Objetivos Ementa Técnicas de Ensino Recursos Didáticos Avaliação Resultados Esperados Bibliografia Objetivos Ementa Técnicas de Ensino Recursos Didáticos Avaliação Resultados Esperados Bibliografia Plano de Ensino
3
rangel@dsc.ufpb.br DSC/CCT/UFCG 3 Oferecer ao aluno uma visão geral da Informática e suas aplicações à Engenharia Elétrica; Apresentar um sistema computacional, discutindo seus principais componentes; Definir e construir conceitos fundamentais da Ciência de Computação; Propor soluções computacionais para problemas simples da Engenharia Elétrica; Desenvolver e testar soluções de problemas computacionais usando algoritmos; Oferecer ao aluno uma visão geral da Informática e suas aplicações à Engenharia Elétrica; Apresentar um sistema computacional, discutindo seus principais componentes; Definir e construir conceitos fundamentais da Ciência de Computação; Propor soluções computacionais para problemas simples da Engenharia Elétrica; Desenvolver e testar soluções de problemas computacionais usando algoritmos; Objetivos
4
rangel@dsc.ufpb.br DSC/CCT/UFCG 4 Projetar, elaborar e depurar soluções de problemas computacionais usando programas na linguagem C; Estudar a programação modular, discutindo as principais técnicas utilizadas na implementação de estruturas de dados básicas, de algoritmos de busca e ordenação; Resolver eficientemente problemas de engenharia elétrica em ambientes computacionais. Projetar, elaborar e depurar soluções de problemas computacionais usando programas na linguagem C; Estudar a programação modular, discutindo as principais técnicas utilizadas na implementação de estruturas de dados básicas, de algoritmos de busca e ordenação; Resolver eficientemente problemas de engenharia elétrica em ambientes computacionais. Objetivos
5
rangel@dsc.ufpb.br DSC/CCT/UFCG 5 Introdução à Programação: aplicações dos sistemas computacionais; Introdução à Organização de Computadores; Soluções de problemas mediante o uso de sistemas computacionais; Processo de desenvolvimento de programas; Algoritmos; Modelos de Programação; Introdução a uma Linguagem de Programação; Tipos de Dados (entradas e saídas de dados), Operadores e Expressões; Introdução à Programação: aplicações dos sistemas computacionais; Introdução à Organização de Computadores; Soluções de problemas mediante o uso de sistemas computacionais; Processo de desenvolvimento de programas; Algoritmos; Modelos de Programação; Introdução a uma Linguagem de Programação; Tipos de Dados (entradas e saídas de dados), Operadores e Expressões; Ementa
6
rangel@dsc.ufpb.br DSC/CCT/UFCG 6 Comandos de Controle de Fluxo (decisões e repetições); Agregados de Dados Homogêneos e Heterogêneos; Modularização de Programas; Recursividade; Alocação Dinâmica de Memória; Portabilidade de Programas; Técnicas de bom estilo de programação; Projeto de Aplicação. Comandos de Controle de Fluxo (decisões e repetições); Agregados de Dados Homogêneos e Heterogêneos; Modularização de Programas; Recursividade; Alocação Dinâmica de Memória; Portabilidade de Programas; Técnicas de bom estilo de programação; Projeto de Aplicação. Ementa
7
rangel@dsc.ufpb.br DSC/CCT/UFCG 7 Aulas Expositivas Atividades Individuais e Grupais Intra-Classe Atividades Individuais e Grupais Extra-Classe Aulas Expositivas Atividades Individuais e Grupais Intra-Classe Atividades Individuais e Grupais Extra-Classe Técnicas de Ensino
8
rangel@dsc.ufpb.br DSC/CCT/UFCG 8 Quadro Branco Retroprojetor/ Datashow Computador Biblioteca Setorial Quadro Branco Retroprojetor/ Datashow Computador Biblioteca Setorial Recursos Didáticos
9
rangel@dsc.ufpb.br DSC/CCT/UFCG 9 Avaliação Contínua Avaliações individuais e trabalhos em sala de aula Trabalhos interativos Atividades de pesquisa e desenvolvimento extra-classe Seminários de Projeto Avaliação de conclusão do curso Contínua Avaliações individuais e trabalhos em sala de aula Trabalhos interativos Atividades de pesquisa e desenvolvimento extra-classe Seminários de Projeto Avaliação de conclusão do curso
10
rangel@dsc.ufpb.br DSC/CCT/UFCG 10 Espera-se que os conhecimentos repassados auxiliem o aluno no raciocínio e na aplicação de conceitos pertinentes ao contexto de estudo, visando a elaboração mais eficiente de programas e a preparação para a compreensão de tópicos mais avançados de programação, a serem estudados na disciplina Técnicas de Programação. Resultado Esperado
11
rangel@dsc.ufpb.br DSC/CCT/UFCG 11 Livro-Texto DEITEL, H. M. & DEITEL, P. J., Como Programar em C. LTC Editora, 1999. Bibliografia Complementar ECKEL, BRUCE, Thinking in C++. MindView Inc., 2000.Thinking in C++ GACLI-UNICAMP, Introdução à Linguagem C.Introdução à Linguagem C JAMSA, KRIS & KLANDER, L., Programando em C/C++. Makron Books Editora do Brasil Ltda, 1999. KERNIGHAN, B.& RITCHIE, D. M., A linguagem de Programação C. Editora Campus, 1986. MESQUITA, R. C., Curso de C. Núcleo de Ensino à Distância. Escola de Engenharia – UFMG.Curso de C Livro-Texto DEITEL, H. M. & DEITEL, P. J., Como Programar em C. LTC Editora, 1999. Bibliografia Complementar ECKEL, BRUCE, Thinking in C++. MindView Inc., 2000.Thinking in C++ GACLI-UNICAMP, Introdução à Linguagem C.Introdução à Linguagem C JAMSA, KRIS & KLANDER, L., Programando em C/C++. Makron Books Editora do Brasil Ltda, 1999. KERNIGHAN, B.& RITCHIE, D. M., A linguagem de Programação C. Editora Campus, 1986. MESQUITA, R. C., Curso de C. Núcleo de Ensino à Distância. Escola de Engenharia – UFMG.Curso de C Bibliografia
12
rangel@dsc.ufpb.br DSC/CCT/UFCG 12 Bibliografia Complementar NONATO, L. G., Tipos e Estruturas de Dados. Instituto de Ciências Matemáticas e de Computação - Departamento de Computação e Estatística - USP.Tipos e Estruturas de Dados RUMBAUGH, B. M., PREMERLANI, W., EDDY, F. & LORENSEN, W. Object-Oriented Modeling and Design. Prentice Hall, 1991. SCHILDT, H., C Avançado - Guia do Usuário. McGraw-Hill, 1987. SCHILDT, HERBERT, C Completo e Total. Makron Books do Brasil Editora Ltda., 3a Edição, 1996. Bibliografia Complementar NONATO, L. G., Tipos e Estruturas de Dados. Instituto de Ciências Matemáticas e de Computação - Departamento de Computação e Estatística - USP.Tipos e Estruturas de Dados RUMBAUGH, B. M., PREMERLANI, W., EDDY, F. & LORENSEN, W. Object-Oriented Modeling and Design. Prentice Hall, 1991. SCHILDT, H., C Avançado - Guia do Usuário. McGraw-Hill, 1987. SCHILDT, HERBERT, C Completo e Total. Makron Books do Brasil Editora Ltda., 3a Edição, 1996. Bibliografia
13
rangel@dsc.ufpb.br DSC/CCT/UFCG 13 Bibliografia Complementar STROUSTRUP, BJARNE, The Design and Evolution of C++. Addison Wesley, 1994. STROUSTRUP, BJARNE, A Linguagem de Programação C++. Editora Artes Médicas Sul Ltda. (Bookman), 2000. Bibliografia Complementar STROUSTRUP, BJARNE, The Design and Evolution of C++. Addison Wesley, 1994. STROUSTRUP, BJARNE, A Linguagem de Programação C++. Editora Artes Médicas Sul Ltda. (Bookman), 2000. Bibliografia
14
rangel@dsc.ufpb.br DSC/CCT/UFCG 14 Tópicos 1.1Introdução 1.2O que é um Computador? 1.3Organização de um Computador 1.4Evolução de Sistemas Operacionais 1.5Computação Pessoal, Distribuída e Cliente/Servidor 1.6Linguagens de Máquina, de Montagem (Assembly) e de Alto Nível 1.7Histórico da Linguagem C 1.8A Biblioteca Padrão de C 1.9Tendências de Desenvolvimento de Software: Tecnologia de Objetos Tópicos 1.1Introdução 1.2O que é um Computador? 1.3Organização de um Computador 1.4Evolução de Sistemas Operacionais 1.5Computação Pessoal, Distribuída e Cliente/Servidor 1.6Linguagens de Máquina, de Montagem (Assembly) e de Alto Nível 1.7Histórico da Linguagem C 1.8A Biblioteca Padrão de C 1.9Tendências de Desenvolvimento de Software: Tecnologia de Objetos Introdução à Programação
15
rangel@dsc.ufpb.br DSC/CCT/UFCG 15 Tópicos 1.10C e C++ 1.11Java 1.12Outras Linguagens de Alto Nível 1.13Programação Estruturada 1.14Fundamentos de um Ambiente Típico de Desenvolvimento de Programas em C 1.15Tendências de Hardware 1.16Internet 1.17World Wide Web (WEB) Tópicos 1.10C e C++ 1.11Java 1.12Outras Linguagens de Alto Nível 1.13Programação Estruturada 1.14Fundamentos de um Ambiente Típico de Desenvolvimento de Programas em C 1.15Tendências de Hardware 1.16Internet 1.17World Wide Web (WEB) Introdução à Programação
16
rangel@dsc.ufpb.br DSC/CCT/UFCG 16 Objetivos (1/2) 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 ;
17
rangel@dsc.ufpb.br DSC/CCT/UFCG 17 Objetivos (2/2) 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.
18
rangel@dsc.ufpb.br DSC/CCT/UFCG 18 1.1 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 Fundamentos de Java Capítulos 24 a 30 Público-alvo Estudantes universitários com pouca ou nenhuma experiência de programaçã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 Fundamentos de Java Capítulos 24 a 30 Público-alvo Estudantes universitários com pouca ou nenhuma experiência de programação
19
rangel@dsc.ufpb.br DSC/CCT/UFCG 19 Computador Dispositivo capaz de realizar operações lógicas/aritméticas e tomar decisões, com grande velocidade e precisão Processa grande quantidade de dados sob o controle de conjuntos de instruções denominadas programas Máquina eletrônica capaz de receber informações, submetê-las a um conjunto especificado/ pré-determinado de operações lógicas/aritméticas e fornecer o resultado destas operações Computador Dispositivo capaz de realizar operações lógicas/aritméticas e tomar decisões, com grande velocidade e precisão Processa grande quantidade de dados sob o controle de conjuntos de instruções denominadas programas Máquina eletrônica capaz de receber informações, submetê-las a um conjunto especificado/ pré-determinado de operações lógicas/aritméticas e fornecer o resultado destas operações 1.2 O que é um Computador?
20
rangel@dsc.ufpb.br DSC/CCT/UFCG 20 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 ) 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 ) 1.2 O que é um Computador?
21
rangel@dsc.ufpb.br DSC/CCT/UFCG 21 Ciclo IPOS 1.2 O que é um Computador? Entrada Processamento Armazenamento Saída
22
rangel@dsc.ufpb.br DSC/CCT/UFCG 22 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 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 1.2 O que é um Computador?
23
rangel@dsc.ufpb.br DSC/CCT/UFCG 23 Componentes de um Sistema Computacional 1.2 O que é um Computador? Peopleware Software Hardware
24
rangel@dsc.ufpb.br DSC/CCT/UFCG 24 Componentes de um Sistema Computacional Peopleware Componente humana de um sistema de computação, i.e. indivíduos que utilizam o computador como ferramenta Componentes de um Sistema Computacional Peopleware Componente humana de um sistema de computação, i.e. indivíduos que utilizam o computador como ferramenta 1.2 O que é um Computador?
25
rangel@dsc.ufpb.br DSC/CCT/UFCG 25 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 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 1.2 O que é um Computador?
26
rangel@dsc.ufpb.br DSC/CCT/UFCG 26 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) 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) 1.2 O que é um Computador?
27
rangel@dsc.ufpb.br DSC/CCT/UFCG 27 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 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 1.2 O que é um Computador ?
28
rangel@dsc.ufpb.br DSC/CCT/UFCG 28 Unidade Central de Processamento Unidade de Controle ULA Unidade Primária de Armazenamento Dispositivos de Entrada Dispositivos de Entrada Dispositivos de Saída Dispositivos de Saída Dispositivos de Armazenament o Secundário 1.3 Organização de um Computador
29
rangel@dsc.ufpb.br DSC/CCT/UFCG 29 Unidades funcionais básicas Unidade de Entrada (Input Unit) Obtenção da informação 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 e armazenamento da informação obtida pelos dispositivos de entrada Unidades funcionais básicas Unidade de Entrada (Input Unit) Obtenção da informação 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 e armazenamento da informação obtida pelos dispositivos de entrada 1.3 Organização de um Computador
30
rangel@dsc.ufpb.br DSC/CCT/UFCG 30 Unidades funcionais básicas Unidade Lógica e Aritmética - ULA (Arithmetic and Logic unit - ALU) Execução de cálculos aritméticos, operações lógicas e tomada de decisões Unidade de Controle - UC Supervisão e coordenação das demais unidades que compõem o computador Unidades funcionais básicas Unidade Lógica e Aritmética - ULA (Arithmetic and Logic unit - ALU) Execução de cálculos aritméticos, operações lógicas e tomada de decisões Unidade de Controle - UC Supervisão e coordenação das demais unidades que compõem o computador 1.3 Organização de um Computador
31
rangel@dsc.ufpb.br DSC/CCT/UFCG 31 Unidades funcionais básicas Unidade de Armazenamento Secundário (Secondary storage unit) Armazenamento barato, de alta capacidade e longa duração Armazenamento de programas inativos Unidades funcionais básicas Unidade de Armazenamento Secundário (Secondary storage unit) Armazenamento barato, de alta capacidade e longa duração Armazenamento de programas inativos 1.3 Organização de um Computador
32
rangel@dsc.ufpb.br DSC/CCT/UFCG 32 1.3b Aritmética do Computador Representação de inteiros Base binária (2) 2 “ bits ” disponíveis [0,1] “Posição” indica potência positiva de 2 1011 na base 2 = 1x2 3 + 0x2 2 + 1x2 1 + 1x2 0 = 8+0+2+1 = 11 na base decimal Ou, melhor 1x2 3 + 0x2 2 + 1x2 1 + 1x2 0 = 1 + 2(1+2(0+2(1))) = 11
33
rangel@dsc.ufpb.br DSC/CCT/UFCG 33 1.3b Aritmética do Computador Representação de números fracionários Base binária (2) “Posição” da parte inteira indica potência positiva de 2 Potência negativa de 2 para parte fracionária 10,11 na base 2 = 1x21 + 0x20 + 1x2-1 + 1x2-2 = 2+0+1/2+1/4 = 2,75 na base decimal
34
rangel@dsc.ufpb.br DSC/CCT/UFCG 34 1.3b Aritmética do Computador Conversão de inteiro para binário: (dividindo por 2) Exemplo: Converter 25 decimal para binário 25 / 2 = 12 (quociente) e resto 1 =bms 12 / 2 = 6 (quociente) e resto 0 6 / 2 = 3 (quociente) e resto 0 3 / 2 = 1 (último quociente=BMS) e resto 1 Binário = BMS... bms = 1 1 0 0 1 = 1x2 4 + 1x2 4 + 0x2 2 + 0x2 1 + 1x2 0 = 16 + 8 + 0 + 0 + 1 = 25 decimal
35
rangel@dsc.ufpb.br DSC/CCT/UFCG 35 1.3b Aritmética do Computador Conversão de fração: (multiplicando por 2) Exemplo: converter 0,625 decimal para binário 0,625 x 2 = 1,25 logo a primeira casa fracionária é 1 ; nova fração (resto) é 0,25 (1,25-1=0,25) 0,25 x 2 = 0,5 segunda casa é 0 ; resto é 0,5 0,5 x 2 = 1,0 terceira casa é 1 ; resto é zero. Resultado: 0,625 10 = 0,101 2
36
rangel@dsc.ufpb.br DSC/CCT/UFCG 36 1.3b Aritmética do Computador Problema: 5,8 = 101,11001100..., uma dízima. 11,6 = 1011,10011001100... Toda a aritmética do computador é arredondada 10000 0,22 = 2199,7778 i=1
37
rangel@dsc.ufpb.br DSC/CCT/UFCG 37 Processamento por Lotes (Batch processing) Apenas um programa, um serviço (job) ou uma tarefa (task) por vez Multiprogramação Um processador compartilhado por vários serviços ou tarefas Multiprocessamento Vários processadores compartilhados por vários serviços ou tarefas Processamento por Lotes (Batch processing) Apenas um programa, um serviço (job) ou uma tarefa (task) por vez Multiprogramação Um processador compartilhado por vários serviços ou tarefas Multiprocessamento Vários processadores compartilhados por vários serviços ou tarefas 1.4 Evolução dos Sistemas Operacionais
38
rangel@dsc.ufpb.br DSC/CCT/UFCG 38 Compartilhamento de Tempo (Timesharing) Execução de diversos programas, com a UCP alternando-se entre eles tão freqüentemente que os usuários têm a impressão de ter o computador só para si, podendo interagir com cada programa durante sua execução. Compartilhamento de Tempo (Timesharing) Execução de diversos programas, com a UCP alternando-se entre eles tão freqüentemente que os usuários têm a impressão de ter o computador só para si, podendo interagir com cada programa durante sua execução. 1.4 Evolução dos Sistemas Operacionais
39
rangel@dsc.ufpb.br DSC/CCT/UFCG 39 Computação Pessoal Econômica o bastante para uso individual Computação Distribuída Processamento da informação através de redes de computadores e que a tarefa executa simultaneamente em vários computadores Computação Cliente/Servidor Compartilhamento da informação, através de redes de computadores, entre servidores (repositórios) e clientes (processadores usuários) Computação Pessoal Econômica o bastante para uso individual Computação Distribuída Processamento da informação através de redes de computadores e que a tarefa executa simultaneamente em vários computadores Computação Cliente/Servidor Compartilhamento da informação, através de redes de computadores, entre servidores (repositórios) e clientes (processadores usuários) 1.5Computação Pessoal, Distribuída e Cliente/Servidor
40
rangel@dsc.ufpb.br DSC/CCT/UFCG 40 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:+11000111 000010011 +10101100 111000111 +01001100 011100001 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:+11000111 000010011 +10101100 111000111 +01001100 011100001 1.6Linguagens de Máquina, de Montagem e de Alto Nível
41
rangel@dsc.ufpb.br DSC/CCT/UFCG 41 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 via montadores (assemblers) Exemplo: LOAD A ADD B STORE C 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 via montadores (assemblers) Exemplo: LOAD A ADD B STORE C 1.6Linguagens de Máquina, de Montagem e de Alto Nível
42
rangel@dsc.ufpb.br DSC/CCT/UFCG 42 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: Líquido = Bruto - Descontos Área = (Base * Altura)/2 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: Líquido = Bruto - Descontos Área = (Base * Altura)/2 1.6Linguagens de Máquina, de Montagem e de Alto Nível
43
rangel@dsc.ufpb.br DSC/CCT/UFCG 43 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 1.7 Histórico da Linguagem C
44
rangel@dsc.ufpb.br DSC/CCT/UFCG 44 Padronização da Linguagem C Motivação: Existência e incompatibilidade de diversas variantes 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 1.7 Histórico da Linguagem C
45
rangel@dsc.ufpb.br DSC/CCT/UFCG 45 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 1.8 A Biblioteca Padrão de C
46
rangel@dsc.ufpb.br DSC/CCT/UFCG 46 Programas em C módulos denominados funções Uso freqüente das funções da biblioteca de C por programadores Uso como “blocos” ou “componentes” 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 1.8 A Biblioteca Padrão de C
47
rangel@dsc.ufpb.br DSC/CCT/UFCG 47 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 1.9Tendências de Desenvolvimento de Software: Tecnologia de OBJETOS
48
rangel@dsc.ufpb.br DSC/CCT/UFCG 48 Objetos Maior compreensibilidade, melhor organização, maior facilidade de manutenção do que a programação baseada em procedimentos (procedural) Favorecimento à modularidade 1.9Tendências de Desenvolvimento de Software: Tecnologia de OBJETOS
49
rangel@dsc.ufpb.br DSC/CCT/UFCG 49 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 1.10 C e C++
50
rangel@dsc.ufpb.br DSC/CCT/UFCG 50 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++ ) 1.10 C e C++
51
rangel@dsc.ufpb.br DSC/CCT/UFCG 51 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) 1.11 JAVA
52
rangel@dsc.ufpb.br DSC/CCT/UFCG 52 SmallTalk Programação orientada a objetos 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 1.12 Outras Linguagens de Alto Nível
53
rangel@dsc.ufpb.br DSC/CCT/UFCG 53 1.13 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 Multi-tarefas Especificação de que diversas atividades são executadas paralelamente
54
rangel@dsc.ufpb.br DSC/CCT/UFCG 54 Pré-processador Disco 1.14Fundamentos de um Ambiente Típico de Desenvolvimento de Programas em C Fases de Programas em C/C++ Edição Pré-processamento Compilação Linkagem Carregamento Execução Fases de Programas em C/C++ Edição Pré-processamento Compilação Linkagem Carregamento Execução O programa é criado no editor e armazenado em disco. O programa pré- processador analisa o código fonte. O carregador transfere o programa para a memória. A UCP recupera cada instrução e a executa, armazenando (quando possível) novos valores de dados à medida que o programa é executado. O compilador cria o código-objeto e o armazena em disco. O linker faz a conexão do código-objeto com as bibliotecas. Carregador Compilador Editor Linker Disco UCP Memória Primária Disco Memória Primária Entradas Saidas
55
rangel@dsc.ufpb.br DSC/CCT/UFCG 55 1.15 Tendências de Hardware Características que, grosso modo, duplicam a cada um ou dois anos: Espaço 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 Características que, grosso modo, duplicam a cada um ou dois anos: Espaço 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
56
rangel@dsc.ufpb.br DSC/CCT/UFCG 56 1.16 Internet Facilidades da Internet Comunicação rápida e fácil via e-mail Conexão de computadores via rede internacional Chaveamento de Pacotes Transferência de dados digitais via unidades denominadas pacotes (packets) Possibilidade de envio e recepção simultânea de dados por múltiplos usuários Facilidades da Internet Comunicação rápida e fácil via e-mail Conexão de computadores via rede internacional Chaveamento de Pacotes Transferência de dados digitais via unidades denominadas pacotes (packets) Possibilidade de envio e recepção simultânea de dados por múltiplos usuários
57
rangel@dsc.ufpb.br DSC/CCT/UFCG 57 Descentralização do Controle Possibilidade de operação de outras partes da rede caso uma parte da Internet apresente falhas Protocolos de comunicação HTTP: composto de Corpo pode ser: text/plain; text/html; image/gif; image/gif; image/jpeg; aplicação/zip FTP Largura de Faixa Capacidade de transferência da informação exibida pelas linhas ou meios de comunicações Descentralização do Controle Possibilidade de operação de outras partes da rede caso uma parte da Internet apresente falhas Protocolos de comunicação HTTP: composto de Corpo pode ser: text/plain; text/html; image/gif; image/gif; image/jpeg; aplicação/zip FTP Largura de Faixa Capacidade de transferência da informação exibida pelas linhas ou meios de comunicações 1.16 Internet
58
rangel@dsc.ufpb.br DSC/CCT/UFCG 58 “Teia Global” (World Wide Web) Localização/Visualização de documentos multimídia de quase toda a espécie Acesso instantâneo e adequado à informação existente nas mais diversas partes do mundo Possibilidade de divulgação em nível mundial de negócios realizados por indivíduos e pequenas empresas Alteração dos modos de realização de negócios (E- commerce) 1.17 WEB
59
rangel@dsc.ufpb.br DSC/CCT/UFCG 59 // Programa que executa a soma de dois inteiros #include // 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 // Programa que executa a soma de dois inteiros #include // 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 1.18 Preparação para o Capítulo 2 – Exemplo (Soma de 2 Inteiros)
60
rangel@dsc.ufpb.br DSC/CCT/UFCG José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE CIÊNCIAS E TECNOLOGIA
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.