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 15:11] – rootes: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 (''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: ((Ver otros ejemplos en [[es:manual:items:externosfichero]] ))+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 sitúa el fichero recibido.    - Se crea un directorio temporal donde sitúa el fichero recibido.
Línea 62: Línea 62:
    grep -c function test.txt  ==  <2|4>    ->  A : B    grep -c function test.txt  ==  <2|4>    ->  A : B
  
-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:+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 recibe el fichero test.txt
    - Se crea un directorio temporal donde situa el fichero    - Se crea un directorio temporal donde situa el fichero
Línea 148: 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:
  
Línea 469: 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//, nunca se añade el resultado de la instrucción del sistema operativo. Solo se hace cuando como resultado de una prueba se ha detectado un error. En caso de que la respuesta se considere correcta, es decir, cuando la ejecución ha llegado al final del //script de procesamiento//, nunca se añade el resultado de la instrucción del sistema operativo. Solo se hace cuando como resultado de una prueba se ha detectado un error.
 +
 +==== @File / @End ====
 +Esta //sentencia de control// indica al script que el contenido que viene a continuación debe guardarse en un fichero de nombre //fileName//
 +
 +La sintaxis es la siguiente:
 +
 +;#;
 +''@File'' <typo fs:small>fileName</typo>
 +;#;
 +;#;
 +....
 +;#;
 +;#;
 +''@End''
 +;#;
 +
 +Por ejemplo, sea el siguiente //script de procesamiento// que comprueba si un programa en Python ha definido correctamente la función ''factoria(n)'' mediante una serie de pruebas unitarias:
 +
 +   @File factorial.txt
 +   factorial (3) => 6
 +   factorial (5) => 120
 +   factorial (7) => 5040
 +   factorial (-1) => None
 +   @End
 +   @Command on
 +   python3 check.py factorial.txt  == ok -> Correcto : Incorrecto
 +
 +El trozo de código comprendido entre ''@File'' y ''@End'' se guardará en un fichero ''factorial.txt'' en el directorio de trabajo. Este nombre se usa en la instrucción final como entrada a un programa Python que hace las comprobaciones que el fichero indica.
 +
 +Esta opción es una alternativa al uso de ficheros en el [[es:manual:items:externosfichero#directorio de trabajo]] , ya que en casos simples como este no es necesario establecer un [[es:manual:items:externosfichero#directorio base]].
 +
 +
  
 ==== Variables ==== ==== Variables ====
Línea 542: Línea 574:
 Aunque no es obligatorio, el uso del bucle ''for'' suele ir asociado a los modos de evaluación ''@Eval add all'' y ''@OnError continue'', que realiza todas las pruebas y contabiliza las que obtiene un resultado positivo, descontando o no las pruebas con resultado negativo.  Aunque no es obligatorio, el uso del bucle ''for'' suele ir asociado a los modos de evaluación ''@Eval add all'' y ''@OnError continue'', que realiza todas las pruebas y contabiliza las que obtiene un resultado positivo, descontando o no las pruebas con resultado negativo. 
 ==== Comentarios ==== ==== Comentarios ====
-Cualquier línea que comience con el caracter ''#'' se considera un comentario, y se ignora completamente. Los espacios en blanco no se tienen en cuanta mas que para separar los diferentes elemntos del lenguaje.+Cualquier línea que comience con el caracter ''#'' se considera un comentario, y se ignora completamente. Los espacios en blanco no se tienen en cuanta mas que para separar los diferentes elemrntos del lenguaje.
  
 ==== Gramática ==== ==== Gramática ====
Línea 555: 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 560: Línea 593:
  | “@Answer” label     | “@Answer” label   
  | “@ssh”   | “@ssh” 
-    
  | “@timeout” NUMBER     | “@timeout” NUMBER   
          | “@command” commandOption             | “@command” commandOption   
es/manual/spsl.1771341099.txt.gz · Última modificación: (editor externo)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki