Programação

Conhecimentos de Base Recomendados

 

Conhecimentos básicos de programação em linguagem C.

É recomendável que os alunos tenham obtido aprovação na unidade curricular de Introdução à Programação.

 

Métodos de Ensino

 

Aulas teóricas: Apresentação de novos conceitos e discussão de exemplos.

Aulas práticas: Resolução de exercícios práticos. Implementação autónoma de programas em C.

Resultados de Aprendizagem

Nesta disciplina os alunos adquirem conhecimentos complementares que lhes permitem conceber e desenvolver programas completos em linguagem C.

Uma visão abrangente que permita explorar todas as capacidades da linguagem C é essencial para o desenvolvimento de programas que resolvam problemas do mundo real. Ao longo da disciplina é dada especial importância à manipulação de ficheiros e gestão dinâmica de memória. Os alunos adquirem ainda capacidade para conceber e implementar programas que utilizem estruturas de dados fundamentais, como filas, pilhas, listas e árvores binárias.

Programa

 

1. Ponteiros

1.1. Noções básicas sobre ponteiros e endereços
1.2. Ponteiros e funções
1.3. Aritmética de ponteiros
1.4. Tabelas de ponteiros para strings

2. Ficheiros de cabeçalho

2.1. Divisão de um programa em vários ficheiros de código
2.2. Utilização de ficheiros de cabeçalho

3. Estruturas

3.1. Noções básicas sobre estruturas
3.2. Definição de tipos: typedef
3.3. Tabelas de estruturas
3.4. Alocação dinâmica de tabelas
3.5. Unions
3.6. Tipos definidos por enumeração

4. Estruturas Dinâmicas

4.1. Tipos básicos de estruturas dinâmicas: listas ligadas
4.2. Operações a efetuar numa lista ligada
4.3. Outros tipos de estruturas dinâmicas

5. Ficheiros

5.1. Tipos de ficheiros: ficheiros binários e ficheiros de texto
5.2. Operações básicas: criação, leitura e escrita
5.3. Outras operações sobre ficheiros: pesquisa, alteração.
5.4. Acesso não sequencial a ficheiros

6. Recursividade

6.1. Noções básicas sobre recursividade
6.2. Exemplos de funções recursivas
6.3. Manipulação de árvores binárias

Docente(s) responsável(eis)

Estágio(s)

NAO

Bibliografia

 

Bibliografia essencial

King, K. N. (2008). C Programming: A Modern Approach, second edition. W. W. Norton & Company. (Cotas 1A-1-351, 1A-1-352)

Slides das aulas teóricas e material de apoio para as aulas práticas (Fichas Práticas e excertos de código). O material está disponível no InforEstudante e no GitHub.

 

Bibliografia complementar

Bermudez, M. (1998). Study Guide for C Programming: A Modern Approach. W. W. Norton & Company. (Cotas 1A-1-293, 1A-1-91)

Guerreiro, P. (2006). Elementos de Programação em C, 3ª edição. FCA- Editora de Informática. (Cotas 1A-1-195, 1A-1-430)

Sedgewick, R. (1999). Algorithms in C: Fundamentals, Data Structures, Sorting, Searching, 3ª edição, Addison-Wesley. (Cota 1A-1-296)