FAQ sobre submissões ao mooshak


Respostas a algumas questões frequentes.
Browse the glossary using this index

Special | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | ALL

Page:  1  2  (Next)
ALL

C

Question:

Compile Time Error

(Last edited: sexta, 6 março 2009, 2:36 )
Answer:

Veja se a mensagem é algo como esta:

javac: file not found: poo/Main.java
Usage: javac 
use -help for a list of possible options

Se sim, o problema é que o java não consegue encontrar o ficheiro Main.java dentro do arquivo que submeteu ao mooshak. Normalmente, isso acontece quando nos esquecemos de que devemos zipar o directório poo, com o Main.java lá dentro.

Se não existir um Main.java, ou se esse ficheiro não estiver dentro de um directório chamado poo, o mooshak não o encontra.

Entry link: Compile Time Error

G

Question:

Guião 1, tarefa C: Qual é mesmo o formato que se está a pedir?

(Last edited: quarta, 4 março 2009, 10:52 )
Answer:

Há um exemplo no enunciado, quando o quadro de honra está preenchido com 10 entradas. Repare que temos a nota, seguida de um tab (\t), seguido do número do aluno, seguido de \n, em todas as linhas, incluindo a última.

Vamos ver o que acontece se o quadro de honra tiver, por exemplo, apenas duas entradas:

19 23534
18 29432

Tal e qual como no caso do quadro cheio, mas com menos linhas, portanto.

E se nenhum aluno entra no quadro de honra? Nesse caso, devolvemos apenas uma linha, com 10 sinais menos, seguidos de \n.
Ou seja:
"----------\n"
Entry link: Guião 1, tarefa C: Qual é mesmo o formato que se está a pedir?

Question:

Guião 2, task A: funcionalidades a verificar?

(Last edited: segunda, 16 março 2009, 11:35 )
Answer:
Quando os argumentos dos métodos são referências a objectos, considerar na programação o caso em que a referência é null.
Os diversos métodos de Music funcionam bem para objectos criados com o construtor mais simples?

Entry link: Guião 2, task A: funcionalidades a verificar?

Question:

Guião 2, task A: p/ o método equals de Music, é exigido implementar tb hashCode?

(Last edited: segunda, 16 março 2009, 10:08 )
Answer:
Não, os métodos a implementar são unicamente os especificados no guião 2 (ver anexo no fim) e hashCode não é um deles. Porém, é essencial implementar todos os membros externos de Music, incluindo as constantes.
Entry link: Guião 2, task A: p/ o método equals de Music, é exigido implementar tb hashCode?

Question:

Guião 2, task A: posso colocar mais instruções no construtor + simples de Music?

(Last edited: terça, 17 março 2009, 3:16 )
Answer:
Sim.
Entry link: Guião 2, task A: posso colocar mais instruções no construtor + simples de Music?

Question:

Guião 2, task A: qual deve ser valor de rating no construtor com 1 argumento?

(Last edited: segunda, 16 março 2009, 11:09 )
Answer:
Deve encontrar-se dentro dos limites especificados: 1-5 inclusive. Pode ser qualquer valor nesse intervalo.
Entry link: Guião 2, task A: qual deve ser valor de rating no construtor com 1 argumento?

Question:

Guião 2, task A: qual é o valor que deve ter o campo artist no construtor + simples de Music?

(Last edited: terça, 17 março 2009, 3:17 )
Answer:
null
Entry link: Guião 2, task A: qual é o valor que deve ter o campo artist no construtor + simples de Music?

Question:

Guião 2, task C: podemos alterar a classe AbstractIterator?

(Last edited: terça, 17 março 2009, 6:11 )
Answer:
Só as partes internas, como o nome do campo _playList. Todos os membros visíveis externamente (i.e., que fazem parte da interface da classe) têm de permanecer como estão, caso contrário surgem erros de compilação no mooshak.
Também é permitido acrescentar membros à classe, tal como é permitido acrescentar classes vossas e mais métodos às classes especificadas. O importante é que as classes e métodos especificados existam com a interface exactamente como especificado (senão ocorrem erros de compilação) e se comportem também como especificado (senão falham nos testes).
Entry link: Guião 2, task C: podemos alterar a classe AbstractIterator?

Question:

Guião 2, tasks A e B: posso submeter para a task B sem ter Accepted na A?

(Last edited: segunda, 16 março 2009, 11:38 )
Answer:
Não. Os testes sobre a funcionalidade de Music são executados também na task B. Se falham na task A, também vão falhar na B. É assim em todas as tasks: os testes das tasks anteriores são executados nas seguintes.
Entry link: Guião 2, tasks A e B: posso submeter para a task B sem ter Accepted na A?

Question:

Guião xpto, qualquer task: Tenho um runtime error (NoClassDefFoundError). O que se passa?

(Last edited: quinta, 5 março 2009, 12:40 )
Answer:

O mooshak permite ver o relatório do erro. Veja se a mensagem é algo deste género. Pode parecer assustadora, mas vamos tentar perceber o que se passa.
(test T4): Exception in thread "main" java.lang.NoClassDefFoundError: poo/Main
Caused by: java.lang.ClassNotFoundException: poo.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
while executing "close $fd "OK
O java não está a conseguir encontrar a classe Main, dentro de um package chamado poo, como se pode ler em:
Exception in thread "main" java.lang.NoClassDefFoundError: poo/Main
Caused by: java.lang.ClassNotFoundException: poo.Main 

Abra o arquivo zip que acabou de submeter. Lá dentro, deve ter um directório chamado poo (o package) e dentro desse package, entre outras classes, deverá existir uma classe chamada Main, onde está o método main.

O mais provável é que algo na descrição do parágrafo anterior não esteja a acontecer no seu zip.

Entry link: Guião xpto, qualquer task: Tenho um runtime error (NoClassDefFoundError). O que se passa?

N

Question:

Nome de utilizador no mooshak. O meu nome é válido?

(Last edited: quinta, 5 março 2009, 6:59 )
Answer:

Consulte cuidadosamente o guião 1. Lá encontrará regras detalhadas sobre como criar um utilizador correctamente.

Ao criar um nome de utilizador, não use caracteres especiais, tais como acentos e cedilhas. Por exemplo, se o seu nome for Sérgio Conceição, o número de aluno for 11111 e o número de utilizador de moodle for o 2222, no mooshak deverá escolher

11111_2222_Sergio_Conceicao

Se usar acentos e cedilhas, é possível que o mooshak tenha dificuldades a executar correctamente o seu código.
Entry link: Nome de utilizador no mooshak. O meu nome é válido?

O

Question:

Obtive uma Wrong answer no mooshak? E agora? Como proceder?

(Last edited: quarta, 4 março 2009, 10:35 )
Answer:

Obtemos este resultado quando o output gerado pelo nosso programa, que deve ser escrito para o System.out, é diferente do output esperado para pelo menos um dos testes.

O que fazer?
1. Verifique cuidadosamente que o seu programa escreve MESMO exactamente o que se espera e que portanto passa MESMO nos testes conhecidos. Basta um caracter esquecido, ou a mais, para o teste não passar. Leia de novo o enunciado e verifique se entendeu tudo bem.

2. Se está seguro de que o seu programa faz mesmo tudo como nos exemplos dados, procure no mooshak, na secção de perguntas e respostas, se já alguém teve o mesmo problema e qual foi a resposta. Fazer o mesmo neste FAQ.

3. Se não encontrar nenhuma sugestão que resolva o seu problema em nenhum dos recursos, tente ir a um horário de atendimento, ou aula prática (mesmo que seja de outra turma prática de POO), esclarecer a sua dúvida. Há horários de atendimento todos os dias úteis. Se for a uma aula prática de outro turno, não se esqueça de que os alunos dessa turma têm prioridade no esclarecimento de dúvidas.

4. Pode colocar a sua questão via mooshak, para que algum dos docentes a possa responder, de modo a que a resposta fique visível para todos.

5. Evite enviar emails para os docentes com pedidos de esclarecimento de dúvidas sobre submissões ao mooshak. Se desejar colocar a sua dúvida por escrito, use o mooshak. Isso evita que o docente tenha de responder incontáveis vezes à mesma pergunta.
Entry link: Obtive uma Wrong answer no mooshak? E agora? Como proceder?

Q

Question:

Qual é o URL do mooshak?

(Last edited: quarta, 11 março 2009, 10:10 )
Answer:

http://di169.di.fct.unl.pt/~mooshak/
Entry link: Qual é o URL do mooshak?

V

Question:

Várias dúvidas

(Last edited: terça, 17 março 2009, 8:20 )
Answer:
Question:
Suponhamos que no mooshak tenta-se criar um objecto do tipo:
new Music("Boo","Jessica",-500,0,6);
Neste caso temos 3 argumentos inválidos: tempo negativo, formato desconhecido e classificação fora dos limites.
A meu ver o programa pode assumir dois comportamentos possíveis(a definir por mim):
1) ou simplesmente não guarda a música...
2) ou ajusta os resultados
No caso de ajustar os resultados, a música poderia ser guardada com formato padrão MP3 e classificação 3, entre outras especificações.
Portanto, qual destes comportamentos o programa deve seguir?
----------------------------------------------------------------------------------
Answer:
Não é possível um contrutor "não guardar" a música; o que é possível é a 2ª opção, ajustar. Ou seja, fazer o construtor verificar se os valores dos parâmetros são legais e, caso não o sejam, inicializar os campos com valores legais.
Por exemplo, caso o formato não seja legal, inicializar com MP3 ou um dos outros; caso o rating esteja fora dos limites, "encostá-lo" num dos limites: se for zero ou negativo, atribuir ao campo MINIMUM_RATING; se for superior ao máximo, atribuir MAXIMUM_RATING. E assim por diante.

Question: O método equals também deve comparar o ranking?
Answer: Sim, é o que está especificado.

Question: Uma música é igual a outra através das propriedades de qualquer música: nome, autor e tempo. ranking é algo que varia dependendo de cada ouvinte. E ainda assim o método equals deveria comparar duas músicas pelo ranking?
Answer: concordo com o raciocínio, que só fica bem ao seu autor. Mas o facto é que é assim que a coisa foi especificada. Os técnicos têm de fazer o que os seus clientes pedem...

Entry link: Várias dúvidas


Page:  1  2  (Next)
ALL