Algoritmos e Estruturas de Dados [LEEC] (2024/2025)
Aulas teóricas
Artur Miguel Dias
Teórica 07 (02/mai/2025)
O TAD Turma implementado usando uma sequência.
O TAD Turma implementado usando um dicionário.
Teste e depuração de programas.
Slides
Aluno.h
O objetivo é poder guardar alunos em sequências e dicionários.
Alterações no ficheiro "Aluno.h":
- Novo include: #include "Info.h"
- Novo protótipo: string textoAluno(Aluno a);
Aluno.c
O objetivo é poder guardar alunos em sequências e dicionários.
Alterações no ficheiro "Aluno.c":
- Novo campo da struct: Info info;
- Na função criaAluno, nova linha: a->info = criaInfo("Aluno", ...
- Nova função: string textoAluno(Aluno a);
Turma.h
Turma reimplementada usando sequência.
Alterações no ficheiro "Turma.h":
- Novo include: #include "Iterador.h"
- Novo protótipo: string textoTurma(Turma t);
- Trocado protótipo Aluno posTurma(Turma t, int idx); por Iterador iteradorTurma(Turma t);
TurmaSequencia.c
Turma reimplementada usando sequência.
Alterações no ficheiro "TurmaSequencia.c":
- Novo include: #include "Sequencia.h"
- Na struct, novo campo Info info;, mais troca de diversos campos por Sequencia seq;
- Eliminada a função: asseguraCapacidade
- Na função criaTurma, nova linha: t->info = criaInfo("Turma", ...
- Na função criaTurma, nova linha: t->seq = criaSequencia();
- Nova função: string textoTurma(Turma t);
- Todas as funções deixam de usar o vetor t->alunos para usar a sequência t->seq
- A função removeAlunoTurma fica muito mais simples
- Função Aluno posTurma(Turma t, int idx); trocada por Iterador iteradorTurma(Turma t);
TurmaDicionario.c
Turma reimplementada usando dicionário.
Relativamente à implementação com sequência, alterações no ficheiro "TurmaDicionario.c":
- Troca de include #include "Sequencia.h" por include #include "Dicionario.h"
- Na struct troca de Sequencia seq; por Dicionario dic;
- Eliminada a função: procuraTurma
- Na função criaTurma, nova linha: t->dic = criaDicionario();
- Todas as funções deixam de usar a sequência t->seq para usar o dicionário t->dic
- Função aprovadosTurma reimplementada usando iterador
MainTurma.c
Alterações no ficheiro "MainTurma.c":
- Função cmdListaTurma reimplementada usando iterador
#12