Programação de Computadores

Conhecimentos de Base Recomendados

Conhecimentos base de uma Linguagem de programação.

Métodos de Ensino

Nas aulas teóricas, a metodologia de ensino predominante é o método expositivo, complementado pela análise de exemplos ilustrativos. As aulas laboratoriais permitem a consolidação dos conhecimentos teóricos adquiridos ao longo do semestre através da resolução orientada de problemas propostos. Existirá ainda uma componente de projeto que será desenvolvida no final do semestre.

As aulas laboratoriais realizam-se nos Laboratórios de Apoio à Informática onde os aluno têm ao seu dispor computadores pessoais. 

 

Resultados de Aprendizagem

O objetivo principal desta unidade curricular é dotar os alunos das técnicas/ferramentas indispensáveis para resolver, escrever, efetuar o debug e testar, pequenas e médias aplicações utilizando a Linguagem de Programação C. 

  • Aplicar os conceitos e técnicas necessárias para a conceção de algoritmos que permita resolver os problemas propostos
  • Desenvolver programas em linguagem C de forma estrutura a partir de um problema real
  • Realizar debug e testar um programa, interpretar e analisar os resultados obtidos
  • Compreender os principais características das linguagens orientadas a objetos
  • Contribuir de forma ativa para o trabalho em grupo
  • Realizar a apresentação de forma profissional
  • Documentar relatórios técnicos 
  • Evitar o plágio, referenciando os sites e autores de forma ética

Programa

1. Vetores (Arrays)

 – Revisão dos conceitos fundamentais de vetores e apontadores

 – Vetores e strings como argumentos de funções

 – Vetores de apontadores

– Vetores multidimensionais

– Vetores multidimensionais como argumentos de funções 

2. Gestão de Memória Dinâmica

 – Alocação de memória

 – Principais funções de alocação dinâmica de memória

– Libertação de memória 

3. Algoritmos de Ordenamento e Pesquisa

 – Ordenamento por Seleção

 – Ordenamento por Borbulhagem

 – Ordenamento por Inserção

 – Pesquisa Linear

 – Pesquisa Linear com Sentinela

 – Pesquisa Binária

4. Estruturas

 – Definição

 – Declaração e inicialização de estruturas

 – Regras de processamento de estruturas

 – Operações sobre estruturas

 – Estruturas hierárquicas

 – Definição de novos tipos

 – Vetores de estruturas

 – Funções e estruturas: parâmetros e retorno

 – Apontadores para estruturas

 – Uniões

 – Bit Fields

5. Ficheiros

 – Ficheiros de texto versus ficheiros binários

 – Streams (Fluxos de Comunicação)

 – Operações básicas sobre ficheiros

 – Ficheiros Standard

 – Acesso em modo de texto

 – Acesso em modo binário

 – Acesso direto e acesso sequencial

 – Inserir, alterar e apagar Elementos de um ficheiro

6. Estruturas de Dados Dinâmicas

 – Estruturas autorreferenciáveis

 – Tipos de estruturas de dados dinâmicas

 – Listas ligadas

 – Operações sobre listas ligadas.

7. Programas de Grandes Dimensões

 – Header Files

 – Divisão de um programa em vários ficheiros.

 8. Tópicos Vários

 – Tipos Enumerados

 – Operador Condicional ? :

 – Operador Vírgula

 – Macros 

 – Argumentos de um Programa

9. Introdução às Linguagens Orientadas a Objetos

 – Paradigmas de programação

 – Principais características das linguagens orientadas a objetos

 – Classes e Objetos

 – Análise de pequenos exemplos em C++

 

Docente(s) responsável(eis)

Estágio(s)

NAO

Bibliografia

Vasconcelos, V., Marques, L. (2012). Linguagem C – Textos de apoio. Instituto Superior de Engenharia de Coimbra.

 Damas, L. (1999). Linguagem C. FCA – Editora de Informática.

Rocha, A. (2006). Introdução à Programação Usando C. FCA – Editora de Informática.

Guerreiro, P. (2006). Elementos de Programação com C. FCA – Editora de Informática, 3ª Ed.

Rodrigues, P., Pereira, P. , Sousa, M. (1998).  Programação em C++ . FCA – Editora de Informática, 3ª Ed.

Ritchie, D. M., Kernighan, B. W., & Lesk, M. E. (1988). The C programming language. Englewood Cliffs: Prentice Hall.

King, K. N. (2008). C programming: a modern approach. WW Norton & Company.

Schildt, H. (2000). Teach Yourself C. McGraw-Hill, 4th Ed.

Vasconcelos, V. (2021). Apontamentos das aulas, folhas práticas, exercícios resolvidos e software de apoio. Coimbra: ISEC.