1 |
22-02-1999 |
Apresentação da ficha da disciplina. Introdução à linguagem C: apresentação de programas
simples; primeiras diferenças em relação ao Pascal. |
2 |
26-02-1999 |
Introdução à linguagem C (cont.): entrada e saída de dados com printf e scanf; instruções de
controlo do fluxo do programa. |
3 |
01-03-1999 |
Introdução à linguagem C (cont.): tipos de dados básicos; operadores e
expressões. |
4 |
05-03-1999 |
Introdução à linguagem C (cont.): funções; pré-processador de C. |
5 |
08-03-1999 |
Introdução à linguagem C (cont.): apontadores e arrays. |
6 |
12-03-1999 |
Introdução à linguagem C (conclusão): estruturas; definição de tipos de dados com
typedef. |
7 |
15-03-1999 |
Introdução à linguagem C++: pequenas extensões em relação ao C. |
8 |
19-03-1999 |
Exercícios de revisão |
9 |
22-03-1999 |
Algoritmos de pesquisa e ordenação de arrays: pesquisa sequencial, pesquisa binária, ordenação
por inserção. |
10 |
26-03-1999 |
Algoritmos de pesquisa e ordenação de arrays (conclusão): ordenação por partição.
Análise de algoritmos: noção de complexidade temporal e espacial; notação de O grande; aplicação aos algoritmos de pesquisa e ordenação
de arrays. |
11 |
09-04-1999 |
Introdução à programação orientada aos objectos.
Introdução à linguagem C++: extensões em relação ao C; funções inline, referências; argumentos por omisão; sobrecarga de funções;
padrões (templates) de funções; alocação e libertação de memória dinâmica com new e delete; funções membro de
estruturas |
12 |
12-04-1999 |
Introdução à linguagem C++ (cont.): tipos de dados criados pelo programador; conceito de
classe e conceito de objecto; membros-função de classes; restrições de acesso; construtores e destrutores |
13 |
16-04-1999 |
Introdução à linguagem C++ (cont.): objectos e membros constantes; membros-iniciador;
composição de classes; classes e funções friend; apontador this; criação e destruição de objectos com new e delete; membros estáticos;
padrões de classes |
14 |
19-04-1999 |
Introdução à linguagem C++ (conclusão): tipos de dados abstractos; exemplo da stack; classes
base e classes derivadas; herança; funções virtuais e polimorfismo; tratamento de excepções |
15 |
23-04-1999 |
Listas Lineares: o tipo de dados abstracto; representação em array; implementação em
C++ |
16 |
26-04-1999 |
Listas Lineares: representação ligada em cadeia; implementação em C++; listas circulares e
listas duplamente ligadas |
17 |
30-04-1999 |
Listas Lineares: representação por endereçamento indirecto; implementação em C++;
representação por simulação de apontadores; comparação entre as várias representações; exemplo de aplicação |
18 |
10-05-1999 |
Pilhas: tipo de dados abstracto; implementação baseada em array; implementação baseada em
cadeia; aplicação de pilhas à verificação de parentesis numa expressão |
19 |
14-05-1999 |
Filas: tipo de dados abstracto; implementação baseada em array (fórmula); implementação
baseada em cadeia (ligada); aplicação de filas à identificação de compoenentes de uma imagem |
20 |
17-05-1999 |
Exercícios de aplicação: manipulação de strings (substituído por João Pascoal de
Faria) |
21 |
21-05-1999 |
Exercícios de aplicação: ordenação de cadeias pelo método "merge sort" natural (substituído por
João Pascoal de Faria) |
22 |
24-05-1999 |
Hashing: dicionários, tabelas de dispersão ("hash"), implementação em C++ da classe
HashTable; aplicação à compressão de ficheiros segundo o algoritmo LZW |
23 |
28-05-1999 |
Árvores: definições; árvores binárias; representação de árvores baseada em fórmula; representação
ligada (em cadeia); percorrer a árvore em profundidade (pré-order, em-ordem e pós-ordem) e em largura |
24 |
31-05-1999 |
Tipo de dados abstracto BinaryTree; classe C++ BinaryTree para implementar uma árvore
binária; percorrer a árvore em profundiade e em largura; aplicação. |
25 |
04-06-1999 |
Aplicação de árvores binárias: rede de distribuição |
26 |
07-04-1999 |
Árvores de procura de m-vias; operações
B-trees; inserção e remoção numa B-tree |