Ayuda‎ > ‎Cómo publicar apps‎ > ‎

Las variables

Una variable podríamos verla como una caja que tiene un nombre y a la cual se le puede introducir (asignar) un valor en un momento dado, y en cualquier otro momento, podemos utilizar (leer) dicho valor. El valor de la variable podrá cambiar. 

Pues eso, que una variable siempre tiene un nombre, que se le asigna un valor en un momento dado, y que, o se puede leer o utilizar dicho valor, o cambiarlo por otro valor en cualquier momento.

Muy bien, muy bonito eso de las variables y de los dibujitos, pero ... ¿Para qué me sirve eso en una aplicación? ¿Cómo puedo utilizarlo en AppInventor?

Lo primero, para crear una variable en App Inventor nos tenemos que ir a

1



Lo arrastraremos al espacio de trabajo y le cambiamos la palabra variable por el nombre que tendrá la variable, en este caso, vDiferenciaEdad:

2

Como puedes observar, nos aparece un símbolo de Advertencia! 

que indica que no está completo, que tenemos que darle un valor. Lo que estamos haciendo es "definirlo", es decir, le estamos diciendo a App Inventor que tenemos un elemento, en este caso llamado vDiferenciaEdad, que vamos a utilizar en nuestra aplicación. Pero que le tenemos que dar un valor en su definición, que en este caso será 0



Una vez "definida" la variable, podremos utilizarla en el botón btnMayorEdad, en su evento .Click. Pero...¿dónde está esa variable que hemos definido? ¿Cómo la utilizamos? Cuando poníamos un control en el Diseño aparecía directamente en My Blocks, pero una variable...¿dónde?. Para acceder a las variables que definamos (o cualquier elemento que definamos como procedimientos, funciones, ...), tendremos que acceder a :



Chan Chan !!! Aquí se irán "guardando" todos los elementos que vayamos definiendo en nuestro programa, pero ¿Por qué hay 2 vDiferenciaEdad? Bueno, pues muy sencillo:
5

El bloque global contiene el valor de la variable. Hace referencia al valor que ya tiene la variable. Cuando queramos utilizar el valor que tiene guardada dicha variable, utilizaremos este bloque.


E
bloque set global sirve para establecer un valor para la variable. Este bloque es el que sirve para darle un valor a la variable. Cuando queremos cambiar el valor de la variable (lo que se guarde dentro de la caja) utilizaremos este bloque

Vamos a verlo con un ejemplo: Una app le pregunta al usuario su edad (la debe introducir en una caja de texto en la pantalla) y le dice los años que le faltan para los 18:
  1. Le pregunto al usuario (mediante una caja de texto en el interfaz del móvil) su edad
  2. Calculo los años que le faltan para los 18 y guardo el resultado en la variable vDiferenciaEdad


 3. A continuación usamos la función make text para "sumar" (en realidad se dice concatenar) las cadenas de texto "Te faltan" "???" "años para tener 18 años".                  Donde pone "???" aparecerá el valor almacenado en la variable vDiferenciaEdad.

        4. Muestro en una etiqueta llamada lblMensaje ese texto. Algo así como "Te faltan 3 años para tener los 18 años"



Fuente del ejemplo y de las imágenes 

Algoritmia teatralizada

Lo que acabamos de ver arriba es un algoritmo y es muy, muy, muy importante en programación. Para explicarlo de forma sencilla, el algoritmo es un conjunto de instrucciones o pasos detallados que sirven para resolver un problema. Los algoritmos son previos a la programación: primero diseñamos el algoritmo, es decir, describimos con nuestras palabras los pasos que deberá hacer la aplicación, y luego los "traducimos" al lenguaje de programación (en nuestro caso, a los bloques de AppInventor)

Hay cosas que no se entienden hasta que se tocan con las manos. Por eso vamos a hacer una obra de teatro en la que representamos el algoritmo explicado arriba, el de cálculo de los años restantes para tu mayoría de edad. 

El escenario de esta obra tiene dos áreas: 
  • La vista diseñador (pizarra)
  • El editor de bloques (resto del escenario)
Este es su guión:
guión


En la obra salen los siguientes personajes:
  • Caja de texto con la edad del usuario, interpretado por...
  • Etiqueta con el mensaje de salida ("te faltan.... para los 18 años"), interpretado por...
  • La definición def variable as, interpretado por...
  • La variable global DiferenciaEdadinterpretado por...

  • El literal number 18interpretado por...
  • El literal number 0interpretado por...
  • El literal text Te faltan , interpretado por...
  • El literal text para cumplir 18 años, interpretado por...

  • La función set global to, interpretado por...
  • La función set label.text to, interpretado por...
  • la función make text interpretado por...
  • La función resta   -   interpretado por...
El director debe comprobar que cada actor se ha puesto el disfraz adecuado, colocarle en el escenario y explicarle lo que debe hacer en la obra.

disfraces


Para interpretar la obra haremos lo siguiente:
  • Cada actor debe ponerse su disfraz correspondiente: cajas para las variables, carteles para funciones y literales. Además necesitaremos post-it para los valores (nombres de variables, cajas de texto, etc). Para representar los datos usaremos tarjetas con un post-it.  
  • Solo los actores que interpreten funciones pueden moverse por su cuenta (son como los verbos, hacen cosas), mientras que los literales y variables (son como nombres) necesitan ser colocados, movidos, por los actores que interpreten funciones. 
  • Las funciones deben moverse en el orden adecuado. 
  • Para representar la conexión entre bloques, los actores se agarrarán de la mano. Por ejemplo, el literal number solo tiene un enganche o conexión, asi que solo puede usar una mano. Los bloques de las funciones se pueden conectar por dos lados, así que puede usar las dos manos.

¿Y la profe? Será el público, su única intervención será aplaudir (o no) al final de la obra.

Para casa

Ahora que lo has entendido, codifica el programa que hemos estado interpretando, con el siguiente añadido: Varía esta aplicación para que si, por ejemplo, insertamos un 13, nos muestre un mensaje como el siguiente: "Tienes 13 años. En tu próximo cumple llegarás a los 14 años y te quedan 5 para cumplir los 18". Lógicamente, si se introduce otra edad, hará los cálculos sobre dicha edad introducida.

Esta app, aburrida pero necesaria, vale 2 puntos.

La idea de teatralización del algoritmo sale del curso de robótica educativa de Complubot al que asistí el pasado 1-1-13


Comments