Creación de materiales didácticos Aplicaciones para dispositivos móviles Guía Rápida Datos y variables Los datos básicos que soporta app inventor son cadenas de texto, números, valores lógicos (verdadero, falso) y colores: Según el tipo de dato, disponemos de diferentes operaciones para hacer sobre él. En el editor de bloques, las encontramos agrupadas dentro de la categoría built-in: Usamos variables para guardar el un dato dentro de nuestro programa. Para definirlas, usamos el bloque “def variable as”: Donde en el texto en negrita especificamos el nombre que queremos usar: Cada variable definida tiene dos métodos: un para leer el valor de la variable (get), y otro para establecerlo (set). Ambos bloques los podemos encontrar en My Blocks – My definitions: Cadenas de texto Uno de los tipos de datos fundamentales en todos los lenguajes de programación son las cadenas de texto y App Inventor permite trabajar cómodamente con ellas gracias. En la categoría Built-in – Text podemos ver la lista de bloques de los que disponemos para trabajar. Concatenación de cadenas Para concatenar dos cadenas, tenemos un bloque llamado join: Como ejemplo de su uso, podemos ver el programa Concatenar.zip (moodle): Cuando el usuario pulsa botonConcatenar, el programa une el texto de labelResultado y el de textEntrada y se lo asigna nuevamente a labelResultado. Además, el programa muestra la longitud (en caracteres) de la cadena. Como podemos ver, a pesar de que length es un número (longitud de la cadena), el bloque join lo acepta y lo convierte a un texto. Este mecanismo se conoce como conversión de tipos. Comparar cadenas En muchas ocasiones es necesario comparar dos o más cadenas entre sí por orden alfabético. Para tales casos, disponemos de los siguientes bloques: Los tres bloques generan como resultado un valor lógico (true, false), dependiendo de si una cadena es menor que la otra (aparece antes en el diccionario) o si por el contrario son la misma. Es importante tener en cuenta que en el orden alfabético de los computadores las letras mayúsculas son menores que las minúsculas (Hola < hola). Para comprar cadenas sin tener en cuenta las mayúsculas y minúsculas, debemos convertirlas previamente (mayúsculas o minúsculas), usando los siguientes bloques: El primero de ellos convierte a mayúsculas y el segundo a minúsculas. Como ejemplo, el siguiente bloque vale true: Búsqueda y reemplazo de texto Para buscar o reemplazar tengo, tenemos los siguientes bloques: El bloque “starts at” busca una subcadena (piece) dentro de la cadena text y devuelve su posición. Si no se encuentra, devuelve 0. El bloque contains devuelve true o false dependiendo de si una cadena está contenida dentro de otra. El bloque replace all nos permite reemplazar todas las ocurrencias de una subcadena por otra. División de cadenas Para dividir cadenas podemos usar los bloques “split” y “split at first”. El siguiente ejemplo hace uso de este tipo de bloque para contar palabras: Números y matemáticas La categoría Built-In – Math contiene todos los bloques para trabajar con datos numéricos. Comparar números: Aritmética básica: Máximos y mínimos: Otras operaciones: Como ejemplo, podemos ver el programa Pitagoras.zip para calcular hipotenusas de triángulos rectángulos: En este caso, el valor de los dos catetos se almacenan en las variables c1 y c2, y se calcula el valor de la hipotenusa, almacenándolo en la variable h2 Estructuras de datos: listas Para organizar los datos de una forma más compleja, App Inventor nos ofrece la posibilidad de usar las listas (Built-In – Lists). Una lista no es más que un conjunto de datos al que podemos acceder y manipular usando diversos bloques. Para construir una lista, usamos el bloque make a list: En el ejemplo de arriba, se construye una lista con dos cadenas, otra lista anidada con 3 números y, por último, otro número más. Las operaciones que podemos realizar con listas incluyen búsqueda de elementos, inserción, borrado, reemplazo... Datos lógicos Un dato lógico se usa como resultado de un test, y puede ser verdadero o falso: Para trabajar con valores lógico, App Inventor ofrece una serie de operadores condicionales: • Not: invierte el valor lógico • And: es true si todos los test son ciertos • Or: es true si alguno de los test es cierto • Operador de igualdad: vale true si las dos expresiones son correctas.