Principios Fundamentales para el Proceso de la toma de decisiones
3.3.- Operadores y Expresiones
1. ALGORÍTMICA Y
PROGRAMACIÓN
Unidad 3: Datos y Entidades Primitivas
Tema 3.3.- Operadores y Expresiones
Identificar y representar los diferentes tipos de
operadores y expresiones empleados en la
escritura de algoritmos y programas.
Profa. Yenny Salazar
2. CONTENIDO
Operadores y Expresiones
• Operadores de Asignación
Asignación en C
Desborde de Memoria (Buffer Overflow)
• Operadores y Expresiones Aritméticas
Escritura de las Expresiones
• Operadores y Expresiones Relacionales
• Operadores y Expresiones Lógicas
Tabla de la Verdad
Precedencia de los operadores
• Precedencia entre Caracteres
Actividades
Referencias
3. OPERADORES Y EXPRESIONES
Los operadores son símbolos que permite relacionar dos datos en una
expresión y evaluar el resultado de la operación.
Las expresiones son una combinación de operandos (constantes, variables,
o llamadas a funciones), operadores, paréntesis y nombres de funciones
especiales.
Los operadores indican cómo se deben manipular los operandos y juntos
forman una expresión, que es una fórmula que define el cálculo de un valor.
Las expresiones se interpretan de acuerdo a las normas particulares de
precedencia y asociación para un lenguaje de programación en particular.
En un programa de computadoras, el compilador evalúa los operadores,
algunos de izquierda a derecha, otros de derecha a izquierda, siguiendo un
orden de precedencia. Este orden se puede alterar utilizando paréntesis para
forzar al compilador a evaluar primero las partes que se deseen.
4. OPERADORES Y EXPRESIONES
Los programas de computadoras se apoyan esencialmente en la realización
de numerosas operaciones aritméticas y matemáticas de diferente
complejidad; y como en las matemáticas, la expresión es la representación
de ese valor.
Cada expresión asumen un valor que se determina tomando los valores de
las variables y constantes implicadas y la ejecución de las operaciones
indicadas.
El orden de precedencia en los operadores, se utiliza de forma similar que
en la notación matemática tradicional; por ejemplo: a + (b + 3) + √c, donde
los paréntesis indican el orden del cálculo y √ representa la función raíz
cuadrada.
Los operadores y expresiones fundamentales son: aritméticos,
relacionales, lógicos, entre otros. El resultado de la expresión aritmética es
de tipo numérico; el resultado de la expresión relacional y de una
expresión lógica es de tipo lógico.
5. OPERADORES DE ASIGNACIÓN
El operador de asignación permite
evaluar una expresión y asignar el
resultado en una variable.
Su sintaxis es:
Con la asignación anterior se le indica a la computadora que evalúe la
expresión y la almacene en la variable que define el identificador.
Estos operadores permiten transferir el dato de una variable a otra. Así, la
expresión x=a en lenguaje C transfiere el valor de a a la variable x.
Ejemplos de operadores de asignación:
Nunca debe escribirse la expresión a la
izquierda del operador de asignación
Lo correcto es:
7. OPERADORES DE ASIGNACIÓN EN C
El lenguaje C posee operadores propios de asignación: +=, -=, *=, /= y %=,
donde la sintaxis cuando se quiere utilizar uno de esos operadores es:
identificador operador_asignación expresión;
8. DESBORDE DE MEMORIA (Buffer Overflow)
Es el fallo que se produce cuando un programa informático excede el uso de
cantidad de memoria asignado, escribiendo en el bloque de memoria
contiguo. Esto ocurre cuando no se incluyen controles de seguridad necesarios
en el código de programación.
Un desbordamiento de enteros se produce cuando una operación aritmética
intenta crear un valor numérico que está fuera del rango que puede
representarse con un número dado de dígitos, ya sea mayor que el máximo o
menor que el mínimo valor representable.
Por ejemplo, puede ocurrir cuando se intente asignar a un variable entero un
valor que está fuera del rango declarado. Cuando esto ocurre lo habitual es
que se almacenen los dígitos representables menos significativos del
resultado; el resultado se envuelve alrededor del máximo (es decir, el
resultado obtenido se corresponde a aplicar el módulo del máximo admisible,
una potencia entera de la base interna de cálculo, generalmente dos en las
computadoras modernas, pero a veces diez u otro número). También puede
ocurrir que se convierta en un valor indeterminado con lo que las
operaciones posteriores en las que este valor intervenga produzca
resultados incorrectos.
9. OPERADORES ARITMÉTICOS
Son aquellos símbolos que permiten hacer operaciones o cálculos simples.
1. El % llamado operador módulo,
requiere que sus dos operandos
sean enteros, y el segundo no nulo.
2. El / de división, requiere que el
segundo operando sea no nulo,
aunque los operandos no
requieren ser enteros.
Se pueden presentar cuatro casos:
• Si dicha división se produce para
dos operandos enteros el resultado
será un número entero que será
truncado, o sea, sólo la parte entera del resultado.
• Si la división es entre dos números en coma flotante el resultado será otro número en
coma flotante.
• Si la división es entre un número entero y otro en coma flotante, el resultado será un
número en coma flotante.
• Si la división tiene algún operando negativo, o los dos, entonces la división entera
(entre dos números enteros) estará truncada hacia cero, esto quiere decir que el
resultado será siempre menor en valor absoluto que el verdadero cociente.
10. OPERADORES ARITMÉTICOS
Los operadores de decremento (--) e incremento (++), suman o restan por
defecto un 1 al valor de la variable. Suelen ser usados con mayor frecuencia en
ciclos repetitivos.
Según la posición de estos operadores puede cambiar el valor:
• Si el operador está antes de la variable se conoce como prefijo.
• Si está después, se conoce como posfijo.
Tanto ++ como -- pueden aplicarse a variables, pero no a constantes
o a expresiones.
11. OPERADORES ARITMÉTICOS
Los operadores aritméticos de la siguiente tabla pueden ser utilizados con
tipos enteros o reales y sirven para realizar operaciones aritméticas básicas.
Por ejemplo si a=15 y b=3, se muestran los resultados respectivos con los
diferentes operadores aritméticos.
12. EXPRESIONES ARITMÉTICAS
Las expresiones aritméticas son similares a las
fórmulas matemáticas. Las variables y constantes
son numéricas (real o entera) y las operaciones son
las aritméticas.
Los símbolos +, –, *, /, ^ (↑ o **), % y las palabras
clave div y mod se conocen como operadores
aritméticos.
En la expresión 5 + 3, los valores 5 y 3 se
denominan operandos, mientras que el resultado de
la expresión sería el valor 8.
Los operadores se utilizan de igual forma que en matemáticas. Por
consiguiente, A x B se escribe en un algoritmo como A * B y 1/4 x C como C/4.
Al igual que en matemáticas el signo menos juega un doble papel,
como resta en A – B y como negación en –A.
Operador Operación
+ Suma
Resta
* Multiplicación
/ División
^, ↑, ** Exponenciación
div, / División entera
mod, % Módulo (resto)
13. EXPRESIONES ARITMÉTICAS
El símbolo del operador va a depender del
lenguaje de programación.
En lenguaje C son
El símbolo / se utiliza para la división real y
la división entera.
El símbolo % representa el resto de la
división entera.
Por ejemplo la expresión A/B sólo puede usarse si A y B son expresiones
enteras y obtiene la parte entera de A/B. Por tanto, 19/6 toma el valor 3.
Otro ejemplo puede ser la división 15/6:
En forma de operadores resultará 15/6 toma el valor 2, mientras
que 15%6 el valor de 3
Símbolo del
Operador
Operación
+ Suma
Resta
* Multiplicación
/ División
% Residuo
14. EXPRESIONES ARITMÉTICAS
En el lenguaje C, para realizar operaciones como por ejemplo: potencia, raíz
cuadrada, valor absoluto, etc. se deben utilizar funciones de su biblioteca
estándar, específicamente la librería para las funciones matemáticas (math.h),
en concreto las funciones: pow (potencia), sqr (raíz cuadrada), abs (valor
absoluto), entre otras.
Por ejemplo:
La expresión z = pow(x,y) asigna a la variable z el valor resultante de x
elevado a la y.
La expresión A = sqrt(B) asigna la raíz cuadrada de B a A, siendo B un número
real positivo.
La expresión x = abs(y) asigna a la variable x el valor absoluto de la variable
y (le quita el signo al valor de y si este es negativo).
15. ESCRITURA DE LAS EXPRESIONES
Las fórmulas matemáticas se deben escribir en formato lineal. Esto obliga al
uso frecuente de paréntesis que indiquen el orden de evaluación correcto de
los operadores.
16. OPERADORES RELACIONALES
Describen una relación entre dos valores; por lo tanto, se usan para
expresar condiciones y comparar dos valores.
El resultado de una expresión relacional es un valor tipo lógico o booleano,
es decir que sólo puede ser verdadero o falso.
En el lenguaje C se representa el verdadero con el valor 1 y el falso con el
valor 0.
Los operadores
relacionales son los
siguientes:
17. OPERADORES RELACIONALES
Estos permiten evaluar la igualdad y la magnitud, es decir si dos variables
son iguales, diferentes o menores; a su vez permite comprobar o bien probar
la veracidad de una condición, propuesta o pregunta, la respuesta es de valor
booleano por defecto: verdadero (1) y falso (0).
18. EXPRESIONES RELACIONALES
Permiten realizar comparaciones de valores de tipo numérico o carácter.
Estas sirven para expresar las condiciones en los algoritmos.
El formato general para las comparaciones es:
expresión1 operador de relación expresión2
y el resultado de la operación será verdadero o falso.
Por ejemplo, si A = 4 y B = 3, entonces A > B es verdadero mientras que
(A – 2) < (B – 4) es falso.
Las expresiones relacionales se pueden aplicar a cualquiera de los cuatro
tipos de datos estándar: enteros, real, lógico, carácter.
La aplicación a valores numéricos es evidente.
Los ejemplos siguientes son significativos:
19. EXPRESIONES RELACIONALES
Otros ejemplos:
En el código ASCII, la A mayúscula es menor que la a minúscula, ya que la primera
tiene el valor decimal 65 y la segunda 97; mientras que la B es 66.
En la expresión: x + y 3*z se compara el valor de la suma de x y y con el triple
del valor de z; si la suma es menor o igual que el triple de z entonces el
resultado de la expresión es 1, y en el caso contrario es 0.
20. OPERADORES LÓGICOS
Los operadores lógicos se usan para combinar condiciones o expresiones y
obtener un resultado que sólo puede asumir dos valores: verdadero o falso.
Estos trabajan con operandos que son expresiones lógicas; produciendo un
resultado booleano (los cuales están relacionados con verdadero o falso)
podría decirse que ayudan a unir propiedades.
Con los operadores lógicos se pueden crear condiciones compuestas en
una fórmula, cuando se deben cumplir dos o más condiciones para elegir un
determinado método de cálculo, es decir se pueden describir estas
combinaciones de condiciones.
Operador Pseudocódigo Lenguaje C Conectiva Lógica
AND y && Conjunción
OR o || Disyunción
NOT no ! Negación
21. EXPRESIONES LÓGICAS
Conocidas también como expresiones booleana, cuyo valor es siempre
verdadero (true) o falso (false).
En esencia, una expresión lógica es una expresión que sólo puede tomar
estos dos valores, verdadero y falso.
Las expresiones lógicas pueden combinarse para formar expresiones más
complejas utilizando los operadores lógicos: no (not), y (and) y o (or).
Ejemplos:
La expresión: a=!(41) almacena 0 en la variable a, debido a que la
expresión 41 es verdadera y el operador ! niega la expresión, haciéndola
falsa o igual a cero, recordando que se asume por defecto que verdadero es
1 y falso es 0.
Mientras que en la expresión: 1 7 && 9 3
1 1
1 Por tanto la expresión es
verdadera
22. EXPRESIONES LÓGICAS
Se pueden evaluar una o más condiciones en una expresión, y siempre el
resultado es un único valor lógico o booleano.
23. TABLA DE LA VERDAD
Llamada también tabla de valores de verdades, es una tabla que muestra
el valor de verdad de una proposición compuesta, para cada combinación de
verdad que se pueda asignar.
Esta estrategia de la lógica permite establecer la validez de varias
propuestas en cuanto a cualquier situación, es decir, determina
las condiciones necesarias para que sea verdadero un enunciado propuesto,
permitiendo clasificarlos en tautológicos (resultan verdaderos durante
cualquier situación) contradictorias (son enunciados falsos en la mayoría de
los casos) o contingentes (enunciados que pueden ser tantos verdaderos
como falsos no existen tendencia a un solo sentido).
Para la evaluación de
expresiones lógicas es
importante conocer la
Tabla de Verdad:
24. PRECEDENCIA DE LOS OPERADORES
Las expresiones que tienen dos o más operandos requieren unas reglas
matemáticas que permitan determinar el orden de las operaciones, se
denominan reglas de prioridad o precedencia y son:
1. Las operaciones que están encerradas entre paréntesis se evalúan
primero. Si existen diferentes paréntesis anidados (interiores unos a
otros), las expresiones más internas se evalúan primero.
2. Las operaciones aritméticas dentro de una expresión suelen seguir el
siguiente orden de prioridad:
i. ( )
ii. ++, – –, +, –, ! (unitarios)
iii. *, /, % (producto, división, módulo)
iv. +, – (suma y resta)
v. <, <=, >, >=
vi. == (igual a), != (no igual a)
vii. && (y lógica, AND)
viii. || (o lógica, OR)
ix. =, +=, -=, *=, /=, %= (operadores de asignación)
25. PRECEDENCIA DE LOS OPERADORES
En caso de coincidir varios operadores de igual prioridad en una expresión
o subexpresión encerrada entre paréntesis, el orden de prioridad es de
izquierda a derecha. A esta propiedad se denomina asociatividad.
Ejemplos:
Son muchas las reglas de precedencia de los operadores (incluyendo otros que aún
no se han visto) y no siempre son intuitivas, por tanto es conveniente indicar el
orden de evaluación usando paréntesis o guardando en variables los resultados
intermedios del cálculo.
a) 3 + 6 * 14
3 + 84
87
b) 8 + 7 * 3 + 4 * 6
8 + 21 + 4 * 6
8 + 21 + 24
29 + 24
53
c) 7 * (6 / 3) + 4
7 * 2 + 4
14 + 4
18
26. PRECEDENCIA ENTRE CARACTERES
Para realizar comparaciones de datos tipo carácter, se requiere una
secuencia de ordenación similar al orden creciente o decreciente. Esta
ordenación suele ser alfabética (tanto mayúsculas como minúsculas) y
numérica, considerándolas de modo independiente. Pero si se consideran
caracteres mixtos, se debe recurrir a un código normalizado como es el ASCII
(aunque no todas las computadoras lo siguen en su juego completo de
caracteres).
Estos códigos normalizados son:
Los caracteres especiales (, ), +, –, /, ..., exigen la consulta del código de
ordenación.
Los valores de los caracteres que representan a los dígitos están en su
orden natural. Esto es, '0'<'1', '1'<'2', ..., '8'<'9'.
Las letras mayúsculas siguen el orden alfabético ('A'<'B', 'C'<'F', etc.).
Las letras minúsculas, el mismo criterio alfabético ('a'<'b', 'c'<'h', etc.).
27. ACTIVIDADES
Cuáles son los símbolos de los operadores que se usan en PSeInt y
cuál es su precedencia.
Calcule las siguientes expresiones en pseudocódigo y escriba el
resultado respectivo (tome en cuenta las normas de precedencia):
1. 9+3*16/2**3-5/2
2. 15/3+4*3^2-5*6
3. (6*3+8-9/3+2^4)/2
Resuelva: Si X, Y y Z son variables de tipo lógico con valores X=true,
Y=false, Z=true, determine el valor de las siguientes expresiones
lógicas:
a. (X && Y) || (X && Z)
b. (X || !Y) && (!X || Z)
c. X || Y && Z
d. !(X || Y) && Z
e. X || Y || X && !Z && !Y
f. !X || !Y || Z && X && !Y
28. ACTIVIDADES
Evalúe la expresión y el valor binario correspondiente:
1. (23)
2. (815)
3. (7 5) y (49)
4. (12 6) o (13 9)
5. no(2 4)
Escriba las siguientes expresiones matemáticas como expresiones de
C.
1.
𝑥+𝑦
𝑥−3
+ 2𝑥 3.
2+5𝑦
𝑥−3
+ 4𝑥 − 7 − 𝑦
2.
𝑥+𝑦
𝑥 5−3 𝑦
+ 2𝑥 4.
2𝑥𝑦+5𝑦
𝑥−3
−
4𝑥−𝑥𝑦
7−𝑦(4+𝑥)
29. ALGORÍTMICA Y PROGRAMACIÓN
Unidad 3:DatosyEntidadesPrimitivas
Tema3.3.-Operadores yExpresiones
REFERENCIAS
Corona, M. y Ancona M. 2011. Diseño de algoritmos
y su codificación en lenguaje C. McGraw-Hill.
México.
Joyanes, L. y Zahonero, I. 2002. Programación en C.
Metodología, algoritmos y estructura de datos.
McGraw-Hill.
Joyanes, L. 2008. Fundamentos de Programación,
Algoritmos, Estructura de Datos y Objetos. Cuarta
edición. McGraw-Hill.
López, J. Algoritmos y Programación. 2009. Segunda
Edición. Eduteka.
Profa. Yenny Salazar