Modificada: 2015-12-16 (critérios de correção) Criada: 2015-12-12
Enunciado distribuído na sala.
Para obter possíveis respostas para as questões, clique aqui.
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.
apenas construiu lista de distâncias | +0,5 |
parênteses | -0,2 |
confusão entre 0 e 1 | -0,2 |
confusão entre quote e function | -0,2 |
sort sem função de comparação | -0,2 |
confusão entre map e mapcar | -0,3 |
confusão entre = e eql | -0,3 |
faltou chamada de length | -0,3 |
sintaxe errada em chamada a função | -0,3 |
removeu distância em vez de peixe | -0,4 |
erro de nome | -0,5 |
não verificou se lista tem menos de N elementos | -0,5 |
ordem dos argumentos para subtração | -0,5 |
ordem dos argumentos para nth | -0,5 |
função de comparação não retorna apenas t ou nil | -0,5 |
sintaxe errada no uso de let | -0,5 |
confusão entre car e cadr | -0,5 |
elementos repetidos na hora de ordenar | -0,5 |
faltou condição de parada | -0,5 |
faltou chamada recursiva | -0,5 |
uso errado de quote | -0,5 |
erro no uso de if | -0,5 |
ordenação caseira falhou | -1,0 |
função não definida | até -2,5 |
retorna todas as violações | -0,1 |
parênteses | -0,2 |
faltou inicializar parâmetro opcional com zero | -0,2 |
confusão entre = e eql | -0,3 |
sintaxe errada em chamada a função | -0,3 |
sintaxe errada no uso de if | -0,3 |
not a mais | -0,5 |
faltou caso base (nil) | -0,5 |
confusão entre car e cadr | -0,5 |
não retorna restrição violada | -0,5 |
retorna t em vez de nil quando não há restrição violada | -0,5 |
retorna nil quando a lista tem tamanho 1 | -0,5 |
tentou redefinir t | -0,1 |
parênteses | -0,2 |
sintaxe errada no uso de if | -0,3 |
confusão entre = e eql | -0,3 |
quote a mais | -0,5 |
não verificou se contas de entrada e saída são iguais | -0,5 |
ordem dos argumentos para subtração | -0,5 |
não tratou caso em que movimentação não afeta a conta | -0,5 |
não verificou o instante da transação | -1,0 |
recursão não foi até o fim da lista | -1,0 |
computou apenas operações que saem da conta | -1,0 |
só funciona para inteiros | +1,0 |
confusão entre I e 1 | -0,1 |
soma negativos quando parâmetro é negativo | -0,2 |
confusão entre > e < | -0,2 |
confusão entre 0 e 1 | -0,2 |
sintaxe errada em chamada a função | -0,3 |
confusão entre car e cadr | -0,5 |
errou caso base de recursão | -0,5 |
confusão entre (N - 2) e (- N 2) | -0,5 |
não funciona para negativos | -0,5 |
faltou chamada recursiva | -0,5 |
quote a mais | -0,5 |
mistura errônea entre estilo funcional puro e efeitos colaterais | -1,0 |
© 2015 João Meidanis