es:manual:spsl
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| es:manual:spsl [2026/02/17 09:55] – root | es:manual:spsl [2026/09/26 16:35] (actual) – [@File / @End] 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 ('' | 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 ('' | ||
| - | El [[es: | + | El [[es: |
| - | - 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 |
| + | - Se copian en ese directorio los ficheros auxiliares del directorio base. | ||
| - Se ejecuta el comando '' | - Se ejecuta el comando '' | ||
| - Se captura la salida de este comando (supongamos '' | - Se captura la salida de este comando (supongamos '' | ||
| - 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 | grep -c function test.txt | ||
| - | que indica que debe ejecutar se la sentencia del sistema operativo, obtener su resultado, compararlo con la secuencia '' | + | En este caso los patrones de respuesta |
| + | - Se recibe el fichero test.txt | ||
| + | - Se crea un directorio temporal donde situa el fichero | ||
| + | - Se copian en ese directorio | ||
| + | - Se ejecuta el comando '' | ||
| + | - Se captura la salida | ||
| + | - Se compara la salida con el patrón Siette '' | ||
| + | - Si el patrón encaja se devuelve a Siette como respuesta del alumno | ||
| + | - 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 '' | ||
| + | - 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 | ||
| + | |||
| + | 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, | ||
| ==== Patrones para determinar la respuesta ==== | ==== Patrones para determinar la respuesta ==== | ||
| Línea 134: | Línea 148: | ||
| Evidentemente en este caso interesa que se ejecuten ambas pruebas. Pueden ocurrir varias situaciones: | Evidentemente en este caso interesa que se ejecuten ambas pruebas. Pueden ocurrir varias situaciones: | ||
| - | prueba se satisface, por lo que el script no termina, sino que continúa | + | prueba se satisface, por lo que el script no termina, sino que continúa |
| ''< | ''< | ||
| Línea 455: | Línea 469: | ||
| En caso de que la respuesta se considere correcta, es decir, cuando la ejecución ha llegado al final del //script de procesamiento//, | En caso de que la respuesta se considere correcta, es decir, cuando la ejecución ha llegado al final del //script de procesamiento//, | ||
| + | |||
| + | ==== @File / @End ==== | ||
| + | Esta //sentencia de control// indica al script que el contenido que viene a continuación debe guardarse en un fichero de nombre // | ||
| + | |||
| + | La sintaxis es la siguiente: | ||
| + | |||
| + | ;#; | ||
| + | '' | ||
| + | ;#; | ||
| + | ;#; | ||
| + | .... | ||
| + | ;#; | ||
| + | ;#; | ||
| + | '' | ||
| + | ;#; | ||
| + | |||
| + | Por ejemplo, sea el siguiente //script de procesamiento// | ||
| + | |||
| + | @File factorial.txt | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | @End | ||
| + | | ||
| + | | ||
| + | |||
| + | El trozo de código comprendido entre '' | ||
| + | |||
| + | Esta opción es una alternativa al uso de ficheros en el [[es: | ||
| + | |||
| + | |||
| ==== Variables ==== | ==== Variables ==== | ||
| Línea 528: | Línea 574: | ||
| Aunque no es obligatorio, | Aunque no es obligatorio, | ||
| ==== Comentarios ==== | ==== Comentarios ==== | ||
| - | Cualquier línea que comience con el caracter ''#'' | + | Cualquier línea que comience con el caracter ''#'' |
| ==== Gramática ==== | ==== Gramática ==== | ||
| Línea 541: | Línea 587: | ||
| | forSent LF | | forSent LF | ||
| controlSent → patternType fileExecFlag “:” patternOptions | controlSent → patternType fileExecFlag “:” patternOptions | ||
| + | | “@File” fileName | ||
| | “@OnError” errorOption | | “@OnError” errorOption | ||
| | “@Eval” evalOption | | “@Eval” evalOption | ||
| Línea 546: | Línea 593: | ||
| | “@Answer” label | | “@Answer” label | ||
| | “@ssh” | | “@ssh” | ||
| - | |||
| | “@timeout” NUMBER | | “@timeout” NUMBER | ||
| | “@command” commandOption | | “@command” commandOption | ||
es/manual/spsl.1771322150.txt.gz · Última modificación: (editor externo)
