Olá, já coloquei as notas do EP17 no ar.
Dividi a avaliação com o seguinte peso para cada função que devia ser implementada:
leia_configuracao - 2
simule - 4
main - 4
Se alguma função dava erro de sintaxe, variável que não existia sendo utilizada, etc, a pontuação da respectiva função é zerada. Em alguns casos que funciona para algumas entradas e não para outras, considerei uma pequena pontuação. Como estava descrito na especificação do EP:
"Todas as mensagens impressas pelo seu programa devem ser idênticas às mensagens impressas nos exemplos fornecidos. Note a ênfase no idênticas: use sua imaginação à vontade para desenvolver o programa, mas mensagens criativas que fujam desta especificação serão consideradas erros na correção."
Ou seja, a saída do programa devia estar idêntica aos exemplos. A seguir alguns dos erros mais comuns em cada função que encontrei:
- leia_configuracao
Alguns não imprimiram as mensagens de entrada e saída, isso custa -0.5. Também houve casos em que era impresso só que sem a quebra de linha ("leia_configuracao(): entrandoDigite o nome do arquivo com a configuração:"), que também custa -0.5. Se a função não lia corretamente, só funcionava para alguns casos ou dava erros, a penalidade é maior, varia de acordo com o erro.
- simule
Nessa função não avaliei a corretude do espalhamento em si, porque isto é do EP16. Utilizei uma solução correta do EP16 para avaliar. A maior parte dos erros foi em mensagens de entrada e saída, neste caso não imprimir as mensagens de entrada e saída custam -1, e outros erros de impressão podem aumentar a penalidade. Erros como não detectar se um sistema é infinito ou finito, ou erros de execução custam mais de 2 pontos para esta função.
- main
Na main também foi avaliado se a mensagem era correta, e o custo é similar ao da função simule.
Em alguns EPs as mensagens de entrada e saída das funções estavam na main. Isto está incorreto, porque um dos exemplos no enunciado chama diretamente a função leia_configuracao, e o programa imprime as mensagens de entrada e saída ("leia_configuracao(): entrando" e "leia_configuracao(): saindo"), o que não ocorre se essas mensagens estiverem apenas na main. Nesses casos tirei ponto apenas da função leia_configuracao.
Qualquer dúvida podem perguntar aqui.