Ver Tipos Enumerados no Resumo da Aula 10. Fazer uma pequena introdução.
Ver Construtores no Resumo da Aula 10. Explicar que têm de se usar listas de inicializadores quando há atributos constantes. Mas frisar que as listas de inicializadores são preferíveis mesmo para variáveis.
Atenção! Estes exercícios devem ser feitos pausadamente, com calma, com tudo bem explicado! Os exercícios, e a disciplina na sua resolução, são muito importantes para se entrar na matéria das classes e, sobretudo, para incentivar a política de escrever os testes primeiro. Explorar todos os erros que ocorram: chamar a atenção para a sua detecção quer pela programação por contrato, quer pelo programa de teste.
1. Ver lampada.C
.
2. A resolução pausada e acompanhada deste exercício é muito, mesmo muito importante!
2.a) Ver ex2a.C
.
Ensinar a escrever código mesmo incompleto. Ver o primeiro if
da opção de inserção, por exemplo. Explicar a razão para o typedef
de BI!
2.b) Uma fila é um contentor de itens. Neste caso temos uma file
de BI. Do código já escrito é óbvio que são necessárias para o TAD FilaDeString
pelo menos as seguintes operações:
Explicar:
Explicar que inspectores são quase sempre funções membro (por vezes
são procedimentos membro), predicados são sempre funções membro que devolvem
bool
e modificadores são sempre procedimentos membro.
Dizer que faltou o mais importante! O contrato das operações!
2.c) Atenção! Não esquecer que este exercício é para durar três aulas! Na resolução usa-se operações constantes e devoluções por referência constante. Alguns desses conceitos dizem respeito às aulas seguintes:
Assim, da resolução usar apenas aquilo que for possível em cada aula.
Ver ex2c.C
. Esta versão não
compila! Nem sequer o teste!
2.d) Ver ex2d.C
. Ver o
código. Discutir passo a passo o que colocar nos métodos! Discutir
cuidadosamente o programa de teste. Discutir calmamente como compilar
ambas as versões.
2.e) Discutir com eles pausadamente a implementação. Devem ser
eles a descobrir a forma de representar a fila. Mesmo que seja com dicas
subtis! Ver ex2e.C
. Notar a
definição da constante comprimento_maximo
, para além da sua
declaração!
2.f) Ir pela ordem de ocorrência das invocações das operações no
programa de teste. É muito importante que eles vão sempre compilando
e executando o programa de teste, verificando que vão ultrapassando cada vez
mais barreiras. Ver ex2f.C
.
3. Ver ex3.C
.