Este artículo es parte de una serie sobre el funcionamiento y la programación de la tarjeta Micro-bit. Consulte los enlaces al final de este artículo para ver otros de la misma serie en el sitio.
Alfonso Pérez
La tarjeta electrónica micro:bit puede ejecutar código o instrucciones sobre Textos. Los textos son como secuencias de caracteres que se almacenan en la memoria de la tarjeta micro:bit. Observe la figura 1:
Como podemos observar hay algunos textos. La memoria de la tarjeta micro:bit, es muy similar a una serie de cajones o gavetas. Cada cajón representa un byte, y en cada byte se puede almacenar un carácter. En este capítulo vamos a estudiar los bloques de programación o funciones que pueden manejar textos. Para acceder a tales bloques, puede ir hasta la función: Avanzado, como muestra la figura 2:
Se desplegará un menú como el siguiente de la figura 3, en el cual se encuentra la función TEXTO:
COMO CREAR UN TEXTO.
Para crear un texto, vaya a la función “Variables” y cree una nueva variable. Como por ejemplo: “miNombre”. (figura 4)
En el bloque: “al iniciar”, encaja un bloque: “establecer” como muestran la figura 5:
Por defecto el programa “MakeCode”, crea la variable de tipo numérico. Para hacer esta variable de tipo Texto, vaya a la función: “Texto”, arrastre y encaje el siguiente bloque como muestra la figura 6:
Después de esto, el número que estaba por defecto, será cambiado por dobles comilla (“”) como muestra la figura 7:
Listo, ya puedes digitar letras y mostrarlas en el display como muestra el siguiente programa:
CARÁCTER EN.
El siguiente es un bloque que permite averiguar qué carácter se encuentra en una determinada posición del texto.
Textos son como cadenas de caracteres donde cada carácter se encuentra en una determinada posición (index). Para entender mejor este concepto observa la siguiente figura 8:
Observa en el “Texto1” que la letra “u” de la palabra “mundo”, se encuentra en la posición 6. La letra “d” de la palabra “mundo” se encuentra en la posición 8. Observa en el “Texto2” que la letra “M” de la palabra “Maria” se encuentra en la posición 0. La letra: “y” está en la posición 6. El siguiente programa muestra en el display la letra “M” del texto “Saludo”:
LONGITUD DE.
Es posible conocer cuántos caracteres tiene un texto. El siguiente bloque permite averiguar esa cantidad:
Veamos un ejemplo práctico para observar cómo funciona este bloque. En el bloque de código: “para siempre”, encaje el bloque: “longitud de” como muestra el siguiente programa:
Ejecuta el programa y observa el resultado es 4. Experimente escribir su nombre para ver la cantidad de caracteres que tiene en la tarjeta micro:bit.
UNIR.
El bloque: “UNIR” permite que 2 textos se concatenan o unan, para formar un solo texto. La siguiente imagen muestra el bloque UNIR:
Experimente el siguiente programa ejemplo y observa los resultados en la matrix de LEDs:
CONVERTIR DE TEXTO A NÚMEROS.
El siguiente bloque permite convertir un texto que contenga solo valores numéricos a un número. Este bloque recibe como parámetro un texto y retorna un número. La siguiente figura muestra este bloque:
El siguiente programa ejemplo muestra cómo podemos insertar el bloque: parse, en el bloque: mostrar número.
Este bloque también permite convertir números de punto flotante, como por ejemplo: 7.9 o 0.8. También es posible la conversión para números negativos, es decir que el texto puede incluir el carácter “-”.
DIVIDIR (SPLIT).
El siguiente bloque permite dividir un texto en textos más pequeños utilizando una cadena de separación. La siguiente figura muestra este bloque:
Por ejemplo el siguiente bloque devuelve o retorna una matriz de textos, pues el texto de separación es la coma (,).
INCLUYE.
El siguiente bloque permite determinar si un texto contiene o incluye una cadena de caracteres (subtexto) específica. Este bloque retorna verdadero, si el subtexto se encuentra en el texto que está siendo examinado. Si el subtexto no se encuentra, el bloque retorna falso. La siguiente figura muestra este bloque:
Veamos un programa ejemplo para entender mejor este bloque. Note que hemos usado el bloque de lógica condicional SI (if), para verificar si se cumple el bloque: “includes”.
Este programa ejemplo muestra la siguiente imagen:
Porque el subtexto “jugo”, está incluido en la variable Bebidas. Sin embargo el siguiente programa:
muestra la siguiente imagen porque el subtexto “tugo”, no se encuentra en la variable Bebidas.
Otra cuestión a tener en cuenta, es que el bloque: “includes”, distingue entre letras mayúsculas y minúsculas (case sensitive). Si buscamos el subtexto ”Jugo”, el resultado será falso, pues en la variable: “Bebidas”, el subtexto “jugo” está con letra minúscula.
ENCONTRAR EL INDEX DE.
El siguiente bloque permite obtener el índice (posición) de la primera aparición de un subtexto, en el texto. Este bloque retorna un número que es la posición en el texto, donde se encuentra el subtexto. Este número es -1 si el subtexto no se encuentra en ninguna parte del texto. La figura 12 muestra el bloque:
Veamos un programa ejemplo para comprender el uso de este bloque.
Este programa muestra en la matriz de LEDs el número 13, pues el subtexto “leche” se encuentra en esta posición. Caso el subtexto no se encuentre dentro del texto, el valor retornado por el bloque, será -1.
ESTÁ VACÍO.
El siguiente bloque determina si una cadena de texto tiene caracteres o no. Este bloque retorna un valor booleano que es verdadero (true), si el texto no tiene caracteres o falso (false), si hay uno o más caracteres. La siguiente figura muestra este bloque:
El siguiente programa muestra cómo utilizar este bloque:
Este programa mostrará el texto: “Vacío”, en la matriz de LEDs, porque la variable: “Bebidas”, fue inicializada sin ningún carácter, es decir está vacía, por tanto, el bloque: “is empty”, retorna verdadero.
SUBCADENA.
El siguiente bloque toma una parte de un texto para hacer una cadena de texto más pequeña (substring), por ese motivo este bloque se llama: “subcadena de”. Este bloque toma 3 parámetros:
El texto principal.
La posición desde donde quiere conseguir la subcadena.
El ancho o cantidad de caracteres que se quiere copiar.
La siguiente figura muestra este bloque:
Por ejemplo si tenemos un texto: Hola Mundo!!. Podemos obtener cualquier parte de este texto con el bloque: “subcadena de”. El siguiente programa ejemplo muestra cómo hacer para extraer el substring o subcadena: Mundo.
Puede experimentar con diferentes posiciones y longitudes para ver los resultados en el display de LEDs 5x5.
COMPARAR.
El siguiente bloque permite comparar 2 textos para ver si son iguales. Este bloque se llama “compara”. La figura 15 muestra el bloque:
Este bloque retorna un número para indicar la comparación de la siguiente manera:
-1 : Este texto es menor que el texto comparado.
0 : Este texto es igual al texto comparado.
1 : Este texto es más grande que el texto comparado.
La comparación está basada sobre el orden de sus caracteres. Por ejemplo: si comparamos “bueno” con “malo”, el texto bueno es menor porque el carácter “b” está ubicado en el alfabeto, antes del carácter “m”. Si los 2 textos son iguales, entonces el valor retornado será igual a 0. Veamos un programa práctico para entender mejor este bloque.
Experimente modificando los textos para ver los resultados.
CONVERTIR UN NÚMERO A TEXTO.
El siguiente bloque permite convertir cualquier tipo (booleano, entero, etc) en un texto. El bloque se llama: “convert to text”. La figura 16 muestra este bloque:
Este bloque toma un parámetro que es un valor de cualquier tipo, para convertir a texto. El bloque retorna un texto representando el valor pasado como parámetro. Veamos un ejemplo práctico:
En el programa anterior, hemos creado una variable de tipo entero llamada: “Años” y se le ha asignado el valor de 37. Después hemos creado una variable de tipo texto llamada: “miEdad” y hemos convertido el valor de la variable: “Años” para el texto. Luego en el bloque: “para siempre”, mostramos el texto que fue almacenado en la variable: “miEdad”. Puede experimentar con diferentes valores para observar los resultados.
CREAR TEXTO.
El siguiente bloque permite hacer un texto de un único carácter, a partir del número código del carácter. Cada letra o número del alfabeto, necesita un número para identificarlo de las demás letras. Estos números están basados en el conjunto de caracteres ASCII. La siguiente figura muestra este bloque:
PROGRAMA EJEMPLO CON TEXTO.
El siguiente programa permite concatenar o unir varios tipos de variables, los cuales serán mostrados en el display de LEDs.
En el bloque: “al iniciar” creamos y asignamos 3 variables llamadas: “Nombre” de tipo texto, “Profesión” de tipo texto y “Edad” de tipo entero. Luego en el bucle: “para siempre”, usamos el bloque: “unir” para concatenar las 3 variables. Observe que para la variable: “Edad” de tipo entero, es necesario usar el bloque: “convert to text” para convertirla a tipo texto. El texto concatenado es guardado o asignado a la variable: “TextoUnido” y finalmente es mostrado en el display de LEDs. Experimente cambiando los valores de las variables o los textos que contiene el bloque: “unir”. Normalmente en los sistemas con microcontrolador a este tipo de unión de textos, se le llama “formatear texto”.