Informações para o 2º Teste Prático
Informações Gerais
- Data: 14 de dezembro de 2022
- Hora: Existirão dois turnos (14:30 e 16:40)
[ver atribuição de turno e sala]
- Local: Laboratórios FC6 155, FC6 157, FC6 163 e FC6 165.
- Duração: 2h (exercícios dimensionados para menos tempo)
- Método: o teste será presencial (nos laboratórios do DCC, que têm Linux e os editores habituais) e irão ter acesso a computador, documentação do Java, código base (essencialmente o que está na lista de código exemplo) e irão submeter no Mooshak, sendo que poderão ver alguns casos de teste quando falham, tal como nas aulas práticas.
- Pontuação: este teste vale 2.5 valores (ver descrição da fórmula de cálculo da vossa classificação nesta unidade curricular)
São 4 pequenos exercícios cotados com 34%+33%+33%+20%.
Em cada exercício podem existir cotações parciais (ex: passa nalguns testes, falha noutros). Só em casos muito excepcionais a pontuação será diferente da atribuida pelo Mooshak. Podem acontecer casos onde recebem mais pontos do que o Mooshak atribuiu (ex: está tudo certo e falta apenas um ponto e vírgula :)) ou menos pontos (ex: não fizeram o pedido ou tentaram fazer "batota"). Se tentarem genuinamente fazer os problemas não vão ter nenhum "chatice".
Objectivos específicos para cada exercício e problemas de treino
- [34%] Exercício 1: problemas simples com ciclos
Terão de implementar um programa pequeno que lê da entrada padrão um ou mais números e imprime algo. O exercício será de dificuldade simples e passará na sua essência por saber ler, criar variáveis (e possivelmente arrays) e saber usar ciclos.
- [33%] Exercício 2: implementação de métodos simples
para árvores binárias
Terão de adicionar um ou mais
pequenos método à classe BTree. Será dada como base a
implementação dada nas aulas e será descrito o método a
implementar, incluindo a assinatura do método (qual o tipo de
retorno e o tipo dos argumentos). Irão submeter a classe como nas
aulas (com o novo método adicionado).
- [33%] Exercício 3: programa completo (incluindo ler e escrever) que usa conjuntos e/ou dicionários
Terão de implementar um programa completo, que leia um dado input (usando a classe Scanner) e escreva o resultado pedido. O tema do problema implicará que é conveniente usar conjuntos e/ou dicionários, mas poderão usar qualquer implementação (ex: usar a base de código dada nas aulas, usar TADs do próprio Java, ou usar uma qualquer implementação vossa).
- [20%] Exercício 4: pequeno problema envolvendo recursividade
Terão de resolver um pequeno problema, para o qual terão de pensar no algoritmo adequado. O problema envolverá recursividade e será útil conhecer as ideias de flood fill e/ou subconjuntos e/ou permutações. Este problema é destinado a alunos que desejem ter uma nota alta, e só deverá ser tentando depois dos outros três exercícios estarem feitos (daí ter menos pontuação atribuída).