• Algoritmos – Ejemplos de aplicación

    En la siguiente presentación de diapositivas, podrás observar dos ejemplos de aplicación de algoritmos. El primer ejemplo es un sumatorio, que incluye un escena interactiva y el código del algoritmo. El segundo ejemplo es una aplicación para el Cálculo Integral que incluye una escena interactiva para calcular la integral definida, en la cual puedes modificar algunos valores como los límites de integración e incluso la función.

    Haz clic en la flecha de la esquina inferior derecha para pasar a la siguiente diapositiva.

    (Puede descargar esta presentación desde este enlace)

  • Algoritmos

    Los algoritmos constituyen un sistema sencillo para inicializar vectores y para programar procesos de cálculo más o menos complejos.

    Los algoritmos hasta la versión 4 de Descartes eran auxiliares de la escena y podían definirse en el panel de configuración de Auxiliares el cual no existe en la versión 5. Por compatibilidad hacia atrás entre las versiones, si una escena anterior a la versión 5 es editada con el gestor de escenas de esta versión,  éste incorpora todos los algoritmos al panel de Programa, donde podrán editarse, pero no pueden incorporarse más salvo que la edición se realice directamente en el campo de edición de texto. No obstante, es aconsejable no incorporar más algoritmos sino definirlos como funciones algorítmicas.

    En la versión 5 hay dos únicos algoritmos, accesibles desde el panel de Programa, que son INICIO y CÁLCULOS.

    Los parámetros de un algoritmo son los siguientes (ver imagen):

    Parámetros de un algoritmo

    Parámetros de un algoritmo

    id
    Es el identificador del auxiliar.

    En el caso de una función o algoritmo debe incluir los parámetros de los que dependa escritos entre paréntesis y separados por comas. Por ejemplo: f(x,y,x).

     

    evaluar
    Es un selector con dos posibles valores: siempre o una_sola_vez.

    Permite definir si el algoritmo deben evaluarse cada vez que el usuario modifica un control o sólamente una vez al iniciarse la escena.

    Es importante seleccionar una_sola_vez cuando sea factible para que el funcionamiento de la escena sea más rápido.

    inicio
    En el campo “inicio” puede escribirse una serie de asignaciones y llamadas a otros algoritmos o funciones separadas por punto y coma (;). Todo lo que haya en este campo se ejecuta al inicio del cálculo.
    hacer
    En el campo “hacer” puede escribirse una serie de asignaciones y llamadas a algoritmos o funciones separadas por saltos de línea.

    Lo que hay en “hacer” se ejecuta repetidamente hasta que la condición mientras deja de cumplirse o se ha llegado a 10000 repeticiones (este límite es un sistema de seguridad para proteger al autor y al usuario de errores que pudiesen bloquear el navegador). 

    mientras
    En el campo “mientras” se debe escribir una expresión booleana. 

    Si este campo se deja en blanco el algoritmo realiza las asignaciones especificadas en hacer, sólo una vez.

     

    La estructura de los algoritmos de Descartes es en realidad un bucle de programación, que corresponde al “do… while” de los lenguajes C y Java y al “repeat… while” de Pascal.

    Para realizar una asignación condicional se puede utilizar la construcción: A?a:b donde A es una expresión booleana y a y b son los dos valores que se asignarán según se cumpla o no la condición A. Por ejemplo y=(x>0)?sen(2*pi*x):0 asigna a y el valor sen(2*pi*x) si x>0 y asigna 0 si x<=0. Esta construcción corresponde (parcialmente) al “if… else” de los lenguajes de programación.

    La combinación de bucles  iniciohacermientras, las asignaciones condicionales   A?a:b y la posibilidad de llamar algoritmos desde otros algoritmos ofrece muchas posibilidades para la programación de procesos de cálculo relativamente complejos.

    El panel de algoritmos permite decidir si éstos se evalúan una sola vez o siempre. Los algoritmos pueden servir para inicializar vectores. Los que se evalúan una sola vez se ejecutan sólo al iniciarse la escena y cuando se pulsa el botón inicio, por lo que sirven para inicializar vectores que permanecen constantes durante toda la interacción del usuario con la escena. Los algoritmos que se evalúan siempre, se ejecutan cada vez que hay un cambio en un control, ya sea numérico o gráfico, con lo cual sirven para evaluar vectores que dependen de los parámetros de los controles. Cuando un algoritmo se llama desde otro, se ejecuta, independientemente de si está marcado como evaluar una sola vez o siempre.

    La estructura de bucles iniciohacermientras de los algoritmos se utiliza también en las funciones algorítmicas y en la animación. De hecho la animación es un algoritmo especial que refresca la escena después de cada paso por hacer.