DocumentaciónTipos Básicos

Tipos Básicos: NUMERICO, STRING, LOGICO

En BLOX, los tipos básicos son la materia prima del lenguaje.
Con ellos se construyen expresiones, condiciones, mensajes, estructuras de control y gran parte de los programas cotidianos.

Los tres tipos básicos principales son:

  • NUMERICO
  • STRING
  • LOGICO

Entender bien su comportamiento es clave para escribir programas claros, correctos y fáciles de mantener.

NUMERICO

El tipo NUMERICO representa valores reales, es decir, números que pueden tener parte decimal.

Se usa para:

  • cálculos matemáticos
  • contadores
  • índices numéricos
  • fórmulas
  • comparaciones
  • parámetros de funciones numéricas

Declaración y uso

ejemplo.blox
NUMERICO a, b, resultado

a = 5.5
b = 2.3
resultado = a + b

IMPRIMIR(resultado)

Características

  • Soporta suma, resta, multiplicación y división.
  • Soporta potencias y operaciones matemáticas habituales.
  • Es el tipo natural para casi todo cálculo en BLOX.
  • No existe un tipo entero separado: los valores numéricos se manejan como reales.

Enteros en BLOX

Aunque BLOX no tiene un tipo entero independiente, existe la función ENTERO() para convertir o truncar un valor numérico según la semántica definida por el lenguaje.

ejemplo.blox
NUMERICO x, n

x = 7.9
n = ENTERO(x)

Advertencias

  • Evita comparar números reales con == cuando haya operaciones intermedias de punto flotante.
  • En cálculos delicados, conviene usar tolerancias o criterios numéricos adecuados.
  • Aunque un valor parezca entero, internamente sigue siendo NUMERICO.

Ejemplo típico

ejemplo.blox
NUMERICO radio, area

radio = 5
area = PI * radio^2

IMPRIMIR(area)

STRING

El tipo STRING representa texto.

Se usa para:

  • mensajes
  • nombres
  • rutas de archivos
  • datos leídos desde teclado o archivos
  • claves dinámicas
  • expresiones de texto en general

En BLOX, STRING puede aparecer en dos formas frecuentes:

  • como string escalar
  • como vector de strings

String escalar

Un string escalar representa una sola cadena de texto.

ejemplo.blox
STRING saludo

saludo = "Hola mundo!"
IMPRIMIR(saludo)

Vector de strings

Un vector de strings permite almacenar varias cadenas en una misma variable indexada.

ejemplo.blox
STRING nombres[3]

nombres[1] = "Ana"
nombres[2] = "Luis"
nombres[3] = "Pedro"

IMPRIMIR(nombres[1])

Importante: Los vectores de STRING usan índices base 1.

Características

  • Permite concatenación.
  • Puede compararse con otras cadenas.
  • Distingue mayúsculas de minúsculas.
  • Se usa intensamente en funciones como SUBSTR(), LONGITUD(), REEMPLAZAR(), COMPARAR(), IGUAL(), ORDEN(), CARACTER() y otras del módulo de strings.

Concatenación

ejemplo.blox
STRING nombre, mensaje

nombre = "Ana"
mensaje = "Hola " + nombre

IMPRIMIR(mensaje)

Según el caso, también pueden usarse funciones específicas como CONCATENAR() o UNIR().

Advertencias

  • No confundas un STRING escalar con un vector de strings.
  • "Ana" y "ana" son textos distintos.
  • Si trabajas con listas de texto, conviene recordar que el vector de strings usa índices desde 1.

Ejemplo típico

ejemplo.blox
STRING nombre, apellido, completo

nombre = "Juan"
apellido = "Perez"
completo = nombre + " " + apellido

IMPRIMIR(completo)

LOGICO

El tipo LOGICO representa valores booleanos.

Sus únicos dos valores posibles son:

  • VERDADERO
  • FALSO

Se usa para:

  • condiciones
  • decisiones
  • validaciones
  • banderas de control
  • resultados de comparaciones

Declaración y uso

ejemplo.blox
LOGICO bandera

bandera = VERDADERO

SI (bandera) ENTONCES
    IMPRIMIR("La bandera es: ", bandera)
FIN_SI

Negación lógica

El operador ! permite negar un valor lógico.

ejemplo.blox
LOGICO activo

activo = VERDADERO

SI (!activo) ENTONCES
    IMPRIMIR("Inactivo")
SINO
    IMPRIMIR("Activo")
FIN_SI

Características

  • Solo admite dos estados.
  • Puede asignarse de forma directa.
  • También puede aparecer como resultado de comparaciones.
  • Es central en estructuras como SI, MIENTRAS, HACER ... MIENTRAS_QUE y otras decisiones del programa.

Ejemplo con comparación

ejemplo.blox
NUMERICO a, b
LOGICO mayor

a = 10
b = 3

mayor = a > b

SI (mayor) ENTONCES
    IMPRIMIR("a es mayor que b")
FIN_SI

Resumen comparativo

TipoRepresentaEjemplos
NUMERICOValores reales3, 2.5, -7.8
STRINGTexto"Hola", "BLOX"
LOGICOVerdad lógicaVERDADERO, FALSO

Buenas prácticas

  • Usa NUMERICO para todo cálculo, incluso cuando conceptualmente trabajes con enteros.
  • Usa STRING para texto escalar y vectores de strings cuando necesites listas de texto.
  • Usa LOGICO para expresar intención de control, no como reemplazo informal de números.
  • Mantén claro cuándo una variable contiene un solo valor y cuándo contiene una colección.

Errores frecuentes

1. Suponer que existe un tipo entero separado

En BLOX, los cálculos numéricos trabajan sobre NUMERICO.

2. Confundir un STRING escalar con un vector de strings

ejemplo.blox
STRING nombre
STRING nombres[3]

Estas dos variables no representan lo mismo.

3. Olvidar la base de índices del vector de strings

ejemplo.blox
STRING nombres[3]

nombres[1] = "Ana"

Aquí el primer elemento es nombres[1], no nombres[0].

4. Usar números para expresar estados lógicos sin necesidad

Cuando una variable representa una condición, suele ser mejor modelarla como LOGICO.

ejemplo.blox
LOGICO listo
listo = VERDADERO

en lugar de usar números como sustituto semántico del estado.