MC346 - Prova Prolog

      Criada: 2016-04-05
      Modificada: 2016-06-27 (critérios)
    

Enunciado distribuído na sala.

Gabarito

Clique aqui.

Critérios de correção

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.

Geral

não falha em ressatisfação -0.5
usou =\= para não numérico (ou =:=) -0.3
sintaxe: duplo :- -1.0
faltou predicado -1.5
errou nomes de variáveis -1.0

Questão 1

faltou corte ou corte no lugar errado -0.5
usou read e supôs transferência em lista -1.0
faltou o caso para lista vazia em algum predicado -1.0
usou /= em vez de \= (sinais) -0.1
leu mais que uma linha -0.5
usou =:= quando queria \= -0.4
usou _ em lugar de zero -0.5
variável sozinha -0.0
não instancia variável de resposta -0.5
is com lado direito não instanciado -0.5
confusão entre colchetes e aspas -0.5
faltou vírgula -0.2
usou = no lugar de is -0.5
faltou inicializar variável -0.5
tentou fazer verificador -1.5
falha em entrada válida -1.5
ordem das metas -0.5
faltou meta ou meta a mais -0.5
bola em vez de estrela (sinais) -0.1
não observa transições de caracteres -1.5
átomos em vez de caracteres -0.3
\ extra na negação -0.1
eliminou brancos: estratégia falha -1.0
is para não numérico -0.5
anônima onde deveria ter nome -0.5
não fatorou get_char -1.0
faltou cláusula -1.0
só lê um caractere -1.0

Questão 2

usou vírgula em lugar de ponto -0.2
aceita começar com ponto -0.5
aceita lista vazia -0.5
aceita vários pontos -0.5
faltou vírgula -0.2
obriga pelo menos dois dígitos -0.5
faltou chamada recursiva -1.0
aceita qualquer coisa, mesmo não lista -1.5
redefinição de predicado pré-definido -0.5
esqueceu falha na combinação corte-falha -0.5
faltou cláusula de parada (caso base) -1.0
cláusula de parada errada -1.0
obriga pelo menos um digito após ponto -0.5
aceita dois pontos (mas não mais) -0.4
uso de números em vez de caracteres -0.3
maior e igual em vez de igual e maior (sinais) -0.1
erro forte de sintaxe -0.5
faltou traço em dois pontos traço -0.1
faltou meta -0.5
faltaram colchetes -0.4
operação de entrada e saída -1.0
colocou variável entre apóstrofes -0.5

Questão 3

parece verificador -1.0
não falha em resatisfação -0.5
usou igual ou igual igual em vez de is -0.3
loop infinito se N igual a zero -1.0
sintaxe: duplo :- -1.0
usou == em vez de =:= (sinais) -0.1
usou =/= em vez de =\= (sinais) -0.1
faltou is -0.5
faltou corte -0.5
usou dois pontos para mod mas justificou -0.1
aceita negativos -1.0
is usado ao contrário -0.5
faltou argumento para f -0.5
esqueceu falha na combinação corte-falha -0.5
sintaxe: faltou o ponto final -0.2
confundiu igual igual como igual dois pontos igual (sinais) -0.1
sintaxe: faltou N -0.1
sintaxe: faltou vírgula -0.2
ponto para indicar multiplicação (sinais) -0.1
não parece entender como funcionam variáveis em Prolog -1.5
ordem dos argumentos de is -0.5
usou ... != ... ao invés de not ... is ... -0.5
n ao invés de N -0.1

Questão 4

retornou série em vez de nome -0.5
usou mesma variável para diferentes propósitos -0.5
uso errado de append -0.5
usou => em vez de >= (sinais) -0.1
inverteu argumentos de append -0.5
faltou corte ou corte no lugar errado -0.5
faltou o ponto final -0.1
usou <= em vez de =< (sinais) -0.1
usou =< em vez de >= -0.2
variável na posição de funtor -1.0
append com átomo -0.5
inicializou acumulador com variável não instanciada -0.5
não pareceu entender o significado de menber -0.5
notação de lista sem colchetes -0.5
variável sozinha -0.0
usou nil em vez de [] -0.5
retornou algo que não é sublista -0.5
faltou cláusula -1.0
ordem de metas -0.5
montou resultado no lugar errado -0.5
usou lista em vez de serie(..., ..., ...) -0.5
verificou datas corretamente +0.5

MC346 Home

© 2016 João Meidanis