Las expresiones son una parte fundamental de la programación ya que sirven para realizar una o varias operaciones sobre un dato o un conjunto de datos, obteniéndose otro dato como resultado. Los operadores definen algunas de las operaciones que pueden realizarse dentro de una expresión.
Expresiones.
Una expresión es una combinación de operadores y operandos de cuya evaluación se obtiene un valor. Los operandos pueden ser nombres que denoten objetos variables o constantes, funciones, literales de cualquier tipo adecuado de acuerdo con los operadores u otras expresiones más simples. La evaluación de una expresión da lugar a un valor de algún tipo, una expresión se dice que es del tipo de su resultado. Ejemplos de expresiones:
a + 5*b (a >= 0) and ((b+5) > 10) a -a * 2 + b -b + sqrt(b**2 – 4*a*c) length(s) > 0
Las expresiones se evalúan de acuerdo con la precedencia de los operadores. Ante una secuencia de operadores de igual precedencia, la evaluación se realiza según el orden de escritura, de izquierda a derecha. El orden de evaluación puede modificarse usando paréntesis.
Toda expresión tiene asociada un tipo que se corresponde con el tipo del valor que devuelve la expresión cuando se evalúa, por lo que habrá tantos tipos de expresiones como tipos de datos. Habrá expresiones numéricas y lógicas.
Operadores.
Ada agrupa los operadores en 6 categorías, de menor a mayor precedencia. Los operadores binarios se usan en formato infijo (<operando_izquierdo> <operador> <operando_derecho>), como en “a + b”. Los operadores unarios se usan en formato prefijo (<operador> <operando> ), como en “-5”.
existen una gran variedad de operadores, que se pueden agrupar de la siguiente manera:
- Operadores aritméticos
- Operadores relacionales
- Operadores lógicos
- Operadores a nivel de bit (bitwise operators)
- Operadores especiales
A continuación veremos algunos:
OPERADORES ARITMETICOS
Los operadores aritméticos operan sobre valores de tipo entero o real. Los operadores aritméticos se resumen en la Tabla 12. En el caso del operador unitario de cambio de signo, el resultado es del mismo tipo que el del operando; en el caso de los tres primeros operadores binarios (suma, resta y producto) si ambos operandos son enteros el resultado es entero, si alguno es real el resultado es real.
Con el fin de mantener la coherencia durante la operación, para un operador binario, operandos con distinto tipo se convierten a un mismo tipo común antes de la operación. El tipo común es el tipo de dato predefinido de TurboPascal con el menor intervalo de representación que incluye los valores de ambos operandos. Un concepto equivalente sería el de mínimo común múltiplo.
Por ejemplo, el tipo común de dos tipos byte e integer es el tipo integer. El tipo común de dos tipos integer y word es un longint. El tipo común de dos tipos integer y real es un real. La operación se lleva a cabo dentro del intervalo de representación y con la precisión de este tipo común y el resultado es también de este tipo común.
Los operadores aritméticos en TurboPascal realizan operaciones aritméticas muy simples. Por ejemplo, ni siquiera existe un operador que permita elevar un valor a una potencia determinada.
Otras operaciones numéricas más complejas (como por ejemplo, logaritmos o
funciones trigonométricas) pueden llevarse a cabo con las funciones y procedimientos estándar que incorpora TurboPascal y que se verán más adelante en el capítulo de Procedimientos y Funciones.
Las siguientes sentencias incluyen expresiones que contienen algunos operadores aritméticos:
var x,y,r: real; n:integer;
begin
x:=-2.3;
y:=x+5;
n:=-6;
r:=4.3*x+(y/2)*n;
writeln(‘El cuadrado de r es: ‘,r*r)
end.
EJEMPLO:
–3 * 6 mod 4
3 ** 3 – 1
–3 * ( 6 mod 4 )
3 ** ( 3 – 1 )
Se obtienen los valores:
–2 (actúan en orden los operadores: signo menos (–), (*) y (mod))
26 (actúan en orden los operadores: (**) y resta (–))
–6 (actúan en orden los operadores: (mod), signo menos (–) y (*))
9 (actúan en orden los operadores: resta (–) y (**))
Se pueden clasificar en:
- Operadores aritméticos unarios:
+ más unitario.
++ Incremento unitario (dos clases)
– menos unitario.
— Decremento unitario (dos clases)
- Operadores artiméticos binaros:
+ Suma binaria.
– Resta binaria.
* Multiplicación
/ División.
% Resto o módulo.
Estos últimos pueden combinarse con el de asignación = para dar origen a operadores compuestos son los siguientes:
+= Asigna suma
-= Asigna diferencia (resta)
*= Asigna producto
/= Asigna división
%= Asigna resto (módulo)
Existen distintos operadores enmascarados bajo los mismos símbolos + y -. Es un caso de sobrecarga incluida en el propio lenguaje. Como en el resto de los casos de sobrecarga, el compilador deduce por el contexto de que versión del operador se trata.
OPERADORES MONARIOS
Se incluye una clase de operadores que actúan sobre un solo operando para producir un nuevo valor. Estos operadores se denominan operadores monarios. Los operadores monarios suelen preceder a su único operando, aunque algunos operadores monarios se escriben detrás de su operando.
Es probable que el operador monario de uso más frecuente sea el menos monario, que consiste en un signo menos delante de una constante numérica, una variable o una expresión. (Algunos lenguajes de programación permiten que se incluya el signo menos como parte de una constante numérica. Sin embargo, en C todas las constantes numéricas son positivas. Por tanto, un número negativo es en realidad una expresión, que consiste en el operador monario menos, seguido de una constante numérica positiva.)
Adviértase que la operación menos monaria es distinta del operador aritmético que representa la resta (-). El operador resta requiere dos operandos.
Otro operador monario digno de mención es el operador de tamaño: sizeof. Éste devuelve la longitud en bytes del operando, que puede ser una variable o un especificador de tipo (en este caso, debe ir encerrado entre paréntesis).
EJEMPLO: He aquí varios ejemplos que ilustran el uso de la operación menos monaria.
-743 | 0X7FFF | -0.2 | -5E-8 |
-raiz1 | – (X + Y) | -3 * (X + Y) |
En cada caso, el signo menos es seguido por un operando numérico que puede ser una constante entera, una constante en coma flotante, una variable numérica o una expresión aritmética.
Otros dos operadores monarios de uso frecuente son el operador incremento, + +, y el operador decremento, – -. El operador incremento hace que su operando se incremente en uno, mientras que el operador decremento hace que su operando se decremente en uno. El operando utilizado con cada uno de estos operadores debe ser una variable simple.
EJEMPLO: Supongamos que i es una variable entera que tiene asignado el valor 5. La expresión ++i, que es equivalente a escribir i = i + 1, hace que el valor de i sea 6. Análogamente la expresión –i, que es equivalente a i = i – 1, hace que el valor (partiendo del original) de i pase a ser 4.
Los operadores incremento y decremento se pueden utilizar, cada uno de ellos, de dos formas distintas, dependiendo de si el operador se escribe delante o detrás del operando. Si el operador precede al operando (por ejemplo ++i), el valor del operando se modificará antes de que se utilice con otro propósito. Sin embargo, si el operador sigue al operando (por ejemplo i++), entonces el valor del operando se modificará después de ser utilizado.
OPERADORES RELACIONADOS Y LOGICOS
Los operadores de relación son operadores binarios en los que los operandos son ordinales, reales o de cadena. Los dos primeros operadores sirven también para operandos de tipo record y punteros. Todos ellos dan lugar a resultados de tipo booleano.
No hay que confundir el operador lógico igualdad =, con el operador de asignación :=, que asigna valores a variables o funciones. La expresión a=b compara los valores almacenados en la variables a y b y devuelve true o false según el resultado, mientras que la sentencia a:=b; asigna a la variable a el valor almacenado en la variable b.
Los operadores lógicos o boolenos realizan operaciones con operandos de tipo lógico o booleano y tiene como resultado un dato también del mismo tipo.
Una expresión lógica es aquella que sólo puede devolver dos valores (Verdadero o Falso). Los valores que pueden aparecer en una expresión lógica son de 2 tipos: lógicos y relacionales.
La particularidad de las expresiones lógicas es que mientras en una expresión numérica por devolver un valor numérico los operandos solo pueden ser números, en una expresión lógica los operandos no tienen porque ser booleanos aunque se devuelva un valor booleano. Esto es lo que ocurre cuando en la expresión lógica utilizamos operadores relacionales con lo cual se obtienen valores lógicos o booleanos a partir de otros que no lo son.
En cambio cuando los operadores son lógicos los operandos obligatoriamente tambien tienen que ser lógicos.
EJEMPLO: De las siguientes expresiones:
3 > 1 o 4 < 1 y 4 <= 2
( 3 > 1 o 4 < 1 ) y 4 <= 2
falso = verdadero <= verdadero
( falso = verdadero ) <= verdadero
Se obtienen los valores:
verdadero (actúan en orden los operadores: (>), (<), (<=), (y) y (o))
falso (actúan en orden los operadores: (>), (<), (o), (<=) e (y))
falso (actúan en orden los operadores:(<=) y (=))
verdadero (actúan en orden los operadores: (=) y (<=))
AND y OR trabajan con dos operandos y retornan un valor lógico basadas en las denominadas tablas de verdad. El operador NOT actúa sobre un operando. Estas tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: “si hace sol Y tengo tiempo, iré a la playa”, “si NO hace sol, me quedaré en casa”, “si llueve O hace viento, iré al cine”.
Las tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes
El operador lógico AND
x | y | resultado |
true | true | true |
true | false | false |
false | true | false |
false | false | false |
El operador lógico OR
x | y | resultado |
true | true | true |
true | false | true |
false | true | true |
false | false | false |
El operador lógico NOT
X | resultado |
true | false |
false | true |
Los operadores AND y OR combinan expresiones relacionales cuyo resultado viene dado por la última columna de sus tablas de verdad. Por ejemplo:
(a<b) && (b<c)
es verdadero (true), si ambas son verdaderas. Si alguna o ambas son falsas el resultado es falso (false). En cambio, la expresión
(a<b) ||(b<c)
es verdadera si una de las dos comparaciones lo es. Si ambas, son falsas, el resultado es falso.
La expresión ” NO a es menor que b”
!(a<b)
es falsa si (a<b) es verdadero, y es verdadera si la comparación es falsa. Por tanto, el operador NOT actuando sobre (a<b) es equivalente a
(a>=b)
La expresión “NO a es igual a b”
!(a==b)
es verdadera si a es distinto de b, y es falsa si a es igual a b. Esta expresión es equivalente a
(a!=b)
BIBLIOGRAFÍA
SITIOS WEB:
__________. Algoritmo y Programas. http://html.rincondelvago.com/algoritmos-y-programas.html
__________. Operadores lógicos. http://www.aulaclic.es/sql/b_2_3_1.htm
__________. Operadores monarios. http://www.geocities.ws/cursodec/operadores_monarios.html
LIBROS:
GARCIA, A.; MARTINEZ, R. Y JAÉN, J. Métodos Informáticos en TurboPascal, Ed. Bellisco, 2ª edición, Madrid, 2002
JOYANES, L. Fundamentos de programación, Algoritmos y Estructuras de Datos, McGraw- Hill, Segunda edición, 1996
Citar este texto en formato APA: _______. (2020). WEBSCOLAR. Operadores aritméticos y expresiones. https://www.webscolar.com/operadores-aritmeticos-y-expresiones. Fecha de consulta: 21 de noviembre de 2024.