Informações para o 1º Teste Prático
Informações Gerais
- Data: 24 Maio de 2021
- Hora: Existirão dois turnos (16:15 e 18:15) [Atribuição de turnos]
- Duração: 2h (exercícios dimensionados para menos tempo)
- Método: o teste será presencial (nos laboratórios do DCC) 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 para listas ligadas simples.
Terão de adicionar um ou mais pequenos métodos à classe SinglyLinkedList. Será dada como base a implementação dada nas aulas (ver slides | ver implementação) e serão descritos o métodos 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 os novos métodos adicionados).
- [33%] Exercício 3: programa completo (incluindo ler e escrever) que usa listas, pilhas e/ou filas
Problema com base do algoritmo a usar descrito no enunciado. O tema do problema implicará que é conveniente usar listas, pilhas ou filas, 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: problema de valorização
Este problema pode dar 20% adicionais (0.5 valores), ou seja, é possível ter nota acima dos 2.5 valores (por exemplo para compensar algo que corra menos bem noutro componente da avaliação). Não serão dadas dicas e terão de pensar no algoritmo adequado. O problema não será completamente resolúvel com uma solução exaustiva de "força bruta" e será necessário ser eficiente. A complexidade esperada será dada no enunciado e não será dado nenhum código base. Este exercício será um pouco mais complicado que os outros e aconselhamos a apenas tentarem depois de terem feito os três primeiros exercícios.