Las pruebas estandarizadas generalmente vienen con un scan-tron o algún tipo de documento de respuesta que registra su respuesta. Una computadora o persona (s) luego verificaría sus respuestas y determinaría su calificación. Entonces, aquí, dado un scan-tron y la clave de respuestas, determine el puntaje y las preguntas perdidas, si las hay. Un scan-tron es solo un documento con múltiples líneas con respuestas en las que el usuario completa (en este caso, en un círculo). Ejemplo:
---
1. |a| b c d
---
Como puede ver, esta es la pregunta 1 con la opción de respuesta a
seleccionada, ya que tiene un cuadro alrededor. Para el desafío, se le dará una exploración-tron con n
preguntas ( 1 <= n <= 10
) con sólo cuatro respuestas denota como a
, b
, c
, o d
. La clave de respuesta se dará como una cadena sin espacios y con minúsculas. Ejemplo scan-tron con clave de respuesta:
Scan-tron
---
1. |a| b c d
---
---
2. a |b| c d
---
---
3. a b |c| d
---
Answer Key
abb
Puede tomar la clave de respuesta y scan-tron como entradas separadas o en un orden elegido siempre que puedan identificarse (es decir, la clave de respuesta está separada del scan-tron). Los puntajes se redondearán a la décima de punto más cercana. Ejemplo de salida para lo anterior:
Score: 66.7
Missed #: 3
Otra respuesta aceptable sería:
66.7
3
o si se pierden varias preguntas
66.7
3 4 5
siempre que los números de las preguntas para los perdidos estén separados por espacios y no en la misma línea que el puntaje.
Reglas y especificaciones
- El scan-tron se puede ingresar como una cadena de varias líneas o una pregunta a la vez (como una cadena con nuevas líneas es aceptable)
- Dado un scan-tron y una clave de respuesta, debe generar el puntaje en una línea y las preguntas omitidas en otra, con los números separados por espacios. Si no se pierden preguntas, no se deben emitir números de preguntas
- Las puntuaciones se redondean a la décima más cercana.
Las respuestas seleccionadas están rodeadas por este cuadro:
--- | | ---
- En el scan-tron, cada pregunta ocupa tres espacios (la parte superior e inferior del cuadro ocupa dos líneas adicionales)
- Debe funcionar para el ejemplo anterior
- Suponga que siempre habrá una sola respuesta en el recuadro
Criterios ganadores
¡El código más corto gana!
50
aceptable un puntaje o tiene que serlo50.0
?Respuestas:
05AB1E , 43 bytes
Pruébalo en línea!
Explicación
fuente
Apilado , 68 + 1 = 69 bytes
Pruébalo en línea! +1 para
-p
bandera (este script se puede ejecutar comostacked -pe "..."
)Toma dos entradas desde la parte superior de la pila.
Algunas características interesantes:
Esto produce todas las letras rodeadas de tuberías.
Esto nos da todos los números de preguntas incorrectos.
fuente
Python 2 ,
9493 bytes-1 byte gracias a L3viathan
Pruébalo en línea!
fuente
100.
con1e2
Pip ,
4946444845 bytesUf, ese redondeo toma tantos bytes ... 44 bytes de código, +1 para la
-s
bandera.Toma datos como argumentos de línea de comando (la página scan-tron necesitará citar y escapar de nuevas líneas si la ejecuta desde una línea de comando real). Emite las preguntas perdidas primero, luego el puntaje. Pruébalo en línea!
Explicación
Voy a hacer esto en dos partes: la lista de preguntas incorrectas y el puntaje.
fuente
JavaScript (ES6), 88 bytes
Podría ahorrar 5 bytes usando comas y devolviendo todo una línea:
fuente
Lote, 242 bytes.
Primero lee la clave de respuestas en STDIN, luego
n*3
pregunta las filas. Nota: La puntuación se imprime sin un cero a la izquierda si es menor que1.0
. Las respuestas perdidas se imprimen con un espacio inicial.fuente
CJam ,
4745 bytesPruébalo en línea!
Explicación
El programa consta de tres partes principales:
Después de esta sección, tenemos una gran variedad de
0
s y1
s, en donde0
indica una respuesta equivocada y1
una respuesta correcta.Después de esta sección, la pila contiene solo la lista correcta / incorrecta, y se ha emitido el puntaje porcentual.
fuente
Jolf, 46 bytes
Parece que no puedo romper 46 bytes. Tengo dos soluciones de esta longitud. ¡Prueba uno aquí!
(Reemplazar
□
con0x7f
en el siguiente)En cualquiera de los casos, 15 bytes para el redondeo:
mX*~1/-lζlγlζ_1
. Son, en su mayor parte, iguales, excepto que uno usa una combinación de expresiones regulares para obtener los resultados, y el otro se divide en tuberías.fuente