Auxiliares
Los auxiliares son los objetos propiamente matemáticos de Descartes. Antes de leer esta página el lector debe leer la página Auxiliares de la documentación técnica de Descartes 3, a la que deberá referirse posteriormente para aclarar cualquier duda sobre los auxiliares de Descartes. En particular el lector debe estudiar en detalle la diferencia en la funcionalidad de las consantantes que se evalúan una sola vez, las constantes que se evalúan siempre y las variables. También queda para auto estudio el tema de los vectores, las funciones sin algoritmo y las sucesiones.
El objetivo de esta página es que el lector desarrolle algunas escenas que requieren de un uso avanzado de los algoritmos y los eventos.
Funciones algorítmicas.
La siguiente escena calcula el factorial de un número entero menor que 16.
La escencia de esta escena es la función algorítmica Fact(x) que calcula el factorial de un número entero x multiplicando todos los enteros menores o iguales a x. Esta función algorítmica puede programarse en Descartes como muestra la siguiente figura.
El algoritmo inicializa primero dos números n=1 y f=1. El número n se usará para llevar el control del número por el que se va a multiplicar f mientras que f es el valor del producto de los números anteriores o iguales a n. Así al terminar el proceso cuando n sea mayor que x f será igual al factorial de x.
Un segundo ejemplo de escena que requiere de una función algorítmica es la siguiente.
La escena presenta la suma de los cuadrado desde n=1 hasta n=N donde N puede elegirlo el usuario con un máximo de 10000. El algoritmo para calcular la suma de cuadrados puede escribirse en Descartes como muestra la figura.
Finalmente presentamos una escena que calcula el máximo común divisor de dos números enteros A y B y aprovecha este número para reducir la fracción A/B.
El algoritmo para calcular el máximo común divisor de A y B puede escribirse en Descartes en una función de dos variables como muestra la figura.
Observe que en este algoritmo se usan asignaciones condicionales del tipo
x = (A) ? y : z
que asigna a x el valor y si A se cumple y le asigna z en caso contrario. Aquí A es una expresión booleana como por ejemplo (r=0) o (a<b). Las asignaciones condicionales juegan el papel de la cláusula condicional if ... else ... de los lenguajes de programación.
Nota: Usando funciones algorítmicas dentro de otras es posible crear algoritmos más complejos.
Ejercicios.
Modifique la escena de la suma de cuadrados para que calcule la suma de los cuadrados de los enteros mayores o iguales a M y menores o iguales a N, donde M y N son dos números enteros que el usuario puede definir mediante unos pulsadores.
Modifique la escena del Máximo Común Divisor para que realice la suma de dos fracciones de enteros A/B + C/D y exprese el resultado de manera reducida.
Los eventos son un tipo especial de auxiliares que permite lanzar acciones cuando algo ocurre. Recordemos la escena de la igualación de colores:
En el panel de auxiliares pueden verse dos eventos con el mismo nombre que registran cuando el usuario ha logrado igualar los colores. El primero de los eventos informa al usuario de que ya ha resuelto el ejecicio y el segundo le informa de que puede repetir el ejercicio pulsando el botón de inicio. La siguiente figura muestra la configuración del primero de estos dos eventos.
Los eventos tienen pocos campos en su configuración casi todos son muy delicados y es importante conocerlos bien y configurarlos con cuidado. Los tres fundamentales son condición, acción y ejecución.
La condición define cuándo ocurre el evento. Se trata de una expresión booleana que involucra los parámetros numéricos definidos en los controles o en los auxiliares. La acción es lo que el programa va a realizar cuando se cumpla la condición, es decir, cuando la expresión booleana de la condición dé resultado verdadero. Las acciones posibles son exactamente las mismas que las que aparecen en los controles. Finalmente la ejecución da varias opciones: una-sola-vez, siempre y alternar para determinar si la ejecución de la acción puede realizarse más de una vez y en tal caso debe realizarse siempre que se cumple la condición o solamente cuando la condición deja ser verdadera y luego vuelve a serlo. En general la ejecución de tipo alternar es la más útil.
La siguiente escena ilustra cómo pueden aprovecharse los eventos para crear escenas interactivas educativas.
Esta escena utiliza varios eventos, como puede verse en el panel de configuración de auxiliares.
El evento “mal” informa al alumno que ha cometido un error mediante la apertura de la escena incorrecto.applet. El evento “verif” a calculando el número de aciertos y errores. El evento “REPITE” informa al alumno que ha terminado la prueba pero con errores por lo cual se le pide repetirla. El evento “FIN” informa al alumno que hizo la prueba sin errores.
Conviene observar que esta escena utiliza muchos otros auxiliares como las variables BIEN y MAL qe a su vez se usan en los cálculos del evento verif, o las funciones nuevoG() y nuevoT() que generan los apareamientos aleatorios de un gráfico (una superficie o curva) con un texto (las fórmulas paramétricas de una superficie o curva).
Observe que la condición del evento “verif” es “verificar”. ¿Qué es “verificar”? Como puede verse no es un auxiliar. Tampoco es el id de un control. Puede verse que se inicializa como 0 en el algoritmo INICIO y que se le vuelve a dar el valor 0 al terminar los cálculos del evento verif. ¿Pero cuándo se le da un valor diferente de 0? Esto se hace en las acciones de los botones sí y no (cuyo id es coinciden.
El lector debe estudiar cuidadosamente esta escena pues se trata de un ejemplo con muchas posibilidades de aplicarse a diferentes temas.
Ejercicios.
A
partir de la escena del pato que se mostró en la lección
de controles para ilustrar los controles gráficos, y que se
repite abajo, haga una escena que pida al alumno colocar el pato en
un punto de coordenadas enteras generadas aleatoriamente y que
cuando lo haya hecho (con un grado razonable de aproximación)
le informe de que logró su objetivo y vuelva a pedirle
colocarlo en otro punto.
Estudie
el funcionamiento de la siguiente escena y genere una similar pero
en la que las preguntas sean sobre otro tema.
En la escena de las curvas y superficies con la que se ilustraron los eventos cambie los gráficos para convertir la escena en una prueba para alumnos sobre un tema diferente de su elección.
Partiendo de la escena creada en el Ejercicio 2 de Auxiliares1, la de la suma de fracciones, cree una escena interactiva que pida al alumno realizar la suma de fracciones y reducirla y le permita verificar su resultado de manera que el programa le informe si su resultado es incorrecto o si es correcto le ponga otro ejercicio.