Webscolar

Operadores aritméticos y expresiones

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:

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:

+ más unitario.

++ Incremento unitario (dos clases)

– menos unitario.

— Decremento unitario (dos clases)

+ 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.

Salir de la versión móvil