|
Programação II |
Os principais objetivos desta Unidade Curricular são:
- aprofundar os conhecimentos de programação em linguagem C, através do estudo de alguns tópicos avançados como ficheiros binários e memória dinâmica;
- adquirir conhecimentos sobre algoritmia, em particular algoritmos recursivos, de ordenação e de pesquisa, e análise de complexidade dos algoritmos.
No final da Unidade Curricular o estudante deve ser capaz de
- resolver problemas utilizando a linguagem de programação em C e os conceitos avançados estudados, assim como desenvolver competências de algoritmia, em particular em problemas que envolvam recursividade, ordenação e pesquisa;
- analisar a eficiência dos algoritmos, através da respetiva análise de complexidade, de forma a usar os algoritmos mais eficientes na resolução de problemas.
|
Programação II |
PARTE A - Tópicos avançados da linguagem C
1 - Introdução: estruturas, ponteiros e ficheiros de texto
2 - Gestão de memória dinâmica
3 - Ficheiros binários
4 - O pré-processador do C. Passagem de parâmetros a main. Construção de bibliotecas de funções
5 - Introdução a "Makefiles"
PARTE B - Algoritmos
6 - Algoritmos recursivos
7 - Análise de complexidade dos algoritmos
8 - Estruturas de dados sequencial (Listas) com armazenamento sequencial
8.1 - Implementação de Listas usando memória dinâmica
8.1.1 - Criar uma Lista
8.1.2 - Inserir um elemento numa Lista
8.1.3 - Remover um elemento numa Lista
8.2 - Algoritmos de ordenação (os elementos de uma Lista)
8.2.1 - Iterativos: Selecção e Borbulhagem/Bubblesort
8.2.2 - Recursivos: Separação/Quicksort e Fusão
8.3 - Algoritmos de pesquisa (um elemento numa Lista)
8.3.1 - Iterativos: exaustiva, sequencial e binária
8.3.2 - Recursivos: binária
8.4 - Tabelas de dispersão (Hash)
|
Programação II |
"Estruturas de Dados e Algoritmos em C", 2008
António Manuel Adrego da Rocha
FCA - Editora Informática. Coleção: Tecnologias de Informação
ISBN: 9789727222957
"Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms", 3rd Edition, 2001
By Robert Sedgewick
Addison-Wesley Professional
ISBN: 0201756080
"Elementos de Programação com C", 3ª Edição Actualizada e Aumentada, 2006
Pedro João Valente Dias Guerreiro
FCA - Editora Informática. Coleção: Tecnologias de Informação
ISBN: 9789727225101
"Introdução à Programação Usando C", 2006
António Manuel Adrego da Rocha
FCA - Editora Informática. Coleção: Tecnologias de Informação
ISBN: 9789727225248
|
Programação II |
A avaliação no período de Aprendizagem consiste no seguinte :
- 2 Fichas de Trabalho: 5 valores (a realizar ao longo do semestre nas aulas práticas e valendo 2.5 valores cada)
- 2 Testes Escritos: 15 valores (7 + 8)
- Assiduidade: 75%
Aprendizagem = Fichas de Trabalho + Testes Escritos
em que,
- Assiduidade < 75% ==> Reprovado e Não Admitido a Exame
- Fichas de Trabalho < 1.25 (em 5) ==> Reprovado e Não Admitido a Exame
- Aprendizagem < 5.5 ==> Reprovado e Não Admitido a Exame
- Aprendizagem >= 9.5 ==> Aprovado e Dispensado de Exame
- Outros casos ==> Reprovado e Admitido a Exame
Exames = Fichas de Trabalho + Teste Escrito
em que,
- Fichas de Trabalho (realizadas ao longo do semestre): 5 valores
- Teste Escrito (Exame): 15 valores
|
Programação II |
Tipo
Data
Salas
Frequência 1 22/04; 18h - Frequência 2 27/05; 18h - Ficha Trabalho 1 18/03 - 20/03 Aula prática Ficha Trabalho 2 03/06 – 05/06 Aula prática
Testes do ano lectivo 2018-2019 (2º Semestre):
Frequência 1: Enunciado + Resolução
Frequência 2: Enunciado + Resolução
Exame Época Normal: Enunciado
Exame Época Recurso: Enunciado
|
Programação II |
Ano letivo 2019/2020, 1º Semestre (necessita de senha de acesso - ver rodapé de enunciado de testes)
Fichas de Trabalho
Frequência 1
Frequência 2 (Os testes podem ser consultados durante a próxima aula prática (3ª feira, 11h)
Aprendizagem (Fichas de Trabalho + Frequência 1 + Frequência 2)
Exame Época Normal (Fichas de Trabalho + Teste Escrito)
Exame Época Recurso (Fichas de Trabalho + Teste Escrito)
|
Programação II |
PARTE A - Tópicos avançados da linguagem C
PARTE B - Algoritmos
7. Análise de complexidade dos algoritmos
8. Estruturas de dados sequencial (Listas) com armazenamento sequencial
8.1. Implementação de Listas usando memória dinâmica
8.2. Algoritmos de ordenação
8.2.1. Iterativos: por selecção e por troca/borbulhagem (Bubble Sort)
8.2.2. Recursivos: por separação (Quick Sort) e por fusão (Merge Sort) Exemplos
8.3. Algoritmos de pesquisa:
8.3.1. Iterativos: Exaustiva, Sequencial e Pesquisa Binária
8.3.2. Recursivos: Pesquisa Binária
8.4. Tabelas de Dispersão (Hash) Mais sobre Tabelas de Hash
Sebenta
Capítulo 1 - Introdução
Capítulo 2 - Estrutura de Dados sequencial com armazenamento sequencial
Outros apontamentos
Exemplos
Exemplo 1: Memória dinâmica + Ordenação
Exemplo 2: Memória dinâmica + Ordenação + Pesquisa
Exemplo 3: Inserção e remoção de um elemento de um vetor ordenado
Exemplo 4: Remover todos os elementos de um vetor ordenado entre E1 e E2
|
Programação II |
Folha 1.1 - Estruturas (struct)
Folha 1.2 - Ponteiros
Folha 1.3 - Ficheiros de texto
Folha 2 - Gestão de memória dinâmica
Folha 3 - Ficheiros binários
Folha 4 - O pré-processador do C
Folha 5 - Introdução a makefiles
Folha 6 - Algoritmos recursivos
Folha 7 - Análise de complexidade dos algoritmos
Folha 8.1 - Implementação de Listas usando memória dinâmica
Folha 8.2 - Algoritmos de ordenação
Folha 8.3 - Algoritmos de pesquisa
Folha 8.4 - Tabelas de dispersão (Hash)
Outras folhas práticas
Bibliotecas
Ordenação (Vetores de Inteiros)
Funções implementadas fornecidas:
LerVectorALUNO (lê de um ficheiro com elementos do tipo ALUNO)
Exercícios das folhas práticas implementados:
Ficheiros Binários - Exercício 2
Exemplos implementados:
Ficheiros de texto fornecidos:
Entrada no sistema
|
Programação II |
Acesso através de computadores das salas 6.14 e 6.19
Acesso através de outros computadores
|
Programação II |
Horas
Segunda
Sala
Terça
Sala
Quarta
Sala
Quinta
Sala
Sexta
Sala
8
9
TE
6.03
PL2
6.19
10
TE
6.03
PL2
6.19
11
ATEND
G4.2
PL3
6.19
12
PL3
6.19
13
14
PL1
6.14
PL4
6.19
PL5
6.19
15
PL1
6.14
PL4
6.19
PL5
6.19
16
17
18
ATEND
G4.2