• INICIO

    INICIO es un algoritmo incluido en todas las escenas a partir de la versión 5 de Descartes. Éste permite programar procesos de cálculo más o menos complejos que se ejecutarán una sola vez al iniciarse la escena, cuando se pulse en el botón inicio o cuando se ejecute la acción inicio.

    En la siguiente figura se muestra el panel de configuración.

    inicio

    El panel tiene un campo de texto etiquetado como inicio, un área de texto etiquetada como hacer y otro campo de texto etiquetado como mientras.

    • inicio. En este campo se puede escribir asignaciones y llamadas a algoritmos separadas por ; Todo lo que haya en este campo se ejecuta al inicio del cálculo.
    • hacer. En este campo se pueden escribir  asignaciones y llamadas a algoritmos separadas por saltos de línea. Lo que hay en «hacer» se ejecuta repetidamente siempre que la condición «mientras» sea válida.
    • mientras. En el campo «mientras» se debe escribir una expresión booleana. Lo que hay en «hacer» se ejecuta repetidamente mientras la condición «mientras» sea válida.

    La ejecución del algoritmo se lleva a cabo de la siguiente manera:

    • Paso 1. Se realiza las asignaciones y llamadas a otros algoritmos que se indican en inicio;
    • Paso 2. Se realiza las asignaciones y llamadas a otros algoritmos indicadas en hacer
    • Paso 3. Se comprueba si se cumple la condición contenida en mientras.
      • Si la condición mientras se cumple entonces vuelve al paso 2, esto es vuelve a ejecutar hacer y a verificar la condición mientras.
      • Este proceso continúa hasta que la condición mientras deja de cumplirse o se ha llegado a 10000 repeticiones (este límite es una válvula de seguridad para proteger al autor y al usuario de errores que pudiesen bloquear el navegador).
      • Si la condición mientras se deja en blanco el algoritmo realiza las asignaciones en hacer una sola 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 CALCULOS ofrece muchas posibilidades para la programación de procesos de cálculo relativamente complejos.

    En la siguiente escena se utiliza el algoritmo INICIO para asignar los valores que definen la posición inicial de las figuras que pueden desplazarse con los controles gráficos.

    (Puede descargar esta escena desde este enlace)