• Definiciones

    En el panel del editor de configuración etiquetado como «Definiciones» el autor de una escena de Descartes puede definir varios tipos de datos: variables, funciones, vectores y matrices.

    panelDef

    A la izquierda del Panel aparece la lista con todas las definiciones realizadas en la escena y seleccionando cualquiera de ellas se mostrarán sus parámetros específicos que serán diferentes según el tipo de dato seleccionado.

    Para crear una definición nueva hay que pulsar el botón + que se encuentra arriba a la izquierda de la lista (ver figura siguiente). Al pulsarlo, aparece una ventana de diálogo con un selector y un campo de texto. El selector sirve para elegir el tipo de auxiliar que se desea definir. Las opciones son: variable, función, vector y matriz.

    definiciones1

     Nota: Si se hace un clic sobre la etiqueta azul de Definiciones, aparecerá una ventana con un área de texto que contiene el código de todas las definiciones, una en cada línea. Este texto se puede editar manualmente y pulsando aceptar se actualiza el editor con los cambios realizados. Los autores experimentados pueden encontrar este método de edición muy cómodo y útil para cierto tipo de modificaciones.

    Una vez elegido el tipo de definición deseada el usuario debe escribir en el campo de texto el nombre del auxiliar que servirá de referencia para usarse en otras definiciones, en los gráficos o en la animación. El programa ofrece al autor un nombre por defecto que consta de una letra: v (variable), V (vector), matriz (M), f (función) según el tipo de definición, seguida de un número que corresponde a la posición de la nueva definición en la lista. Se recomienda al autor no utilizar los nombres por defecto sino asignar nombres adecuados al contenido de la escena y al significado de la definición.

  • Matriz

    Una matriz es un arreglo bidimensional de constantes. Si M es una matriz entonces M[i,j] es el elemento que está en la columna i+1 y en la fila j+1. Observe que la convención adoptada en Descartes no es la usual en la literatura matemática, es decir, el primer subíndice referencia al número de columna y el segundo al número de fila, lo que equivale a que Descartes trabaja internamente con la matriz traspuesta. También los subíndices se numeran desde 0, por tanto el número de fila y columna es uno más del que indica el subíndice respectivo.

    El panel de configuración de una matriz se muestra en la siguiente figura.

    Matriz con 2 filas y 3 columnas

    Matriz con 2 filas y 3 columnas

    El caso ahí reflejado se corresponde con una matriz de 3 columnas y 2 filas

    matriz con la que se desea trabajar

    matriz con la que se desea trabajar

    cuya identificación interna es mat. Y según el criterio indicado el elemento mat[1,0]=2 es el que está ubicado en columna 2 (1+1=2) y en la fila 1 (0+1=1) , es decir, internamente Descartes guarda la matriz traspuesta de la anterior:

    Matriz guardada por Descartes

    Matriz guardada por Descartes según la notación usual

    Los campos específicos para configurar una matriz son los siguientes:

    • Identificador de la matriz a través del cual se puede referenciar.
    • evaluar que puede tomar los valores «una-sola-vez» o «siempre» y hace que el vector tome los valores indicados en el campo de texto de inicialización sólo cuando se inicie la escena o cada vez que haya una interacción con la misma. Este parámetro ha quedado restringido a «una sola vez» en la versión 5, la actualización «una vez» cuando los valores se realizan mediante variables o cuando se desea «siempre» se realiza repectivamente usando los algoritmos Inicio y Cálculos.
    • columnas. Es el número de columnas de la matriz.
    • filas. Es el número de filas de la matriz
    • Área de texto. Es un campo de texto donde pueden escribirse asignaciones a los valores de la matriz, separadas por saltos de línea o por ;
      Por ejemplo, en la imagen anterior el identificador de la matriz es mat y tiene 3 columnas y 2 filas y sus elementos se definen como:
      mat[0,0]=1
      mat[1,0]=2
      mat[2,0]=3
      mat[0,1]=0
      mat[1,1]=-1
      mat[2,1]=1
    • archivo. Este parámetro no está operativo para matrices. Para una carga dinámica de una matriz a partir de un fichero es necesario utilizar funciones según se describe en el artículo ficheros y matrices.

    El área de texto que aparece en el panel de configuración de una matriz sirve para asignar valores a (o inicializar ) los elementos de la matriz.  El contenido del área de texto que se ofrece por defecto contempla una asignación a todos elementos del valor 0, no obstante los elementos no inicializados de un vector tienen por defecto ese valor.

    Para inicializar una matriz no es necesario utilizar el área de texto, también se puede utilizar un algoritmo descrito en una función algorítmica o bien mediante un fichero. Estas dos últimas formas son las más aconsejables cuando la matriz tiene muchos elementos. En la siguiente escena se muestra un ejemplo de estas posibilidades.

    Si se desea ver cómo está realizado el objeto anterior puede descargarse desde aquí .

    En la escena anterior la opción de menú etiquetada como “Generar” permite asignar a cada elemento de una matriz denominada matr1 un valor aleatorio mediante una función que está reflejada en la siguiente imagen. En ella un ciclo que se ejecuta desde 0 hasta el número de columnas de dicha matriz (3 en este caso) asigna a cada uno de los elementos de cada fila (matr1[term,0] y matr1[term,1]) un número aleatorio en el intervalo [0, 20)

    Código para inicializar una matriz con valores aleatorios

    Código para inicializar una matriz con valores aleatorios mediante una función algorítmica

    En el artículo ficheros y matrices puede aprenderse cómo asignar valores a una matriz mediante el uso de ficheros y en él se describe cómo en la escena anterior se realiza esa asignación.

  • Vectores

    Un vector es una lista de variables. Un vector tiene un identificador y un tamaño que es su longitud o número de elementos o componentes. El ejemplo de la figura siguiente corresponde a un vector con identificador vect y de tamaño 3.

    vecDef

    La manera de hacer referencia a un elemento de un vector es escribir el identificador del vector seguido del número del elemento entre corchetes. Los elementos de un vector se numeran siempre comenzando por  cero.

    Los parámetros que permiten definir un vector son:

    • Su identificador que se introduce en un área de texto.
    • evaluar que puede tomar dos valores una-sola-vez o siempre y que hace que el vector tome los valores indicados en el campo de texto de inicialización sólo cuando se inicie la escena o cada vez que haya una interacción con la misma. Este parámetro en la versión 5 ha quedado limitado a actualizar sólo una vez, la actualización siempre se realiza mediante el algoritmo Cálculos y también se puede usar el algoritmo Inicio para asignar ese valor inicial a los elementos del vector.
    • tamaño. Es el número de elementos del vector.
    • Un  campo de texto donde pueden escribirse asignaciones a los valores del vector, separadas por saltos de línea o por punto y coma ‘;’. Si el vector, por ejemplo es de tamaño 3, entonces se puede escribir v[0]=1;v[1]=1.5;v[2]=-1.5.
    • archivo. Archivo de texto (se recomienda que lleve la extensión .txt) en el que aparecen en orden los valores de los elementos del vector, separados por un salto de línea. Los valores pueden ser numéricos o de cadena, en cuyo caso deben aparecer entre comillas sencillas, por ejemplo ‘valor’. Puesto que la definición de vectores se evalúa sólo una vez, la carga de valores de un vector mediante un fichero es estática, sólo se realiza esa vez y por tanto no permite abordar una recarga desde la definición del vector. Para una carga dinámica es necesario utilizar otras funciones que se describen en el artículo ficheros y vectores.

    El área de texto que aparece en el panel de configuración de un vector, sirve para asignar valores a (o inicializar ) los elementos del vector.  El contenido del área de texto es por defecto el que muestra la imagen, asignando cero a los tres elementos del vector. Los elementos no inicializados de un vector tienen por defecto el valor 0.

    Para inicializar un vector no es necesario utilizar el área de texto, también se puede utilizar un algoritmo descrito en una función algorítmica o mediante un fichero. Estas dos últimas formas son las más aconsejables cuando el vector tiene muchos elementos.

    En la siguiente escena se muestra un ejemplo de cómo asignar valores a un vector con datos que se pueden leer de un fichero o que se generan mediante una función.

     Si se desea ver cómo está realizado el objeto anterior puede descargarse desde aquí .

    En la escena anterior la opción de menú etiquetada como «generar» permite asignar a cada elemento del vector denominado vect1 un valor aleatorio mediante una función que está reflejada en la siguiente imagen. En ella un ciclo que se ejecuta desde 0 hasta la longitud del vector vect1 (vect1.long) asigna a cada elemento (vect1[term]) un número aleatorio en el intervalo [0, 20)

    Asignación de valores a un vector mediante una función algorítmica

    Asignación de valores a un vector mediante una función algorítmica

    En el artículo ficheros y vectores puede aprenderse cómo asignar valores a un vector mediante el uso de ficheros y en él se describe cómo en la escena anterior se realiza esa asignación.

  • Variables

    Las variables son los auxiliares más flexibles. Su valor puede ser cualquier expresión definida en términos de los parámetros de los controles, de otras variables que aparezcan antes en la lista o de x e y.

    varDef

    Las variables se evalúan cada vez que se utilizan, esto es lo que las hace tan útiles. Por ejemplo, si se define una variable como R=x^2+y^2, y se define una gráfica de tipo ecuación con la expresión R=2, entonces se obtiene la gráfica de la circunferencia de radio 2. En otras palabras, las variables pueden utilizarse como abreviaturas de expresiones más o menos complejas.

    Sólo hay dos variables numéricas «reservadas» que se corresponden con el número de Euler y con el número pi. Ambos se referencian con esos nombres. Se trata de variables que están pre-inicializadas, si el autor de una escena quisiera cambiar sus valores, podría hacerlo, aunque evidentemente esto no es aconsejable.