Presentation is loading. Please wait.

Presentation is loading. Please wait.

DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria José Eustáquio Rangel de Queiroz Roberto Medeiros de.

Similar presentations


Presentation on theme: "DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria José Eustáquio Rangel de Queiroz Roberto Medeiros de."— Presentation transcript:

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


Download ppt "DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria José Eustáquio Rangel de Queiroz Roberto Medeiros de."

Similar presentations


Ads by Google