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:
NUMERICOSTRINGLOGICO
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
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.
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
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.
STRING saludo
saludo = "Hola mundo!"
IMPRIMIR(saludo)
Vector de strings
Un vector de strings permite almacenar varias cadenas en una misma variable indexada.
STRING nombres[3]
nombres[1] = "Ana"
nombres[2] = "Luis"
nombres[3] = "Pedro"
IMPRIMIR(nombres[1])
Importante: Los vectores de
STRINGusan í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
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
STRINGescalar 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
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:
VERDADEROFALSO
Se usa para:
- condiciones
- decisiones
- validaciones
- banderas de control
- resultados de comparaciones
Declaración y uso
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.
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_QUEy otras decisiones del programa.
Ejemplo con comparación
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
| Tipo | Representa | Ejemplos |
|---|---|---|
NUMERICO | Valores reales | 3, 2.5, -7.8 |
STRING | Texto | "Hola", "BLOX" |
LOGICO | Verdad lógica | VERDADERO, FALSO |
Buenas prácticas
- Usa
NUMERICOpara todo cálculo, incluso cuando conceptualmente trabajes con enteros. - Usa
STRINGpara texto escalar y vectores de strings cuando necesites listas de texto. - Usa
LOGICOpara 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
STRING nombre
STRING nombres[3]
Estas dos variables no representan lo mismo.
3. Olvidar la base de índices del vector de strings
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.
LOGICO listo
listo = VERDADERO
en lugar de usar números como sustituto semántico del estado.