6.14.3 EP06_03 🟡 Clasificación de Marcaciones en Hojas de Respuesta (OMR)
Tras la corrección de la hoja y la segmentación de los cuadros de respuestas, el MCTest estima, para cada burbuja, un grado de relleno, representado por un valor entre \(0\) y \(100\). A partir de estos valores, el sistema debe determinar automáticamente la alternativa marcada, identificando también preguntas en blanco y casos de múltiples marcaciones.
En este ejercicio, implementará esta etapa de decisión del pipeline de OMR. La clasificación depende de un umbral de relleno: pequeñas variaciones en este valor pueden alterar el resultado de la lectura automática.
6.14.3.1 📋 Directrices de Implementación
- Parámetros: Leer los enteros \(Q\) (número de preguntas) y \(K\) (número de alternativas por pregunta, con \(2 \le K \le 26\)) y el umbral de relleno \(\mathrm{Th}\) (número real entre \(0\) y \(100\)).
- Grados de relleno: Para cada una de las \(Q\) preguntas, leer los \(K\) valores reales correspondientes a las alternativas
A,B,C, …, en el orden de entrada. - Conteo de marcaciones: Para cada pregunta, contar cuántas alternativas poseen un grado de relleno estrictamente mayor que \(\mathrm{Th}\).
- Clasificación:
- Si ninguna alternativa excede \(\mathrm{Th}\), clasificar la pregunta como
BRANCO. - Si exactamente una alternativa excede \(\mathrm{Th}\), imprimir la letra correspondiente (
A,B,C, …). - Si dos o más alternativas exceden \(\mathrm{Th}\), clasificar la pregunta como
DUPLA_MARCACAO.
- Si ninguna alternativa excede \(\mathrm{Th}\), clasificar la pregunta como
- Salida por pregunta: Imprimir, en el orden de lectura, la clasificación de cada pregunta.
- Totales: Al final, imprimir el número de preguntas
OK(una única marcación),BRANCOyDUPLA_MARCACAO.
6.14.3.2 📌 Restricciones Computacionales
- Comparación estricta: solo los valores mayores que \(\mathrm{Th}\) se consideran marcaciones válidas; los valores exactamente iguales al umbral no deben contabilizarse.
- Letras de las alternativas: el índice \(0\) corresponde a la alternativa
A, el índice \(1\) a la alternativaBy así sucesivamente. - Múltiples marcaciones: siempre que dos o más alternativas excedan el umbral, la clasificación debe ser
DUPLA_MARCACAO, independientemente de los respectivos grados de relleno.
6.14.3.3 🧠 Fundamentación Teórica
| Situación | Clasificación | Interpretación |
|---|---|---|
| Exactamente una alternativa por encima del umbral | Letra de la alternativa | Respuesta válida |
| Ninguna alternativa por encima del umbral | BRANCO |
Pregunta no respondida |
| Dos o más alternativas por encima del umbral | DUPLA_MARCACAO |
Respuesta ambigua |
El umbral de relleno controla la sensibilidad del algoritmo. Valores muy bajos tienden a aumentar el número de DUPLA_MARCACAO, mientras que valores muy altos pueden aumentar la cantidad de preguntas clasificadas como BRANCO.
6.14.3.4 📦 Especificación de Entrada y Salida (VPL)
Entrada:
- Línea 1: Entero \(Q\).
- Línea 2: Entero \(K\).
- Línea 3: Número real \(\mathrm{Th}\).
- Siguientes \(Q\) líneas: \(K\) números reales, correspondientes a los grados de relleno de las alternativas.
- Línea 1: Entero \(Q\) y \(K\).
Salida:
- \(Q\) líneas, cada una conteniendo la clasificación de la respectiva pregunta.
- Línea final:
OK: x BRANCO: y DUPLA_MARCACAO: z.
6.14.3.5 📌 Ejemplos
| Entrada | Salida | Observación |
|---|---|---|
| 3 4 50 10 85 5 12 20 15 18 22 90 88 10 5 |
B BRANCO DUPLA_MARCACAO OK: 1 BRANCO: 1 DUPLA_MARCACAO: 1 |
En la primera pregunta solo B supera el umbral; en la segunda ninguna alternativa lo supera; en la tercera, A y B exceden el umbral. |
| 1 2 50.0 50 50 |
BRANCO OK: 0 BRANCO: 1 DUPLA_MARCACAO: 0 |
Los valores iguales al umbral no se consideran marcaciones válidas. |
%%writefile EP06_03.py
# Código PythonOverwriting EP06_03.py
TestSuite("EP06_03.py").run()✔️ EP06_03.cases ya existe en casos/
📋 5 caso(s) cargado(s) de casos/EP06_03.cases
🔍 Probando Python: EP06_03.py
⚠️ EP06_03.py: archivo vacío (menos de 3 líneas). Pruebas omitidas.