Programação Imperativa

Ano Lectivo: 06/07 (2º semestre)

Sumário das Aulas TP e P (LCC)


Aulas Teórico-Práticas e Práticas
(TP1: 2ªfeira, 11h00-13h00 (JSP))
(TP2: 5ªfeira, 08h00-11h00 (JBB))
(TP3: 6ªfeira, 10h00-13h00 (DCC))
2007/02/26-03/02
2007/03/05-03/09
2007/03/12-03/16
2007/03/19-03/23
2007/03/26-03/30
2007/04/02-04/06 (Páscoa)
2007/04/09-04/13
2007/04/16-04/20
2007/04/23-04/27
2007/04/30-05/04
2007/05/07-05/11
2007/05/14-05/18 (Tolerância: Enterro da Gata)
2007/04/21-04/25
2007/04/28-06/01
2007/06/04-06/08


Semana 1

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JBB)
P: Compilação e execução de programas escritos em C.
TP: Programas básicos. Variáveis e atribuições. I/O (scanf/printf). Exercícios 1.1, 1.3, 2.3 da Ficha prática n. 1.


Semana 2

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Apresentação do enunciado e princípios subjacentes ao trabalho prático da disciplina. Discussão do algoritmo básico para o corpo principal da respectiva aplicação.
P: Resolução de exercícios da ficha 1 sobre ciclos (while e for) em C. Utilização de ciclos no controlo da interface com o exterior; leitura de sequências de valores. Exercícios sobre arrays: preenchimento interactivo; função de pesquisa linear.
(JBB)
P: Análise do enunciado do Trabalho prático. Operações sobre ficheiros (fopen, fclose, fread, fwrite, fseek e ftell).
TP: Programas com ciclos e arrays. Exercício 3.1 da Ficha 1 e 1 da Ficha 2.
(DCC)
TP: Resolução de exercícios da ficha 1 sobre ciclos (while e for) e da ficha 2 sobre arrays (leitura e pesquisa), em C.
P: Apresentação do enunciado e discussão de objectivos a alcançar na primeira fase do trabalho prático da disciplina. Discussão do algoritmo inicial a implementar para a aplicação AJ. Implementação de leitura de ficheiros (fopen, fclose, fgets, fscanf, fprintf). Discussão das diferenças entre fgets e fscanf; apresentação da biblioteca string.h (strcmp, strcpy, strdup, strlen, strcat).


Semana 3

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Pesquisa em arrays: pesquisa linear; pesquisa binária (versões com ciclo e recursiva). Discussão de vários aspectos algorítmicos. e outros relacionados com a execução da instrução "return" em pontos arbitrários.
P: Resolução de exercícios da ficha 2. Preenchimento de arrays a partir da leitura de sequências de valores de comprimento arbitrário. Introdução à utilização de ficheiros: as instruções fopen, fclose, fprintf e fscanf. Discussão do guião relativo ao primeiro ponto de controlo do trabalho prático.
(JBB)
P: Codificação dos exercícios sobre strings. Escrita de programas com argumentos (argc e argv).
TP: Exercícios com strings. Arrays vs apontadores. Passagem de parâmetros por referência. Exercício 2 da Ficha 3.
(DCC)
TP: Resolução de exercícios da ficha 2 sobre arrays (leitura, pesquisa, cálculos da média e valores acumulados) e da ficha 3 sobre strings (sobre capicuas).
P: Pré-Avaliação da primeira fase do trabalho prático da disciplina. Discussão com os alunos de melhorias a fazer ao relatório e análise de alguns problemas de implementação de algoritmos.


Semana 4

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Arrays de caracteres (strings) e matrizes em C. Resolução de alguns exercícios das fichas 3 e 4 sobre estes temas: função de detecção de capicuas; comprimento e cópia de uma string. Soma de matrizes.
P: Resolução de exercícios das fichas 3 e 4. Acompanhamento do trabalho prático: menu principal do programa; esclarecimento de questões relacionadas com a leitura de ficheiros.
(JBB)
P: Implementação dos algoritmos de ordenação para o caso de arrays de strings. Quick-sort e formas alternativas de definição da função de partição.
TP: Ordenação de arrays de inteiros: bubble-sort, troca directa.
(DCC)
TP: Resolução dos exercícios 3 e 5 da ficha 4 sobre matrizes.
P: Análise e resolução de alguns problemas no trabalho prático com leitura de strings (scanf e fgets), menus e jogo da forca.


Semana 5

Não houve aula: organização e participação na ETAPS'2007


Semana 6

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP + P: não houve aula por cair ainda em período de Férias de Páscoa.
(JBB)
TP:
P:
(DCC)
TP: Resolução de exercícios da ficha 5 sobre processamento de imagens com matrizes. Explicação de alguns conceitos relacionados com imagens do formato PNM (Portable AnyMap). Leitura de uma imagem no formato PBM e conversão de decimal em binário.
P: Avaliação da primeira fase do trabalho prático da disciplina relativa ao algoritmo e à implementação do jogo da forca e algoritmo do jogo Minesweeper.


Semana 7

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Lançamento da ficha de trabalho 5, sobre tratamento de imagens representadas em ficheiros de texto.
Estudo de um algoritmo de ordenação implementado em C: insertion sort.
P: Resolução de exercícios da ficha 5. Avaliação presencial dos trabalhos práticos (1a. fase).
(JBB)
TP:
P:
(DCC)
TP: Continuação da resolução de exercícios da ficha 5 sobre processamento de imagens com matrizes. Conversão de uma imagem do tipo P1 (formato textual - linhas da matriz formada por arrays de bits) para uma imagem do tipo P4 (formato binário - valores da imagem em decimal).
P: Acompanhamento dos alunos na resolução do trabalho prático. Conceitos e regras relacionados com o jogo Minesweeper.


Semana 8

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Passagem de argumentos por referência em C. Aritmética de apontadores. Exemplos: função swap de duas variáveis; versões alternativas, sem notação [ ], das funções swap de duas posições num array e partição de um array (auxiliar de Quicksort).
P: Resolução de exercícios da ficha 6. Algoritmos de ordenação Quicksort e Bubblesort.
(JBB)
TP:
P:
(DCC)
TP:
P:


Semana 9

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP -- aula de substituição dada por JBB)
TP: Resolução de exercícios da Ficha 5 sobre representação de imagens.
P: Resolução de exercícios da Ficha 5 sobre representação de imagens.
(JBB)
TP:
P:
(DCC)
TP:
P:


Semana 10

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Listas ligadas. Considerações: memória estática vs. dinâmica. Inserção em listas ligadas. Funções recursivas sobre listas ligadas. Exemplos: inserção em listas ligadas. Necessidade de armazenamento do endereço inicial devolvido por funções construtoras de listas ligadas.
P: Desenvolvimento de uma função para inserção ordenada numa lista ligada e respectivo programa de teste. Solução recursiva.
(JBB+DCC)
TP+P: Não houve aula: participação dos Docentes e Alunos nas JOIN'2007 para divulgação do 2ºCiclo do DI


Semana 11

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: (JSP)
TP: Solução iterativa para o algoritmo de inserção ordenada numa lista ligada. Remoção de elementos de uma lista ligada ordenada: solução iterativa.
P: Resolução de exercícios da Ficha 7: implementação das funções de acesso a uma pilha e a uma fila de espera, implementadas como listas ligadas simples.
(JBB)
TP:
P:
(DCC)
TP: Resolução do exercício 1 da ficha 7. Introdução ao uso de listas ligadas e struct. Implementação do algoritmo de inserção de um elemento numa lista (à cabeça).
P: Avaliação dos trabalhos práticos relativamente à 2a fase (jogo Minesweeper + algoritmo jogo Spite and Malice).


Semana 12

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber: Além disso e conforme previsto, o docente foi avaliando, ao longo da aula e junto de cada grupo, o estado do projecto relativamente aos objectivos propostos para a 2ª fase (2ºGuião).
(JSP)
TP: Implementação alternativa de uma fila de espera através de uma estrutura com dois apontadores, para o início e para o fim de uma lista ligada. Estruturas de dados não lineares: implementação em C de árvores binárias. Definição da função de inserção ordenada numa árvore binária de pesquisa.
P: Avaliação presencial dos trabalhos práticos (2a. fase).
(JBB)
TP:
P:
(DCC)
TP: Continuação da resolução de exercícios relativos à ficha 7 (listas ligadas). Remoção de um elemento da lista (exercício 1). Inserção ordenada numa lista (exercício 4).
P: Avaliação de trabalhos práticos. Demonstração do jogo Spite and Malice e discussão das regras de jogo e respectiva implementação.


Semana 13

Tópicos:
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
(JSP)
TP:
P:
(JBB)
TP:
P:
(DCC)
TP: Resolução de exercícios relativos à ficha 8 (listas ligadas). Operações de inserção, remoção e alteração numa lista (exercício 3).
P: Conclusão da aula anterior. Compilação separada e Makefiles. Passagem de Argumentos à Main().

author: prh@di.uminho.pt; 
Last modified: sábado, Junho 9, 2007 at 18:01