Se ha desarrollado un conjunto de clases especifico para generar preguntas relacionadas con la formulación de química inorgánica. Este conjunto de clases se agrupan en un paquete que puede importarse al escribir una pregunta generativa usando JSP. Para facilitar la creación de preguntas usando este paquete no es necesario recurrir a la programación que se explica en este apartado, ya que puede utilizarse un editor de preguntas especifico en el que se indica entre otros el tipo de compuesto y la nomenclatura a utilizar entre otros parámetros. Este editor generará automáticamente el código JSP necesario para crear la plantilla a partir de la cuál en tiempo de ejecución se instanciarán las preguntas concretas a plantear.
El paquete consta de las siguientes clases:
Un ejemplo sencillo del uso de estas clases es el siguiente:
<%@page import="siette.quimica.*"%> <% TablaPeriodica tablaPeriodica = new TablaPeriodica(new Random()); tablaPeriodica.selectCurso("3ESO"); Oxido ox = Oxido.random(tablaPeriodica); %> Escribe la fórmula del siguiente compuesto: <%= ox.nombre() %>
En esta pregunta la variable ox
se instancia a un objeto aleatorio de la clase Oxido
, es decir a un compuesto de oxígeno y otro elemento elegido aleatoriamente de entre los elementos de la tabla periódica que se estudian en 3º de ESO (La selección de estos elementos se hace en la sentencia anterior, ver la clase TablaPeriodica). El método nombre()
escribe el nombre del compuesto seleccionado.
Entre otras muchas instancias, este esquema de generación de preguntas dara origen a la siguiente pregunta de Siette:
La respuesta correcta a esta pregunta se obtiene llamando al método ox.formula()
y se introducirá en el campo correspondiente al patrón de respuesta, que se comparará con la respuesta dada por el alumno.
Se puede forzar la elección de un elemento químico en concreto, por ejemplo:
<%@page import="siette.quimica.*"%> <% TablaPeriodica tablaPeriodica = new TablaPeriodica(new Random()); Oxido ox = Oxido.random(tablaPeriodica,TablaPeriodica.selectElemento("H")); %> Escribe la fórmula del siguiente compuesto: <%= ox.nombre() %>
Fuerza la elección del compuesto H2O
. En este caso no hay mas que una posible valencia, pero en los casos en los que el número de oxidación es múltiple se escogería uno al azar.
De forma análoga se puede presentar la formula y solicitar el nombre como respuesta, por ejemplo:
<%@page import="siette.quimica.*"%> <% TablaPeriodica tablaPeriodica = new TablaPeriodica(new Random()); Oxido ox = Oxido.random(tablaPeriodica,TablaPeriodica.selectElemento("H")); %> Escribe el nombre, en la nomenclatura sistemática con prefijos del siguiente compuesto: <%= ox.formulaHTML() %>
Fuerza la elección del compuesto H2O
. El patrón de respuesta en este caso sería ox.patronSistematica()
que generaría la secuencia oxido de {di}hidrógeno
reconociendo como respuestas válidas oxido de dihidrogeno
y oxido de hidrogeno
, pero no agua
. En caso de aceptar cualquier nomenclatura, se usaria el patrón ox.patron()
, que daria lugar a la secuencia {mon}óxido de {di}hidrógeno|óxido de hidrógeno|Agua
, que usada como Patrón de expresiones regulares de Siette reconocería todas las posibles respuestas correctas.