domingo, 3 de diciembre de 2023

OOo Basic. Datos

 Operadores de asignación, concatenación y de relación

Los operadores son expresiones breves (uno o dos signos) que permiten el trabajo con las variables. Podemos diferenciar tres tipos: el de asignación, los de concatenación y los relacionales o de relación (1).




Los operadores de concatenación son dos: & y +, que se pueden usar indistintamente cuando trabajamos con variables string o con variables string y de tipo numérico, aunque en ambos casos es preferible utilizar el concatenador & por ser el operador específico para esta operación (2).

Los operadores de relación son los más numerosos y complejos. Permiten comparar el valor de dos expresiones, confirmando conjuntamente (expresión 1 # operador # Expresión 2) una proposición. Como tal proposición puede tener valor V (1 o True) o F (0 o False)

La lista de operadores relacionales en OOo Basic es breve, pero suficiente para realizar las comparaciones necesarias entre expresiones (o entre variables) y generar las proposiciones básicas.

Aunque parecen priorizar las comparaciones entre variables (y expresiones) numéricas, también sirven para realizar comparaciones entre variables no numéricas, aunque en este caso con ciertas restricciones en términos de equivalencia/igualdad. 

El operador de asignación (=) tiene como función asignar contenido (del tipo que sea) a una variable. Su uso es aparente muy sencillo (sVar = "Casa", iNum = 323) pero presenta una dificultad que deriva del hecho de que OOo Basic utiliza el mismo signo para el operador de asignación y para la igualdad o equivalencia (uno de los operadores relacionales), lo que genera cierta confusión. Por ejemplo:

Siendo...

Dim A As Integer, B As Integer, C As Integer

 Decir...

A = 230

B = 540 

 ... es asignar el entero 230 a la variable A, y 540 a la variable B, pero también se puede entender que A vale 230 y B 540, por lo que...

C = A + B

... implica tanto asignar el resultado de la A+B (230+540 -> 770) a C como plantear que C es el resultante de la operación matemática +  aplicada sobre A y B

En este caso. ambos significados son equivalentes, pero si A y B son cadenas...

A = "Casa"

B = "Mesa"

... ahora es evidente que las respectivas cadenas no son "valores" de A y de B, sino contenidos asignados a los espacios de memoria RAM identificados como A y B, y si...

C = A + B (aunque es preferible A & B)

 ... C no resulta de sumar A + B, sino de concatenar ambas, siendo que asignamos a la cadena resultante "CasaMesa"

Una tercera circunstancia es cuando empleamos cualquier proposición en la que dos expresiones, dos variables o una expresión y una variable son comparadas mediante cualquiera de los operadores relacionales, como, por ejemplo...

A < 100

... pero también

A = 100

... en el marco de una estructura condicional (If...End If). En este caso no se está haciendo una asignación, sino expresando una comparación, concretamente que A es inferior a 100 (A<100) o que A es igual a 100 (A=100), pudiendo ser 100 asignado a B, con lo que A=100 es equivalente a A=B

En este caso (A = 100 equivalente A = B, para B =100) lo que pedimos de LibreOffice es que valore si esta proposición es cierta (V) o falsa (F) para proceder como corresponda en función de la bifurcación del algoritmo que contiene el condicional If.

NOTAS

(1) En realidad existe un cuanto tipo de operadores, los aritméticos, pero estos ya han sido expuestos [en esta entrada]

(2) Concatenar significa unir cadenas, lo que remite a datos de tipo string o que funcionan como tales. Aunque podemos usar el concatenador +, no es recomendable por la posible confusión con el operador aritmético de suma. Ver al respecto [esta entrada]

No hay comentarios:

Publicar un comentario

Comenta esta entrada