En esta página vamos a ver el gran abanico de posibilidades que ofrece el comando aleatorio al crear preguntas con Wiris Quizzes mediante unos cuantos ejemplos. Para más detalles acerca de cómo crear las preguntas, echa un vistazo a guía básica de Wiris Quizzes

Suma de dos fracciones aleatorias

Vamos a crear una pregunta que pida a los estudiantes que realicen la suma de dos fracciones, siendo éstas totalmente aleatorias. Para eso, debemos empezar escribiendo el algoritmo de la pregunta.

Para ver como crear la pregunta con más detalles, echa un vistazo aquí.

El comando aleatorio nos permite obtener un número aleatorio dentro de un intervalo dado. Necesitamos cuatro números, dos numeradores y dos denominadores; a los que vamos a llamar num1, num2, den1, den2 (el nombre de las variables es importante). Escribamos el código.

Ahora tenemos cuatro números aleatorios entre 1 y 9 (ambos incluidos). También necesitamos calcular la suma de las fracciones definidas y guardar el resultado en una variable.

Una vez definido el algoritmo, escribimos la solución en la pestaña Respuesta correcta. Ahora, esta solución no es un número, es una variable a la que hemos llamado sol. Para escribir una variable fuera de CalcMe, debemos preceder su nombre del signo #. Por tanto, escribiremos #sol en la pestaña de la respuesta correcta.

Para terminar, una vez comprobado el funcionamiento de la pregunta en la pestaña Vista previa, redactamos el enunciado del problema. Recordamos que hemos guardado los numeradores y denominadores en variables cuyos nombres son num1, num2, den1, den2. Del mismo modo que en la pestaña de Respuesta correcta, debemos preceder el nombre de las variables precedido del signo #. Podemos escribir las fracciones con MathType.

Suma de dos fracciones aleatorias irreducibles

Notemos que con el algoritmo propuesto en la sección anterior, podemos generar enunciados que pueden no ser de nuestro agrado como

en el cual ambas fracciones tienen el mismo denominador. Podemos evitar ésto con un sencillo cambio en nuestro algoritmo, simplemente tenemos que excluir el valor tomado por el primer denominador del conjunto de posibles valores que puede tomar el segundo. El código quedará tal y como se muestra a continuación.

Por otro lado, el algoritmo inicial también puede generar enunciados aún más desagradables, tal y como podemos ver en el siguiente ejemplo.

En este caso, aparecen fracciones en el enunciado sin simplificar y que incluso se pueden expresar en forma entera. Para evitar esta situación excluiremos del conjunto de posibles denominadores aquellos valores cuyo máximo común divisor con su numerador sea diferente de uno tal y como proponemos en el siguiente algoritmo.

Redondeo y truncamiento de números aleatorios

Vamos a crear una pregunta que pida a los estudiantes que redondeen a las décimas y trunquen a las centésimas unos cuantos números aleatorios. Para eso, utilizaremos el modo de pregunta anidada (Cloze) y empezaremos escribiendo el algoritmo de la pregunta.

Para más información sobre preguntas anidadas (Cloze), echa un vistazo aquí.

El comando aleatorio nos permite obtener un número aleatorio dentro de un intervalo dado, de hecho, podemos añadir una opción para que solo considere los números de dicho intervalo con un paso dado tal y como veremos a continuación.

Necesitamos cinco números con tres cifras decimales cada uno. Puesto que puede resultar un poco pesado escribir tantas veces dicho comando, definiremos una función global r():=aleatorio([0..10..0.001]) que nos permitirá evitarlo. Escribamos el código.

Notemos la importancia de usar el signo := al definir la función r(). En caso de no hacerlo, r() siempre tomaría el mismo valor y los cinco números serían iguales. Para más información sobre definición de funciones en CalcMe, echa un vistazo aquí

Ahora tenemos cinco números reales aleatorios entre cero y diez con tres cifras decimales. También tenemos que calcular su redondeo a las décimas y su truncamiento a las centésimas.

Notemos que hemos multiplicado los números redondeados y truncados por 1.0, así las respuestas aparecen en forma decimal y no en forma racional.

Tal y como hemos programado nuestro algoritmo, nos podemos encontrar con situaciones no del todo deseables como la siguiente, en la cual obtenemos números ya redondeados a las décimas o ya truncados a la centésimas.

Para evitar situaciones como esta, podemos excluir aquellos números terminados en 0 o en 00 de la siguiente forma.

Y de este modo obtendremos únicamente números como los deseados tal y como podemos ver a continuación.

Resolución de inecuaciones

Vamos a crear una pregunta que pida a los estudiantes que resuelvan inecuaciones de primer grado con coeficientes aleatorios y desigualdades aleatorias. Para eso, vamos a escoger los coeficientes a comma b y c de la expresión a times x plus b equals c y crearemos un conjunto con las cuatro inecuaciones correspondientes tal y como vemos a continuación.

Una vez definido dicho conjunto, debemos escribir el algoritmo de la pregunta junto con su solución.

Recordamos que para escribir una variable fuera de CalcMe, debemos preceder el nombre de la variable con el signo #. Por tanto, en este caso escribiríamos #sol en la pestaña de respuesta correcta y #f en el enunciado.

Derivada de una función aleatoria en un punto aleatorio

Vamos a crear una pregunta que pida a los estudiantes que hallen el valor de la derivada de una función aleatoria en un punto aleatorio. Antes de empezar, debemos decidir dentro de que conjunto de funciones se puede hallar nuestra función, en nuestro caso será el siguiente.

Una vez definido dicho conjunto, debemos escribir el algoritmo de la pregunta junto con su solución.

Recordamos que para escribir una variable fuera de CalcMe, debemos preceder el nombre de la variable con el signo #. Por tanto, en este caso escribiríamos #sol en la pestaña de respuesta correcta y #f(x) y #x0 en el enunciado.

Cálculo de la inversa de una matriz aleatoria

Vamos a crear una pregunta que pida a los estudiantes que calculen la inversa de una matriz 3 x 3 entera, siendo sus coeficientes totalmente aleatorios. Para eso, debemos empezar escribiendo el algoritmo de la pregunta.

Alternativamente, podemos crear la matriz de forma más estética y compacta con el siguiente código.

Notemos que, para que la matriz sea invertible, necesitamos que su determinante sea diferente de cero, lo cual es posible en nuestras dos propuestas iniciales. Para evitar dicha situación, debemos utilizar recursos de programación disponibles en CalcMe tal y como se muestra a continuación.

Para ver más a fondo las diferentes opciones de programación que posee CalcMe, echa un vistazo aquí.

Asimismo, el algoritmo quedará del siguiente modo.

Recordamos que para escribir una variable fuera de CalcMe, debemos preceder el nombre de la variable con el signo #. Por tanto, en este caso escribiríamos #sol en la pestaña de respuesta correcta y #A en el enunciado.

Resolución de un sistema lineal aleatorio

Vamos a crear una pregunta que pida a los estudiantes que hallen la solución del sistema A times x equals b, siendo A una matriz 3 x 3 a coeficientes aleatorios y b un vector a coeficientes aleatorios. Para empezar debemos escribir el algoritmo de la pregunta de forma similar al ejemplo anterior.

Y la solución a la pregunta vendrá dada del siguiente modo.

Notemos que el vector respuesta x puede tener forma no entera. A priori, eso no debe suponer un problema para los estudiantes, pero nos puede interesar que la respuesta sea entera para que los cálculos no sean tan tediosos. Para solventar dicho problema, definimos nuestra matriz A de determinante 1 del siguiente modo.

De este modo, pese a solventar el problema, estamos generando matrices aleatorias hasta encontrar una con determinante 1, lo cual es muy ineficiente. Para optimizar nuestro algoritmo, debemos cambiar nuestro enfoque de la pregunta. En lugar de definir aleatoriamente la matriz A y el vector b, definiremos primero nuestra solución y encontraremos una matriz A y un vector b enteros que cumplan A times x equals b.

Este nuevo enfoque de como definimos los parámetros aleatorios de la pregunta nos va a permitir controlar mucho más cómo será la respuesta que nos tenga que dar el estudiante.

Recordamos que para escribir una variable fuera de CalcMe, debemos preceder el nombre de la variable con el signo #. Por tanto, en este caso escribiríamos #sol en la pestaña de respuesta correcta y #A, #b en el enunciado.

Raíces de un polinomio aleatorio

Vamos a crear una pregunta que pida a los estudiantes que hallen las raíces de un polinomio de grado y coeficientes aleatorios. Para eso, debemos empezar como siempre escribiendo el algoritmo de la pregunta.

Notemos que el algoritmo puede generar polinomios que no sean de nuestro agrado, ya sea porque carezcan de raíces reales o porque sea complicado hallarlas a mano tal y como vemos en el siguiente ejemplo.

Para ver como trabajar con respuestas en modo lista o conjunto, echa un vistazo aquí.

Para evitarlo, podemos definir el polinomio como producto de sus raíces tal y como hacemos a continuación.

Así nos aseguramos que todas las raíces del polinomio sean enteras y los estudiantes puedan hallarlas a mano tal y como podemos observar a continuación.

Recordamos que para escribir una variable fuera de CalcMe, debemos preceder el nombre de la variable con el signo #. Por tanto, en este caso escribiríamos #sol en la pestaña de respuesta correcta y #p en el enunciado.