Herramientas de usuario

Herramientas del sitio


es:manual:spsl

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
es:manual:spsl [2026/02/17 09:51] rootes:manual:spsl [2026/02/17 15:13] (actual) root
Línea 31: Línea 31:
 En este caso la sentencia de prueba devolverá a Siette directamente el valor que la ejecución de la instrucción devuelva por el flujo de datos de la salida estándar (''stdout''). En este ejemplo la secuencia ''3'', en el caso de que el fichero contenga tres lineas con la palabra ''function''. En este caso la sentencia de prueba devolverá a Siette directamente el valor que la ejecución de la instrucción devuelva por el flujo de datos de la salida estándar (''stdout''). En este ejemplo la secuencia ''3'', en el caso de que el fichero contenga tres lineas con la palabra ''function''.
  
-El [[es:manual:items:patron:siette#patrones_con_numeros|patrón de reconocimiento de la respuesta correcta]] en este caso podría ser ''<2|4>'' indicando que cualquier numero entre 2 y 4 se considera correcto. El funcionamiento del sistema es el siguiente: +El [[es:manual:items:patron:siette#patrones_con_numeros|patrón de reconocimiento de la respuesta correcta]] en este caso podría ser ''<2|4>'' indicando que cualquier numero entre 2 y 4 se considera correcto. El funcionamiento del sistema es el siguiente: ((Ver otros ejemplos en la sección [[es:manual:items:externosfichero|Preguntas con ficheros]] )) 
-   - Se recibe el fichero test.txt +   - Se recibe el fichero test.txt  
-   - Se crea un directorio temporal donde situa el fichero+   - Se crea un directorio temporal donde sitúa el fichero recibido. 
 +   - Se copian en ese directorio los ficheros auxiliares del directorio base.
    - Se ejecuta el comando ''grep -c function test.txt''    - Se ejecuta el comando ''grep -c function test.txt''
    - Se captura la salida de este comando (supongamos ''3'')    - Se captura la salida de este comando (supongamos ''3'')
    - Esta salida se considera como la respuesta del alumno a una pregunta de respuesta libre    - Esta salida se considera como la respuesta del alumno a una pregunta de respuesta libre
    - Se busca el patrón que encaja con esta respuesta, para determinar si la respuesta es correcta.    - Se busca el patrón que encaja con esta respuesta, para determinar si la respuesta es correcta.
 +   - Se muestra al usuario su respuesta y la corrección (si el test lo permite)
  
 ==== Sentencias de prueba completas ==== ==== Sentencias de prueba completas ====
Línea 60: Línea 62:
    grep -c function test.txt  ==  <2|4>    ->  A : B    grep -c function test.txt  ==  <2|4>    ->  A : B
  
-que indica que debe ejecutar se la sentencia del sistema operativo, obtener su resultado, compararlo con la secuencia ''3'' y si es igual devolver como respuesta Siette <nowiki>''<!--A-->''</nowiki>si no devolverá <nowiki>''<!--B-->''</nowiki>Es decir en este caso los patrones de respuesta serían <nowiki>''<!--A-->*''</nowiki<nowiki>''<!--B-->*''</nowiki>. Nótese que el valor devuelto por el script se inserta dentro de un [[https://www.w3schools.com/html/html_comments.asp|comentario HTML]]. Esto es así para evitar que el valor devuelto sea visible al mostrar los resultados en Siette.+En este caso los patrones de respuesta que usa Siette deberían ser <nowiki>''<!--A-->*''</nowiki> y <nowiki>''<!--B-->*''</nowiki>El funcionamiento del sistema es el siguiente: ((Ver otros ejemplos en la sección [[es:manual:items:externosfichero|Preguntas con ficheros]] )) 
 +   - Se recibe el fichero test.txt 
 +   - Se crea un directorio temporal donde situa el fichero 
 +   - Se copian en ese directorio los ficheros auxiliares del directorio base. 
 +   - Se ejecuta el comando ''grep -c function test.txt'' 
 +   - Se captura la salida de este comando (supongamos ''3''
 +   - Se compara la salida con el patrón Siette ''<2|4>'' 
 +   - Si el patrón encaja se devuelve a Siette como respuesta del alumno ''<!-- A -->3'', y si no encaja se devuelve ''<!-- B -->3''  
 +   - Se busca el patrón que encaje con esta respuesta, para determinar si la respuesta es correcta. En este caso los patrones de Siette pueden son ''<!-- A -->*''''<!-- B -->*'', es decir dado que la respuesta ha sido ''<!-- A -->3'', el primer patrón. 
 +   - Una vez que se ha determinado si la respuesta es correcta, o no, se muestra al usuario la corrección si el test lo permite. Nótese que el valor devuelto por el script (la etiqueta ''A''se inserta dentro de un [[https://www.w3schools.com/html/html_comments.asp|comentario HTML]]. Esto es así para evitar que la etiqueta sea visible al mostrar los resultados en Siette
 + 
 +A diferencia del caso anterior de respuestas simples, en este caso se usan etiquetas auxiliares para clasificar la ejecución. Esto permite un mayor nivel de abstracción, pero sobre todo, permite realizar mas de una prueba de ejecución como se verá mas adelante. 
 + 
 + 
 +==== Patrones para determinar la respuesta ==== 
 +A efectos de determinar la respuesta que se origina como consecuencia de la ejecución del script, es decir la prueba de concordancia entre la //instrucción del sistema operativo// y el //resultado//, se pueden usar los mismos [[es:manual:items:patrones|patrones]] que Siette utiliza para identificar las respuestas del alumno en las preguntas de respuesta libre.
  
 === @Correspondence === === @Correspondence ===
Línea 66: Línea 83:
 === @JavaPattern === === @JavaPattern ===
 === @MathPattern === === @MathPattern ===
-La prueba de concordancia entre la //instrucción del sistema operativo// y el //resultado// se determina usando los mismos [[es:manual:items:patrones|patrones]] que Siette utiliza para identificar las respuestas del alumno en las preguntas de respuesta libre. 
  
 Estas //sentencias de control// tienen la siguiente estructura: Estas //sentencias de control// tienen la siguiente estructura:
Línea 132: Línea 148:
  
 Evidentemente en este caso interesa que se ejecuten ambas pruebas. Pueden ocurrir varias situaciones: (1) La primera prueba no da como resultado ''False'' por lo que se devuelve a Siette la cadena ''<!--Incorrecto1-->''; (2) La primera Evidentemente en este caso interesa que se ejecuten ambas pruebas. Pueden ocurrir varias situaciones: (1) La primera prueba no da como resultado ''False'' por lo que se devuelve a Siette la cadena ''<!--Incorrecto1-->''; (2) La primera
-prueba se satisface, por lo que el script no termina, sino que continúa ejecutandose. Supongamos que la segunda preuba da un resultado ''True'' cuando debería dar ''False''. La respuesta del sistema a Siette en este caso sería +prueba se satisface, por lo que el script no termina, sino que continúa ejecutándose. Supongamos que la segunda preuba da un resultado ''True'' cuando debería dar ''False''. La respuesta del sistema a Siette en este caso sería 
 ''<!--Incorrecto1-->''; (3) Supongamos que la primera prueba se cumple y la segunda tambien. En este caso la respuesta que devuelve a Siette será ''<!--Correcto-->''. En realidad, este script podria sustituirse por este otro mas simple: ''<!--Incorrecto1-->''; (3) Supongamos que la primera prueba se cumple y la segunda tambien. En este caso la respuesta que devuelve a Siette será ''<!--Correcto-->''. En realidad, este script podria sustituirse por este otro mas simple:
  
es/manual/spsl.1771321907.txt.gz · Última modificación: por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki