Variables y Constantes en NXT-G

This entry is part 1 of 11 in the series NXT-G

variable_iconoLas variables y las constantes permiten guardar información en nuestro programa, para poder reutilizarla más fácilmente, pero ya comentamos en el artículo sobre manejo de ficheros que su principal problema es que dicha información está almacenada en la memoria RAM, y es por lo tanto volátil. Es decir, el contenido de esas variables o constantes se borrará del ladrillo al finalizar el programa o si hay una interrupción del suministro eléctrico. Veamos cómo se tratan las Variables y Constantes en NXT-G.

Con todo y con eso, las variables pueden facilitar mucho la vida del programador, y es por eso que queremos enseñaros las bases para utilizarlas correctamente en vuestros programas.

Primero veamos dónde están los iconos: (se ha hecho un retoque de imagen para que se vean los dos juntos)

variable_constante_donde
Y ahora vamos a familiarizarnos con sus iconos y menús:

- Variable

variable_menu

El menú nos muestra a la izquierda una lista de variables ya existentes (ahora veremos cómo se editan), y en la parte derecha: Acción (Leer/Escribir) y Valor (en este ejemplo Verdadero/Falso porque la variable seleccionada es de tipo lógico).

Podemos crear, por tanto, 3 tipos de variables: Lógica (Verdadero/Falso), Numérica (valor numérico, independientemente de su longitud o signo) o Textual (cualquier cadena de caracteres).

- Constante

constante_menu

Este menú es ligeramente distinto, en la parte izquierda tenemos las opciones de “Elegir de la lista” o “Personalizar”. Si elegimos la primera opción se nos mostrarán las constantes ya creadas para que seleccionemos una. Si por el contrario, elegimos la segunda tendremos que especificar: Tipo de datos, Valor y Nombre.

Los tipos de datos son los mismos que para las variables. Es muy importante entender que las constantes tienen el mismo valor durante toda la ejecución del programa y NO admiten entrada de datos, hay que editar el valor que almacenan de forma manual (desde la opción Valor).

Ya hemos visto cómo se trabaja con variables/constantes que ya existen, vamos a aprender a crearlas o editarlas.

Para ello tendremos que acceder a su menú de edición:

Variable

variable_editar

Constante

constante_editar

Vamos a hacer algunos ejemplos:

1. Variables

Haremos un programa que almacene en una variable la lectura del sensor de rotación y después acceda a esa variable para presentar el dato en pantalla.

Nota: la lectura del sensor de rotación es numérica, hay que configurar la variable en el tipo correcto.

Lo primero es “Crear” nuestra variable, a la que llamaremos “Sensor_Rotacion” (“Edición –> Definir variables”)

1a-editar-variable

Ahora tenemos que usarla (“Paleta completa–> Datos–> Variable”)

1a-usar-variable-escribir

Cogemos el bloque del sensor de rotación y sacamos un cable de datos hacia nuestra variable.

1a-Parcial

Añadimos nuevamente el bloque de variable, pero esta vez configurada para leer.

1a-usar-variable-leer

Completamos el programa, que será algo así:

1a-fin

2. Constante

Vamos a hacer un ejemplo clásico del uso de constantes: haremos un “sigue líneas”, conociendo de antemano el valor umbral y almacenando dicho umbral en una constante que luego utilizaremos. (Este sigue líneas es mejorable, por supuesto, sólo queremos ponerlo como ejemplo para el uso del bloque de Constante)

Lo primero es “Crear” nuestra constante, a la que llamaremos “Maximo” (“Edición –> Definir constantes” o seleccionando “Personalizar” en su menú).

2a-editar-constante

Ahora usaremos esa constante para fijar el umbral de nuestro sensor de luz (entrada de datos “Momento de disparo”) y usaremos la salida del comparador del sensor (la que compara el valor de entrada con el valor umbral) para nuestra bifurcación.
2a-Parcial

Completamos el programa con el movimiento de los motores e incluimos un bucle, al final tendremos un programa parecido a este:

2a-fin

Series NavigationTrigonometría en NXT-G >>
facebooktwittergoogle_plusredditpinterestlinkedinmailfacebooktwittergoogle_plusredditpinterestlinkedinmail

facebooktwittergoogle_pluslinkedinrssyoutubefacebooktwittergoogle_pluslinkedinrssyoutube

Comments are closed.