O ambiente de trabalho para este semestre: Linguagem C em Linux;
o Compilador gcc e a escolha de um Editor (vi, emacs, etc.);
Introdução ao Linux (modo de trabalho em linha de comando) e ao C --
filosofia geral deste SO e desta Linguagem de Programação;
Resolução dos primeiros exercícios da Ficha n.º 1
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Estruturar um programa em C com base numa colecção de 1 ou mais funções e uma zona inicial de declarações globais.
Escrever um programa em C para tratar inteiros simples, com estruturas de controlo condicionais
e cíclicas, compilá-lo e executá-lo;
O modo como o Pré-Processador do gcc trata os comandos #include (para inclusão de
ficheiros de texto) e #define (para definição de constantes e macros);
(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.
O ambiente de trabalho para este semestre: Linguagem C em Linux;
o Compilador gcc e a escolha de um Editor (vi, emacs, etc.); o utilitário make;
o processador de documentos LaTeX.
Introdução ao Linux (modo de trabalho em linha de comando) e ao C --
filosofia geral deste SO e desta Linguagem de Programação;
Continuação da Resolução dos exercícios da Ficha TP n.º 1
Introdução à Resolução dos exercícios da Ficha TP n.º 2
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Estruturar um programa em C com base numa colecção de 1 ou mais funções e uma zona inicial de declarações globais.
Escrever um programa em C para tratar inteiros simples, com estruturas de controlo condicionais
e cíclicas, bem como para trabalhar com Arrays de inteiros.
(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).
O ambiente de trabalho para este semestre: Linguagem C em Linux.
Continuação da Resolução dos exercícios da Ficha TP n.º 2
Introdução à Resolução dos exercícios da Ficha TP n.º 3
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Estruturar um programa em C com base numa colecção de 1 ou mais funções e uma zona inicial de declarações globais.
Escrever um programa em C para tratar inteiros simples, com estruturas de controlo condicionais
e cíclicas, bem como para trabalhar com Arrays de inteiros a uma dimensão e Arrays de Caracteres (Strings).
(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.
O ambiente de trabalho para este semestre: Linguagem C em Linux.
Continuação da Resolução dos exercícios da Ficha TP n.º 3
Introdução à Resolução dos exercícios da Ficha TP n.º 4
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Estruturar um programa em C com base numa colecção de 1 ou mais funções e uma zona inicial de declarações globais.
Escrever um programa em C para tratar inteiros simples, com estruturas de controlo condicionais
e cíclicas, bem como para trabalhar com Arrays de inteiros a uma dimensão e Arrays de Caracteres (Strings).
(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.
O ambiente de trabalho para este semestre: Linguagem C em Linux.
Introdução à Resolução dos exercícios da Ficha TP n.º 5
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Estruturar um programa em C com base numa colecção de 1 ou mais funções e uma zona inicial de declarações globais.
Trabalhar com Matrizes numéricas or de caracteres e processar (converter e rodar) imagens num
determinado formato de representação.
(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.
O ambiente de trabalho para este semestre: Linguagem C em Linux.
Resolução dos exercícios da Ficha TP n.º 5
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Estruturar um programa em C com base numa colecção de 1 ou mais funções e uma zona inicial de declarações globais.
Trabalhar com Matrizes numéricas or de caracteres e processar (converter e rodar) imagens num
determinado formato de representação.
Sistematizar ideias e conhecer algoritmos para ordenação de arrays.
(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.
O ambiente de trabalho para este semestre: Linguagem C em Linux.
Conclusão dos exercícios da Ficha TP n.º 5
Resolução dos exercícios da Ficha TP n.º 6 -- Ordenação.
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Trabalhar com Matrizes numéricas or de caracteres e processar (converter e rodar) imagens num
determinado formato de representação.
Sistematizar ideias e conhecer algoritmos para ordenação de arrays.
(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:
Resolução dos exercícios da Ficha TP n.º 6 -- Ordenação.
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Trabalhar com Matrizes numéricas or de caracteres e processar (converter e rodar) imagens num
determinado formato de representação.
Sistematizar ideias e conhecer algoritmos para ordenação de arrays.
(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:
Resolução dos exercícios da Ficha TP n.º 7 -- Listas Ligadas dinâmicas.
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Sistematizar ideias e conhecer algoritmos para criação e manipulação de listas ligadas
implementadas dinamicamente com pointers na heap.
(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
Resolução dos exercícios da Ficha TP n.º 7 -- Listas Ligadas dinâmicas.
Sessão de Avaliação da 2ª fase do Trabalho Prático.
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Sistematizar ideias e conhecer algoritmos para criação e manipulação de Stacks e Queues
implementadas dinamicamente com pointers na heap.
(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).
Resolução dos exercícios das Fichas TP n.º 7 e 8 -- Listas Ligadas dinâmicas.
Sessão de Avaliação da 2ª fase do Trabalho Prático.
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Sistematizar ideias e conhecer algoritmos para criação e manipulação de Stacks e Queues
implementadas dinamicamente com pointers na heap.
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.
Resolução dos exercícios das Fichas TP n.º 7 e 8 -- Listas Ligadas dinâmicas.
Noção de Compilação Separada em C e uso de Makefiles.
Invocação de um programa na linha de comandos com passagem de Argumentos.
Resumo:
No final desta aula prática, os alunos devem ter ficado a saber:
Sistematizar ideias e conhecer algoritmos para criação e manipulação de Stacks e Queues
implementadas dinamicamente com pointers na heap.
(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