FAQCategoria: JavascriptJAVASCRIPT. Cálculo de notas de un examen no uniforme
Soporte Staff asked 6 años ago

JAVASCRIPT. Cálculo de notas de un examen no uniforme

Utilizado en propiedades, Exámenes, Fórmula avanzada:

La fórmula mas utilizada para el cálculo de un examen tipo test es:

Nota = (Aciertos-Fallos/(Nº Respuestas-1))*10/Nº Preguntas

Esta fórmula se aplica a un examen en el que todas las preguntas tienen el mismo nº de respuestas (examen uniforme).

Para el caso de que haya un examen en que cada pregunta puede tener un nº diferente de respuestas, proponemos utilizar este código Javascript, en el que se utiliza la misma fórmula pero calculándola pregunta a pregunta, es decir:

Si la pregunta es acertada, suma 1
Si la pregunta es fallada, resta 1/(Nº respuestas pregunta – 1)

Finalmente se calcula la nota final *10/Nº preguntas.

GEXCAT utiliza las siguientes variables fijas, sensibles a mayúsculas:

MATRIZ: Es la matriz de corrección. [i] representa las filas (alumnos) y [j] las columnas (el resultado de la corrección de cada pregunta)
ALUMNOS: El número total de alumnos (número de filas)
PREGUNTAS: El número de preguntas del examen (número de filas)
RESPUESTAS: Nº de respuestas de cada pregunta.
CORRECTAS: Nº de respuestas correctas de cada pregunta.
NOTAS: Notas calculadas

Copiar y pegar el siguiente código, en Criterios de Corrección/Avanzado, dentro de la ventana, borrando código anterior.

Notas España. Notas rango 0 a 10. Aprobado 5

/* Cálculo de notas de un examen no uniforme España*/

var i, j;
for (i = 0; i < ALUMNOS; i++) { NOTAS[i] = 0; for (j = 0; j < PREGUNTAS; j++) { if (CORRECTAS[j] == 0) { NOTAS[i] += 10/PREGUNTAS; } else if (MATRIZ[i][j] > 0) {
NOTAS[i] += 10/PREGUNTAS;
} else if (MATRIZ[i][j] < 0) { NOTAS[i] -= 10/PREGUNTAS/(RESPUESTAS[j]-1); } } } ;

Notas Chile. Notas rango 1 a 7. Aprobado 4

/* Cálculo de notas de un examen no uniforme Chile*/

var i, j;
for (i = 0; i < ALUMNOS; i++) { NOTAS[i] = 1; for (j = 0; j < PREGUNTAS; j++) { if (CORRECTAS[j] == 0) { NOTAS[i] += 7/PREGUNTAS; } else if (MATRIZ[i][j] > 0) {
NOTAS[i] += 7/PREGUNTAS;
} else if (MATRIZ[i][j] < 0 ) { NOTAS[i] -= 7/PREGUNTAS/(RESPUESTAS[j]-1); } } } ;