es:manual:items:externosfichero
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:items:externosfichero [2023/09/27 10:59] – root | es:manual:items:externosfichero [2023/09/27 12:31] (actual) – [Corrección de la ejecución directa] root | ||
---|---|---|---|
Línea 11: | Línea 11: | ||
El caso mas simple de preguntas de ejecución de ficheros es aquel en el que el fichero enviado como respuesta se procesa y se captura su salida que se pasará a Siette directamente como respuesta. | El caso mas simple de preguntas de ejecución de ficheros es aquel en el que el fichero enviado como respuesta se procesa y se captura su salida que se pasará a Siette directamente como respuesta. | ||
- | Siette reconocerá esta respuesta como cualquier otra respuesta a una pregunta de respuesta libre e intentará reconocer mediante alguno de los patrones si la respuesta (el resultado de la ejecución del script) coincide con alguno de ellos. | + | Siette reconocerá esta respuesta como cualquier otra respuesta a una pregunta de respuesta libre e intentará reconocer mediante alguno de los patrones si la respuesta (el resultado de la ejecución del [[es: |
- | ==== Ejemplo 1 ==== | + | === Ejemplo 1 === |
- | Supongamos que en el enunciado | + | El siguiente es el enunciado |
+ | {{ es: | ||
+ | Para evaluar esta pregunta, se requiere al alumno que envíe un fichero con el nombre '' | ||
+ | {{ es: | ||
+ | Para corregir este ítem se usa un [[es: | ||
+ | python3 test.py 1 2 3 4; python3 test.py 1 5 3 4; | ||
- | ==== Ejemplo 1 ==== | + | cuya ejecución |
- | El siguiente es el enunciado (y la solución) de un pequeño programa | + | |
- | {{ es: | + | |
- | Para evaluar la solución se mostrará al alumno un área de texto donde debe introducir | + | Por consiguiente, |
- | {{ es: | + | {{ es: |
- | Para corregir este ítem se usa un // | + | Puede añadirse |
+ | |||
+ | {{ es: | ||
+ | |||
+ | |||
+ | ==== Corrección | ||
+ | |||
+ | Salvo casos sencillos | ||
+ | |||
+ | Para solucionar este problema el [[es:manual:spsl|script de procesamiento]] trabaja con patrones de reconocimiento específicos para cada una de las sentencias de ejecución del //script// y devuelve a Siette como respuesta de la ejecución // | ||
+ | |||
+ | |||
+ | === Ejemplo 2 === | ||
+ | |||
+ | Para el problema del ejemplo anterior, supongamos ahora que el [[es:manual: | ||
| | ||
| | ||
- | Este //script// toma escribe en un fichero '' | + | Este //script// toma escribe en un fichero '' |
Al igual que en otros ítem externos, hay que indicar en el [[es: | Al igual que en otros ítem externos, hay que indicar en el [[es: | ||
- | {{ es: | + | {{ es: |
+ | |||
+ | Nótese que en este caso se trata se muestran directamente las etiquetas, y no de la respuesta. La respuesta que en este caso devuelve Siette, a diferencia del ejemplo anterior, es realmente un comentario en HTML, que contiene la etiqueta. Es decir las posibles respuestas de la ejecución de este //script// son las secuencias ''< | ||
+ | |||
+ | {{ es: | ||
+ | |||
+ | El // | ||
- | Tambien | + | También en este caso es interesante poder usar el campo [[es: |
| | ||
Línea 49: | Línea 72: | ||
y consiguientemente las modificaciones en los patrones: | y consiguientemente las modificaciones en los patrones: | ||
- | {{ es: | + | {{ es: |
a los que puede añadirse un [[es: | a los que puede añadirse un [[es: | ||
- | {{ es: | + | {{ es: |
- | {{ es: | + | {{ es: |
- | Evidentemente, | + | Evidentemente, |
- | ==== Ejemplo | + | === Ejemplo |
Un ejemplo clásico es la evaluación de las prácticas de programación en un lenguaje de programación, | Un ejemplo clásico es la evaluación de las prácticas de programación en un lenguaje de programación, | ||
{{ es: | {{ es: | ||
- | en donde el alumno debe enviar su porpia | + | en donde el alumno debe enviar su propia |
Para evaluar este fichero hay que definir algunos parámetros en la pestaña [[es: | Para evaluar este fichero hay que definir algunos parámetros en la pestaña [[es: | ||
|Avanzado]]. | |Avanzado]]. | ||
- | === Nombre del fichero | + | == Nombre del fichero == |
- | Es el nombre que se dará al fichero que envia el alumno. En realidad da igual el nombre del fichero del alumno. Cualquier fichero que envíe se renombrará con el nombre que se le asigne. En el ejemplo '' | + | Es el nombre que se dará al fichero que envía |
- | === Directorio base === | + | == Directorio base == |
Es un subdirectorio del [[es: | Es un subdirectorio del [[es: | ||
- | === Directorio de trabajo | + | == Directorio de trabajo == |
Cada vez que se ejecuta un ítem externo de fichero Siette asigna un directorio diferente dentro del subdirectorio '' | Cada vez que se ejecuta un ítem externo de fichero Siette asigna un directorio diferente dentro del subdirectorio '' | ||
* El archivo o archivos enviados por el usuario. | * El archivo o archivos enviados por el usuario. | ||
Línea 81: | Línea 104: | ||
En el ejemplo anterior no es necesario ningún archivo adicional, por lo que no hace falta usar ningun directorio base. | En el ejemplo anterior no es necesario ningún archivo adicional, por lo que no hace falta usar ningun directorio base. | ||
- | === Script de procesamiento | + | == Script de procesamiento == |
- | El script de procesamiento es un // | + | El [[es: |
- | En el caso anterior el //script de procesamiento// es el siguiente: | + | En el caso anterior el [[es: |
| | ||
Línea 106: | Línea 129: | ||
echo 18 24 | ./mcd | echo 18 24 | ./mcd | ||
- | El resultado de esta prueba debería ser '' | + | El resultado de esta prueba debería ser '' |
En caso de que la prueba tenga éxito el //script// asigna el valor de '' | En caso de que la prueba tenga éxito el //script// asigna el valor de '' | ||
Línea 112: | Línea 135: | ||
echo 192 224 | ./mcd | echo 192 224 | ./mcd | ||
- | que debe dar como resultado una secuencia que termine en '' | + | que debe dar como resultado una secuencia que termine en '' |
Finalmente realiza la tercera prueba con otros valores diferentes. Si tiene exito devolverá un '' | Finalmente realiza la tercera prueba con otros valores diferentes. Si tiene exito devolverá un '' | ||
- | En realidad, las etiquetas que devuelve el //script// son algo mas elaboradas, ya que pueden incluir información sobre la ejecución del script y la última sentencia que provocó un error. Por ejemplo, suponiendo que las dos primeras pruebas funcionan, pero no asi la tercera, el //script de procesamiento | + | En realidad, las etiquetas que devuelve el //script// son algo mas elaboradas, ya que pueden incluir información sobre la ejecución del script y la última sentencia que provocó un error. Por ejemplo, suponiendo que las dos primeras pruebas funcionan, pero no asi la tercera, el [[es: |
< | < | ||
Línea 128: | Línea 151: | ||
que le indica que al ejecutar el programa '' | que le indica que al ejecutar el programa '' | ||
- | La respuesta del //script de procesamiento// es un trozo de texto en HTML. La primera parte de esta respuesta corresponde a la etiqueta de evaluación que se devuelve dentro de un comenatrio | + | La respuesta del [[es: |
- | === Reconocimiento de la respuesta externa | + | == Reconocimiento de la respuesta externa == |
Como cualquier otra pregunta externa, la respuesta debe ser comparada con los patrones de respuesta que contenga el [[es: | Como cualquier otra pregunta externa, la respuesta debe ser comparada con los patrones de respuesta que contenga el [[es: | ||
{{ es: | {{ es: | ||
- | Como puede apreciarse en este caso el patrón de reconocimiento, | + | Como puede apreciarse en este caso el patrón de reconocimiento, |
+ | |||
+ | En el caso en que se usen etiquetas para componer la respuesta como resultado del [[es: | ||
+ | |||
+ | {{ es: | ||
- | Puesto que la respuesta del //script de procesamiento// no ha sido completamente | + | Puesto que la respuesta del [[es: |
es/manual/items/externosfichero.1695812366.txt.gz · Última modificación: 2023/09/27 10:59 por root