Guardando información en variables

Una variable es un espacio donde podemos guardar información de forma temporal. Por ejemplo, podemos crear una variable llamada "marcador" donde guardar la puntuación de un videojuego mientras el usuario está jugando.
En este capítulo vamos a aprender a usar variables en nuestras aplicaciones.

 Introducción

Una variable es un espacio donde podemos guardar información de forma temporal. A cada variable le asignamos un nombre para que nos sea más sencillo recordar la información que contiene. Algo así como un cajón en el que guardamos información. Por ejemplo, podemos crear una variable llamada "marcador" donde guardar la puntuación de un videojuego mientras el usuario está jugando.
La información que contienen las variables se almacena en la memoria de nuestro dispositivo mientras nuestra aplicación está funcionando y se borra cuando nuestro programa termina. Por eso se dice que las variables guardan información de forma temporal. Más adelante veremos cómo hacer para conservar nuestros datos de forma permanente, para que podamos recuperar nuestra información aunque apaguemos el dispositivo o cada vez que arranquemos nuestra aplicación, por ejemplo, para mantener una tabla de mejores puntuaciones en nuestro videojuego entre cada partida.
Dentro de las variables podremos guardar números, texto o una condición lógica (verdadero o falso) también llamadas variables booleanas en honor a George Boole, considerado padre de las ciencias de la computación.

 Creando variables

Vamos a aprender a usarlas con un sencillo ejemplo.
Comienza un nuevo proyecto y llámalo "variables".
Desde el Diseñador coge tres etiquetas y un botón.
Cambia el texto del botón y pon, por ejemplo: "ok". Lo demás lo puedes dejar como está. Ahora vamos al Editor de bloques.
Para crear variables nuevas usamos el "initialize global name to" de color naranja que encontrarás dentro de la categoría Variables. Coge tres bloques iguales y ponlos en tu programa.
Verás que App Inventor les ha dado un nombre automáticamente pero vamos a cambiarlos. A la primera variable llámala "nombre", a la segunda "edad" y a la última llámala "soltero".
Ahora vamos a asignar valores a estas variables.
Para la primera, “nombre”, vamos a usar una cadena de texto. Selecciona un bloque de texto "     " de la categoría Text. Pégalo a la variable nombre y escribe el nombre que quieras.
Para la segunda variable, “edad”, vamos a crear un bloque numérico. En la categoría Math, selecciona el bloque "0" y pégalo a la variable edad. Cambia el número y pon la edad que quieras.
Por último, vamos a crear una variable lógica (booleana). Selecciona la categoría Logic (lógica) y coge un bloque true (verdadero) o false (falso) y pégalo a la variable soltero.
Ya tenemos tres variables creadas y hemos asignado un valor a cada una. Vamos a mostrarlas ahora en nuestra aplicación.
Desde Screen1 coge el evento button1.Click y ponlo en tu programa.
10 Ahora vamos a cambiar las etiquetas. Coge el bloque "set Label.Text to" de cada una de las tres etiquetas y ponlas dentro del evento .Click del botón.
11 Sólo queda pasarle a cada etiqueta el valor que queremos que muestre y que corresponde a cada una de las variables.
12 Cuando creamos variables en nuestras aplicaciones estas se encuentran siempre dentro de la categoría Variables. Aparece un bloque llamado “get” que sirve para utilizar cada una de las variables creadas. También tenemos "set… to" para cambiar el valor de la variable. En un segundo veremos cómo usarlos. De momento coge cada una de las variables con “get” y pégalas a cada bloque "set label.Text to".

13 Prueba a pulsar el botón.
Verás que el valor que contiene cada una de las variables aparece en pantalla simplemente usando el bloque con el nombre de la variable. Vamos a ver ahora cómo cambiar el valor de las variables directamente desde nuestro programa.

 Modificando su valor

Ya hemos visto que el valor de las variables se puede cambiar usando el bloque "set… to" correspondiente a cada variable dentro de la categoría Variables.
14 Coge el bloque "set… to", escoge la variable "nombre" y ponlo dentro del evento .Click, justo antes de los bloques "set label.Text", al principio.
15 Haz lo mismo con el bloque "set... to" de la variable "edad". Ponlo también al principio.
16 Por último, haz lo mismo con el bloque "set... to" de la variable "soltero". Ponlo también al principio.
17 Ahora seleccione el bloque “join” en la categoría Text. Este bloque te permite unir dos cadenas de texto. Pégalo al bloque "set global nombre to".
18 Para la primera cadena de texto vamos a usar la variable nombre (ya sabes dónde encontrarlo) y para el segundo bloque de texto crea un nuevo bloque de texto y cambia el texto por " el magnífico".
19 Ahora vamos con la edad. Selecciona la suma en la categoría Math.
20 Pégalo al bloque "set global edad to".
21 Para el primer valor vamos a usar la variable edad y para el segundo crea un nuevo bloque numérico "0" y añade, por ejemplo: 100 así:

22 Por último, crea un bloque lógico nuevo y pégalo al bloque "set global soltero to". Cambia el valor por el contrario al que usaste al principio.
Verás ahora que aunque habíamos asignado a cada variable un valor inicial (el nombre, la edad y el estado civil) ahora hemos modificado el valor de las variables dentro de nuestro programa, añadiendo una cadena de texto al nombre, 100 años más a la edad y cambiando el estado. Esta es la forma de crear, usar y manipular variables dentro de nuestros programas.
23 ¿Qué pasa si pulsamos el botón más veces?

 Componentes de pantalla con variables

Muchos componentes de la pantalla como los botones, las etiquetas y las cajas de texto guardan información en variables. Por ejemplo, cuando asignamos un texto a una etiqueta usando el bloque "set label.Text" este texto se guarda en realidad dentro de una variable llamada "label.Text" que encontrarás dentro del componente. El tamaño del texto o el tipo de fuente también se encuentran guardados dentro de variables. De esta manera, no siempre es necesario crear variables y basta con que uses las variables que tienen los propios componentes del interface de usuario.
Por ejemplo, un usuario puede meter su edad en un componente textbox y tú puedes acceder a este dato usando la variable textbox.Text, que es donde se ha guardado, sin necesidad de crear una variable a propósito. Esto lo hemos visto en el capítulo "Componentes para pedir información". Repásalo para entender mejor cómo lo hemos usado en cada caso.