MSWLogo por Pedro

MSWLogo_por_Pedro.es
Murcia
30007

pedro.alcarazg@gmail.com

Variables globales y tipos de variables

Tipos de variables

Carga VARIABLES
MSWLogo tiene varios tipos de variables:
  • Número
  • Palabra
  • Lista
  • Matriz (matrices multidimensionales, no las vamos a usar)
Cada tipo de variable tiene sus propiedades. Los dos últimos no son variables, sino conjuntos.
  • Los números son, obviamente, números: 23 -56 4.5 (Usa punto en vez de coma)
  • Las palabras empiezan (no acaban) con comillas dobles ( " ): "Hola.

Si después de las comillas hay un espacio, pasará lo mismo que (CAR 32)

  • Una lista empieza y acaba con corchetes [ ]
  • Una matriz es más eficiente que una lista, pero es más compleja de introducir y tiene el tamaño limitado.
Los elementos vacíos de una matriz son, en realidad, listas vacías
Para crear una palabra con varias palabras o números, usa PALABRA :dato :dato (PALABRA :dato :dato ...)
Para crear una lista con varias palabras o números, usa LISTA :dato :dato (LISTA :dato :dato)
El comando ELEMENTO funciona con cualquier tipo de variable.
Para crear una matriz, sigue los siguientes pasos:
  1. Piensa que tamaño quieres que tenga
  2. Escribe: MATRIZ :tamaño
  3. Para cada elemento, escribe: PONELEMENTO :índice :matriz :dato
En el programa hay una matriz, llamada matriz, que contiene {[] [] [] 3}
Usa PONELEMENTO para llenarla
Pulsa el botón para ver ejemplos

Una matriz puede contener matrices y listas, y una lista también. ¡De hecho, al crear una matriz la matriz empieza con listas vacías!

Variables globales y locales

Nuestra matriz es una matriz global, al contrario que las que llevamos usando hasta ahora.
Voy a mostra una comparación entre los dos tipos de variables:
Locales Globales
Se definen en la primera línea del programa, o con el comando LOCAL :nombre Si no existe una variable local con ese nombre, se usan este tipo de variables.
Se define siempre en el programa y no se guarda. Se define fuera del programa y se guardan junto con los procedimientos. Puede aumentar el peso de un archivo.
Se pueden compartir pasándolas como argumentos. Se comparten siempre, por lo que cualquier procedimiento que no la tenga puede modificarla.
Las variables locales siempre tienen prioridad sobre las globales, si se define en el procedimiento una local con el mismo nombre que una global.
Compobemoslo con los procedimientos VARIABLEGLOBAL y VARIABLELOCAL: El primero usa un dato que viaja con el archivo y el segundo define su propio dato. Las variables locales son más resistentes a los posibles problemas que puedan aparecer si borras la variable global. ¡Compruébalo! Borra la línea que pone:
Haz "b 10
Y prueba de nuevo los procedimientos.