Operadores y expresiones en Pseudocódigo
En un programa, el tipo de un dato determina las operaciones que se pueden realizar con él. Por ejemplo, con los datos de tipo entero se pueden realizar operaciones aritméticas, tales como la suma, la resta o la multiplicación.
EJEMPLO Algunos ejemplos son:
242 + 5 (operación suma)
25 - 49 (operación resta)
24 * 3 (operación multiplicación)
Todas las operaciones del ejemplo constan de dos operandos (constantes enteras) y un operador. La mayoría de las veces es así, pero también es posible realizar operaciones con distinto número de operadores y/u operandos.
EJEMPLO:
242 + 5 - 2 (tres operandos y dos operadores)
-( ( +25 ) + 49 ) (dos operandos y tres operadores)
-( -90 ) (un operando y dos operadores)
-( +92 ) (un operando y dos operadores)
En las operaciones del ejemplo se puede observar que los caracteres más (+) y menos (-) tienen dos usos:
1. Operadores suma y resta.
2. Signos de un número (también son operadores).
Los operadores signo más (+) y signo menos (-) son operadores monarios, también llamados unarios, ya que actúan solamente sobre un operando.
Los caracteres abrir paréntesis "(" y cerrar paréntesis ")" se utilizan para establecer la prioridad de los operadores, es decir, para establecer el orden en el que los operadores actúan sobre los operandos.
EJEMPLO Obsérvese la diferencia entre las siguientes operaciones:
-25 + 49 (dos operandos y dos operadores)
-( 25 + 49 ) (dos operandos y dos operadores)
Los resultados de evaluarlas son, respectivamente:
24 (primero actúa el operador signo (-) y después el operador suma (+))
-74 (primero actúa el operador suma (+) y después el operador signo (-))
EJEMPLO Percátese también de las diferencias entre las siguientes operaciones:
( ( 3 * 5 ) + 2 ) - 1
( 3 * ( 5 + 2 ) ) - 1
3 * ( ( 5 + 2 ) - 1 )
( 3 * 5 ) + ( 2 - 1 )
Al evaluarlas se obtienen los valores:
16 (actúan en orden los operadores: multiplicación (*), suma (+) y resta (-))
20 (actúan en orden los operadores: suma (+), multiplicación (*) y resta (-))
18 (actúan en orden los operadores: suma (+), resta (-) y multiplicación (*))
16 (actúan en orden los operadores: multiplicación (*), resta (-) y suma (+))
Un operador indica el tipo de operación a realizar sobre los operandos (datos) que actúa. Los operandos pueden ser:
- Constantes.
- Variables.
- Llamadas a funciones.
- Elementos de formaciones (arrays).
Cuando se combinan uno o más operadores con uno o más operandos se obtiene una expresión.
De modo que, una expresión es una secuencia de operandos y operadores escrita bajo unas reglas de sintaxis.
EJEMPLO Dadas las siguientes declaraciones de constantes y variables:
NUMERO_PI <- 3.141592
Definir num Como Entero
Definir radio_circulo Como Real
Después de realizar las siguientes asignaciones:
num <- 2
radio_circulo <- 3.2
Algunos ejemplos de expresiones son:
2 * NUMERO_PI * radio_circulo
( NUMERO_PI * NUMERO_PI )
num * 5
De sus evaluaciones se obtienen los valores:
20.106189 (valor real) (2 * 3.141592 * 3.2)
9.869600 (valor real) (3.141592 * 3.141592)
10 (valor entero) (2 * 5)
Un operador siempre forma parte de una expresión, en la cual, el operador siempre actúa sobre al menos un operando.
Por el contrario, un operando sí puede aparecer solo en una expresión.
EJEMPLO Las siguientes expresiones están constituidas por un único operando, es decir, no están bajo la influencia de ningún operador:
NUMERO_PI
num
5
Los resultados de evaluarlas son:
3.141592 (valor real)
2 (valor entero)
5 (valor entero)
En programación, de la evaluación de una expresión siempre se obtiene un valor. Dicho valor puede ser de tipo: entero, real, lógico, carácter o cadena. Por consiguiente, una expresión puede ser:
- Aritmética (devuelve un número entero o real).
- Lógica (devuelve un valor lógico: Verdadero o Falso).
- De carácter (devuelve un carácter representable por el ordenador).
- De cadena (devuelve una cadena).
Dependiendo del tipo de expresión, pueden participar unos operadores u otros.
Tipos de expresiones
Prioridad de operadores
La prioridad de los operadores puede variar de unos lenguajes a otros, pero, en pseudocódigo, en este libro, vamos a establecer una prioridad de operadores muy similar a la que se aplica en lenguaje C. La prioridad no puede ser exactamente la misma, ya que, en C existen algunos operadores que no existen en pseudocódigo, y al revés.