4.1. Objetivos del tema.
Hemos visto en el tema anterior que en un
programa uno de los apartados a utilizar son los datos.
Los datos en si no son nada si no se
utilizan, y la forma de utilizarlos es en expresiones, dentro de una instrucción,
o de forma aislada, vamos a ver que son las expresiones y su evaluación.
4.2. Introducción.
Las instrucciones es la forma de hacer
que un programa haga la tarea para la cual lo estamos escribiendo, pero esas
instrucciones tienen que manejar datos, y al final lo que hacemos es escribir
expresiones que se evalúan y que producen un resultado que permite resolver o
tomar una decisión.
Para utilizar los datos necesitamos crear
esas expresiones, las expresiones las crearemos utilizando los datos y los
operadores que me permiten dar sentido a esa expresión para que produzca un
resultado.
4.3. Expresiones.
Las expresiones están compuestas por
datos, y los datos en un programa se almacenan en variables.
Las denominamos de esa forma porque su
valor cambia a lo largo de la ejecución del programa, cuando un dato está
almacenado en una variable y su valor es estático, por ejemplo declaramos la
variable Pi = 3,1415, entonces la denominamos constante.
Las variables, como ya se comentó antes,
almacenan datos, y los datos hemos quedado que básicamente eran de dos tipos
numéricos y alfanuméricos.
Con las variables alfanuméricas
almacenamos datos de texto, para el uso que sea pertinente en el programa.
Con las variables numéricas almacenamos
datos de valor numérico, con las que podemos realizar operaciones de cálculo.
Si las variables son numéricas, en
realidad, y recordando el cuadro de posibles valores del tema anterior, las
variables numéricas en realidad podrán ser:
Byte
Integer
Long
Real
Hay que tener presente que el nombre de los
tipos cambiará en función del lenguaje utilizado, por ejemplo el Real también
podemos encontrarlo como simple y doble precisión.
La expresión es la unión de una serie de
variables unidas por operadores que expresan una condición, un cálculo, una
comparación.
En estas expresiones los operadores se
evalúan en el siguiente orden,
Paréntesis, de dentro a fuera.
Signo.
Potencia.
Productos y divisiones.
Suma y restas.
Concatenación.
Relacionales.
Negación.
Conjunción.
Disyunción.
Cuando hay expresiones que contienen
operadores de más de una categoría, se resuelven antes las que tienen
operadores aritméticos, a continuación las que tienen operadores de comparación
y por último las de operadores lógicos.
Los operadores de comparación tienen
todos la misma prioridad; es decir, se evalúan de izquierda a derecha, en el
orden en que aparecen. Los operadores lógicos y aritméticos se evalúan en el
siguiente orden de prioridad:
Tipos de operadores.
Aritméticos Relacionales Operadores
lógicos
Exponenciación Igualdad
Negación lógica
Negación Desigualdad,
distinto Conjunción
Multiplicación y división Menor
que Disyunción
División de enteros Mayor
que Exclusión lógica
Módulo aritmético (Mod) Menor
o igual que Equivalencia
Adición y substracción Mayor
o igual que Implicación
En cada lenguaje de programación cada
operador tiene un símbolo asignado, en la mayoría coinciden, pero hay algunos
que cambian de forma significativa, por lo que cuando se entre en cada lenguaje
se expondrán los mismos.
Cuando hay multiplicación y división en
la misma expresión, cada operación se evalúa a medida que aparece, de izquierda
a derecha. Del mismo modo, cuando se presentan adiciones y substracciones en
una misma expresión, cada operación se evalúa tal como aparecen de izquierda a
derecha. Es posible usar paréntesis para saltar el orden de preferencia y
forzar que algunas partes de una expresión se evalúen antes que otras. Las
operaciones entre paréntesis se realizan antes que las de fuera. Sin embargo,
dentro de los paréntesis, la precedencia de los operadores se mantiene.
El operador de concatenación de cadenas
(&) o (+) no es realmente un operador aritmético, pero en orden de
prioridad se encuentra a continuación de todos los operadores aritméticos y
antes que todos los operadores de comparación.
4.4. ¿Como se distinguen los tipos de variable?
La diferenciación entre un tipo y otro de
variables, se realiza de dos formas básicamente,
En la creación a la hora de definirlas se
les asigna un tipo, pero el nombre no lleva ningún carácter identificativo,
En la creación a la hora de definirlas se
les asigna un tipo y además el nombre lleva un carácter que la identifica como
tal tipo, si se utiliza el sistema de notación hungara.
La notación hungara, consiste en
prefijos en minúsculas que se añaden a los nombres de las variables, y que
indican su tipo.
El resto del nombre indica, lo más
claramente posible, la función que realiza la variable.
4.5. Operadores.
Indican que tipo de acción se ha de
realizar con dos variables.
Hemos quedado que las variables contienen
datos.
Los datos son para manejarlos y obtener
otros datos a partir de ellos.
Para eso hay que realizar distintos tipos
de operaciones y cada operación ha de estar representada por un operador.
Los operadores se dividen por el tipo de
operación que realizan.
Las distintas operaciones que se pueden
realizar en un programa son:
Aritméticas. Sumas restas ...
Lógicas. Condición And
Condición, o Condición Or Condición.
Relacionales. Mayor o Igual,
>=, <=, =, >, <
Que se corresponde con los tipos de
operadores descritos anteriormente.
Luego para cada tipo de operación son
necesarios unos símbolos que identifiquen la acción que se desea realizar.
A continuación exponemos los operadores
en un formato que suele ser habitual, pero que después habrá que volver a ver
en el lenguaje correspondiente.
Con el fin de poder realizar los
ejemplos, se han utilizado los símbolos que se utilizan en Visual Basic.
1 Aritméticos.
Para indicar cálculos de tipo matemático.
Suma +
Resta -
Multiplicación *
División /, División
entera, o DIV
Resto división Mod
Raíz cuadrada Sqr
Exponenciación ^
Ejemplos.
Variable = Variable + 1 Suma
y además es un Contador.
Variable = Variable + OtraVariable Suma,
y lo llamamos Acumulador.
Variable = Variable * 3 + OtraVariable
2 Lógicos.
And, Or, Not, Xor, Imp. Eqv
Los operadores lógicos unen dos o más
condiciones para formar una única expresión.
2.1 And.
Se utiliza para efectuar una conjunción
lógica de dos expresiones.
Sintaxis
resultado = expresión1 And expresión2
La sintaxis del operador And consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
Comentarios
Si y sólo si ambas expresiones se
evalúan como True, el resultado es True. Si cualquiera de las expresiones es
False, el resultado es False. La siguiente tabla ilustra cómo se determina el
resultado:
La tabla de verdad es:
El operador Or ejecuta una comparación
bit a bit para identificar los bits de dos expresiones numéricas que tienen la
misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
2.3 Not.
Se utiliza para ejecutar una negación
lógica sobre una expresión.
Sintaxis
resultado = Not expresión
La sintaxis del operador Not consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
expresión Obligatorio;
cualquier expresión.
Comentarios
La siguiente tabla muestra cómo se
determina el resultado:
Además, el operador Not invierte los
valores de bit de cualquier variable y establece el bit correspondiente en
resultado, de acuerdo con la siguiente tabla de decisión lógica:
La tabla de verdad es:
2.4 Xor.
Se utiliza para realizar una exclusión
lógica entre dos expresiones.
Sintaxis
[resultado =] expresión1 Xor expresión2
La sintaxis del operador Xor consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
Comentarios
Si una y sólo una de las expresiones es
True, el resultado es True. Sin embargo, si cualquiera de las expresiones es
Null, el resultado es también Null. Cuando ninguna de las expresiones es Null,
el resultado se determina de acuerdo con la siguiente tabla:
La tabla de verdad es:
El operador Xor funciona como operador
lógico y bit a bit. Ejecuta una comparación bit a bit para identificar los bits
de dos expresiones utilizando lógica de O exclusivo para obtener el resultado,
según la siguiente tabla de decisión lógica:
La tabla de verdad es:
2.5 Imp.
Se utiliza para efectuar una implicación
lógica de dos expresiones.
Sintaxis
resultado = expresión1 Imp expresión2
La sintaxis del operador Imp consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
Comentarios
La siguiente tabla ilustra cómo se
determina el resultado:
La tabla de verdad es:
El operador Imp ejecuta una comparación
bit a bit para identificar los bits de dos expresiones numéricas que tienen la
misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
2.6 Eqv.
Se utiliza para efectuar una equivalencia
lógica de dos expresiones.
Sintaxis
resultado = expresión1 Eqv expresión2
La sintaxis del operador Eqv consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
Comentarios
Si cualquiera de las expresiones es de
tipo Null, el resultado es también Null. Si ninguna de las expresiones es Null,
el resultado se determina según la siguiente tabla:
La tabla de verdad es:
El operador Eqv ejecuta una comparación
bit a bit para identificar los bits de dos expresiones numéricas que tienen la
misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
Unidad 4. Las expresiones (IV)
2.5 Imp.
Se utiliza para efectuar una implicación
lógica de dos expresiones.
Sintaxis
resultado = expresión1 Imp expresión2
La sintaxis del operador Imp consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
Comentarios
La siguiente tabla ilustra cómo se
determina el resultado:
La tabla de verdad es:
|
Expresión1
|
Expresión2
|
Resultado
|
|
True
|
True
|
True
|
|
True
|
False
|
False
|
|
False
|
True
|
True
|
|
False
|
False
|
True
|
El operador Imp ejecuta una comparación
bit a bit para identificar los bits de dos expresiones numéricas que tienen la
misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
|
Bit1
|
Bit2
|
Resultado
|
|
0
|
0
|
1
|
|
0
|
1
|
1
|
|
1
|
0
|
0
|
|
1
|
1
|
1
|
2.6 Eqv.
Se utiliza para efectuar una equivalencia
lógica de dos expresiones.
Sintaxis
resultado = expresión1 Eqv expresión2
La sintaxis del operador Eqv consta de
las siguientes partes:
Parte Descripción
resultado Obligatorio; cualquier
variable numérica.
Comentarios
Si cualquiera de las expresiones es de
tipo Null, el resultado es también Null. Si ninguna de las expresiones es Null,
el resultado se determina según la siguiente tabla:
La tabla de verdad es:
|
Expresión1
|
Expresión2
|
Resultado
|
|
True
|
True
|
True
|
|
True
|
False
|
False
|
|
False
|
True
|
False
|
|
False
|
False
|
True
|
El operador Eqv ejecuta una comparación
bit a bit para identificar los bits de dos expresiones numéricas que tienen la
misma posición y establece el bit correspondiente en el resultado según la
siguiente tabla de decisión lógica:
La tabla de verdad es:
|
Bit1
|
Bit2
|
Resultado
|
|
0
|
0
|
1
|
|
0
|
1
|
0
|
|
1
|
0
|
0
|
|
1
|
1
|
1
|
3 Cadenas, strings.
El símbolo utilizado habitualmente es el
+ y el &, que no representa una suma, sino la concatenación o unión de dos
variables alfanuméricas, creando una nueva con el contenido de ambas.
4 Relacionales
>, >=, <>, <, <=, =.
Son los símbolos que se usan en una
comparación para indicar como hacerla, si A ha de ser mayor que B, etc.…
No hay comentarios:
Publicar un comentario