Tipos de datos en NXT-G

TiposDatosCuando hablamos de programación, es imprescindible hablar de los tipos de datos con los que trabajaremos en ese lenguaje en concreto. Nosotros vamos a centrarnos hoy en los tipos de datos en NXT-G y cómo se trabaja con ellos. Intentaremos explicar en qué consisten las diferencias y cómo utlizarlos, leerlos, escribirlos o modificarlos a nuestro gusto.

En los lenguajes de programación un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar (wikipedia). Es decir, si yo escribo “25” y le digo al sistema que es un número entero, se reservará una memoria determinada para este dato, pero si le digo que es un string (cadena de caracteres) se reservará una cantidad distinta de memoria y se gestionará también de forma distinta.

En NXT-G podemos trabajar con 3 tipos distintos de datos:

  • Número: puede ser un entero o un real (NXT-G soporta coma flotante).
  • Texto: un sólo carácter o una cadena.
  • Lógico: dos valores posibles Verdadero/Falso.

Número

Podremos hacer uso de la variable número, en variables, constantes y podremos escribirlos y leerlos de ficheros. Además podremos pasar números mediante cable de datos entre bloques.

Para trabajar con números tenemos una serie de herramientas que nos permitirán operar con ellos, como por ejemplo:

Número

El bloque Matemáticas y el bloque Comparar son bastante evidentes, el primero realiza operaciones matemáticas entre dos valores numéricos y el segundo compara dos valores devolviendo verdadero o falso a 3 comprobaciones posibles: Menor que, Mayor que o Iguales.
El bloque Intervalo devolverá verdadero o falso a la comprobación siguiente: el valor numérico introducido, ¿está en el intervalo definido? (más información sobre este bloque en el foro).

El bloque Aleatorio devuelve una salida de tipo numérico que es un valor aleatorio dentro del intervalo que nosotros indiquemos (más información sobre este bloque en el foro)

Texto

El tipo de dato Texto de NXT-G es genérico, y nos permitirá guardar tanto caracteres unitarios (char) como cadenas de caracteres (string). Podemos usar datos texto en variables y constantes, además de en ficheros.

Cuando trabajamos con varias cadenas de caracteres, puede interesarnos concatenarlas, para tener una única salida que sea la suma de las anteriores.

Por ejemplo, aquí tenemos 3 constantes de tipo texto, una contiene “Hola”, otra ” como” y la última ” estas?” (recordemos que la pantalla del NXT no mostrará los acentos ni el símbolo ¿, por eso no los hemos puesto).
Nótese que hemos añadido un espacio delante de como y de estas, esto es deliberado, ya que si no lo ponemos, la salida en pantalla será Holacomoestas?, en lugar de la salida que queríamos: “Hola como estas?”

Concatenar

El bloque Texto se encuentra aquí:

Bloque texto

Lógico

El tipo de dato lógico sólo tiene dos posibles opciones: Verdadero o Falso. Podremos crear variables y constantes de tipo lógico, pero no se puede emplear este tipo de dato en ficheros. Con valores lógicos también podemos hacer operaciones (lógica booleana, para cuya teoría os remito al completo artículo sobre funciones lógicas en labview).

Aquí tenéis una captura de dónde se encuentra el bloque de lógica, así como su menú de opciones:

lógica

NOTA:
Cuando trabajamos con determinados bloques, observaremos que admiten sólo un tipo de entrada, de poner una entrada del tipo incorrecto, nos encontraremos con el famoso cable gris.
Por ejemplo, si intentamos unir la salida numérica de un sensor de luminosidad con la entrada de texto de un bloque Visualizar.


Cable Gris
En este caso tendríamos que usar un bloque que nos permite convertir un dato numérico en un dato de tipo texto

Num-text

Con lo cual el ejemplo anterior quedaría así

Cable Bien
IMPORTANTE: Para que el texto se muestre en la pantalla del NXT tendremos que cambiar la “Acción” del bloque visualizar a Texto

Visualizar Texto

Esperamos haber podido aclarar un poco las dudas en torno a los tipos de datos en NXT-G, si hay cualquier duda, podéis comentarla en el foro.

Comments are closed.