Modificada: 2015-10-18 (critérios de correção)
Criada: 2015-10-01
Enunciado distribuído na sala.
Em todas as questões, o critério de correção começou por decidir como seria a pontuação: de cima para baixo ou de baixo para cima. Se a resposta estava bem escrita, com sintaxe Lisp correta, resolução do problema pedido (e não de outro) e com comprimento proporcional à complexidade da questão, então a correção procedeu de cima para baixo, ou seja, parte-se do valor integral e vão sendo subtraidas frações de pontos para cada defeito encontrado.
Por outro lado, se a resposta estava mal escrita, com sintaxe errada, resolvendo o problema errado ou incompleta, então a correção procedeu de baixo para cima: parte-se de zero e vão sendo adicionadas frações de pontos a cada indício de conhecimento importante encontrado. Embora em geral a correção de cima para baixo resulte em notas maiores numa questão, é possível ter exceções a esta tendência.
A seguir, critérios específicos para cada questão. Os valores negativos se aplicam à correção de cima para baixo, e os valores positivos ou nulos se aplicam à correção de baixo para cima.
Na Questão 1, a parte da leitura valeu 1,0 e o processamento dos caractares lidos valeu os 1,5 restantes. Para quem tentou, com ou sem sucesso, colocar os caracteres numa lista para depois processar a lista, a colocação na lista valeu 1,0 e o processamento da lista valeu 1,5.
| nada aproveitável | 0,0 |
| aceitar lista vazia | 0,5 |
| usou /n, \e | -0,5 |
| usou read(X) | -0,8 |
| perde caracteres (chama get_char(X) novamente sem processar o anterior) | -1,0 |
| faltou corte | -0,5 |
| meta a mais ou a menos | -0,5 |
| faltou argumento | -0,5 |
| ordem dos argumentos | -0,5 |
| erro em tipo de argumento | -0,5 |
| erro em nome de predicado ou de variável | -0,5 |
| variável em vez de [ ] | -0,5 |
| variável em vez de 0 | -0,5 |
| usou '\0' em vez de 0 | -0,5 |
| não inicializou | -0,5 |
| não calcula resultado | -0,5 |
| ordem das cláusulas | -0,5 |
| faltou cláusula | -1,0 |
| não executou operação aritmética (com is) | -0,5 |
| predicado aritmético usado como se fosse verificador | -1,0 |
| predicado não definido | -1,5 |
| nada aproveitável | 0,0 |
| predicado pedido na questão não definido | 0,0 |
| procurou os de L em C em vez de os de C em L | 1,0 |
| fez recursão com C acompanhando L | 1,0 |
| fez recursão em L em vez de em C | 1,0 |
| aceita cadeias de um elemento | -0,2 |
| aceita cadeias vazias | -0,5 |
| faltaram colchetes | -0,5 |
| usou “,” em vez de “|” | -0,5 |
| faltou corte | -0,5 |
| meta a mais ou a menos | -0,5 |
| ordem das metas | -0,5 |
| cláusula a mais ou a menos | -1,0 |
| ordem das cláusulas | -0,5 |
| faltou argumento | -0,5 |
| ordem dos argumentos | -0,5 |
| erro em nome de predicado ou de variável | -0,5 |
| não falha na ressatisfação | -0,5 |
| aplicou restrição de tamanho mínimo a L e não a C | -0,5 |
| [ ] em vez de [ _ ] | -0,5 |
| [ ] em vez de anônima | -0,5 |
| usou variável na posição do funtor | -0,8 |
| erro em caso base de predicado recursivo | -1,0 |
| “pulou” disciplinas (T em vez de [Z2|T]) | -1,0 |
| modifica banco de dados | -1,0 |
| predicado não definido | -1,5 |
| nada aproveitável | 0,0 |
| só funciona para zero e negativos | 0,5 |
| // em lugar de mod | -0,1 |
| % em lugar de mod | -0,1 |
| // 1 em lugar de floor | -0,1 |
| faltou vírgula | -0,1 |
| real ou num em lugar de number | -0,1 |
| + em vez de - | -0,5 |
| igual (=) em vez de =:= | -0,5 |
| igual (=) em vez de is | -0,5 |
| uso errado de is | -0,5 |
| não executou operação aritmética (com is) | -0,5 |
| não funciona para números positivos que não sejam inteiros | -0,5 |
| faltou argumento para floor | -0,5 |
| meta a mais ou a menos | -0,5 |
| ordem das metas | -0,5 |
| meta incompleta | -0,5 |
| ordem dos argumentos | -0,5 |
| nome de variável (deveria ser novo nome) | -0,5 |
| inicialização errada de acumulador | -0,5 |
| variável em lugar de 0 | -0,5 |
| fórmula errada | -0,5 |
| não funciona para inteiros positivos ímpares | -1,0 |
| faltou argumento extra para resultado | -1,0 |
| predicado não definido | -1,5 |
| nada aproveitável | 0,0 |
| só funciona para T1 > T2 | 0,5 |
| eq em lugar de = | -0,1 |
| < ou > em lugar de =< ou >= | -0,2 |
| falha se T1 > T2 | -0,5 |
| is em vez de = | -0,5 |
| =:= em vez de = | -0,5 |
| != em vez de = | -0,5 |
| supôs tempo discreto | -0,5 |
| Igual (=) em vez de =:= | -0,5 |
| não falha na ressatisfação | -0,5 |
| ordem das metas | -0,5 |
| esqueceu =.. | -0,5 |
| faltaram colchetes | -0,5 |
| cláusula a mais ou a menos | -1,0 |
| erro em findall | -0,5 |
| nome de variável (deveria ser novo nome) | -0,5 |
| variável em lugar de 0 | -0,5 |
| variável em lugar de [ ] | -0,5 |
| fórmula errada | -0,5 |
| padrão de casamento incorreto | -0,5 |
| faltou argumento extra para resultado | -1,0 |
| modifica banco de dados | -1,0 |
| fez verificador apenas | -1,5 |
© 2015 João Meidanis