Licenciatura em Informática Unidade Curricular Programação I Programming I Objetivos -Técnicas Fundamentais de Programação; -A linguagem C e C++: fundamentos; -Aplicações em linguagem C; -Aplicações em linguagem C++; -Conceitos avançados de C e C++. Summary of objectives -Fundamental Programming Techniques; -The C and C ++ Languages: Foundations; -Applications in C language; -Applications in C++ language; -Advanced concepts of C and C++. Enquadramento: Obrigatória, 1º ano - 1º Semestre Pré-requisitos: Créditos: 6 ECTS Horas contacto Orientação tutorial (OT): 12 h Seminário (S): 0 Teóricas (T): 0 Prática Laboratoriais (PL): 0 Teórico-práticas (TP): 48 h
Contextualização Científica C/C++ é uma linguagem de programação simples, compilada, multiparadigma (genérica, imperativa e orientada a objetos), flexível, portável, de grande rapidez de execução e desempenho, moderna e completa, considerada excelente e poderosa para o desenvolvimento de software, tanto de baixo como médio e alto níveis, tendo mesmo servido de inspiração e base na criação de novas linguagens de programação, hoje muito populares, tais como, Java, C# e Python, entre outras. Dada assim a sua natureza, um futuro programador, começando por conhecer a linguagem C/C++, adquire uma base sólida em programação, conducente ao seu sucesso e domínio na vasta área de programação e de desenvolvimento de software. Por esta razão, a linguagem C/C++ é muito popular mundialmente e tem sido adotada como a primeira linguagem de programação a ser ministrada pelas maiores e melhores universidades do mundo. A linguagem C/C++ está otimizada, nos dias de hoje, para algumas áreas importantes: a) É uma linguagem poderosa para análise aprofundada de dados científicos. b) Sendo uma linguagem compilada, de execução rápida, que obtém um grande desempenho, e de médio nível tem sido a linguagem de excelência para desenvolvimento de programas, que requeiram acesso ao hardware, como, por exemplo, Sistemas Operativos, Drivers e Telecomunicações. O Sistema Operativo Linux, por exemplo, foi completamente escrito em C. Grande parte do código de várias versões dos Sistemas Operativos da família Windows foi escrito em C/C++. Por esta razão, as empresas industriais nas áreas, tais como, automação, aeroespaciais e de telecomunicações utilizam muito o C/C++. c) Inteligência Artificial, principalmente nas áreas de Robótica e de criação de Jogos inteligentes. d) É uma linguagem de uso geral que pode ser empregada em vários tipos de problemas, já que é suportada por uma biblioteca padrão poderosa aplicável a todo tipo de aplicações. Em termos científicos é sistematicamente utilizada como ferramenta de ensino de programação (pela sua facilidade de aprendizagem e implementação de conceitos de Ciência da Computação), teste e prototipagem, script, etc.
Operacionalização dos Conteúdos 1. Apresentação da linguagem C a. Programas e linguagens de programação b. Contextualização da linguagem C perante os diferentes paradigmas de programação c. Compiladores e interpretadores d. Compilação e linkagem e. O código fonte e o executável f. Identificadores g. Constantes e strings de caracteres h. Operadores e funções 2. Variáveis, constantes e tipos básicos de dados a. Declaração e inicialização de variáveis b. Variáveis locais e globais c. Constantes 3. Output para o ecrã a. A função printf() b. Data identifiers 4. Input do teclado a. A função scanf() b. O operador addressof 5. Operadores a. Operadores e expressões b. Operadores aritméticos c. Operadores lógicos d. Operadores de comparação e. Operadores de incremento e decremento 6. Estruturas de controlo a. O statement if b. O statement switch c. O statement while d. O statement for 7. Funções a. Criar e aceder a funções b. Argumentos de funções c. O valor retornado pelas funções d. Recursividade 8. Arrays a. Declaração e inicialização de arrays b. Aceder aos elemento de arrays c. Arrays multidimensionais 9. Strings a. Conceito de string b. Inicializar strings de caracteres c. Funções básicas de strings 10. Pointers a. Aceder a variáveis através de endereços b. Variáveis do tipo pointer c. Programação de pointers para pointers 11. Structures a. Conceito de Structures b. Criar Structures c. Aceder aos membros das Structures
12. Ficheiros a. Ficheiros de Texto b. Ficheiros Binários 13. Elementos da linguagem C++ a. Tipos de dados b. Input do teclado c. Output para o ecrã 14. Classes e objectos a. Conceitos base b. Data members e function members c. Comunicação entre objectos d. Class Constructors e. Criar múltiplos objectos de uma classe f. Class Destructor g. Herança de classes
Bibliografia OBRIGATÓRIA: ROCHA, António; Introdução à Programação Utilizando C, Editora FCA RODRIGUES, Pimenta; Programação em C++, Editora FCA COMPLEMENTAR: CARRIÇO, Rui; Introdução à Programação usando linguagem C, Edições Chambel CARRIÇO, Rui; Linguagem C++, Edições Chambel DAMAS, Luís; Linguagem C, Editora FCA RITCHIE, Dennis; KERNIGHAN, Brian; The C Programming Language, Prentice Hall DEITEL, Paul; DEITEL, Harvey: C How to Program, Deitel & Deitel DEITEL, Paul; DEITEL, Harvey; C++ How to Program, Deitel & Deitel MEYERS, Scot; Effective Modern C++, O Reily ECKEL, Bruce; Using C++, MacGraw Hill HENNEFELD, Julien; BAKER, Laura; BURCHARD, Charles. Using C++ An Introduction 2nd Edition, Brooks/Cole GUERREIRO, Pedro; Programação de Classes em C++, Editora FCA