SlideShare una empresa de Scribd logo
1 de 29
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
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
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.
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.
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:
OPERADORES DE ASIGNACIÓN
Otros ejemplos de asignación:
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;
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.
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.
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.
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.
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)
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
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).
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.
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:
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).
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:
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.
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
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=!(41) almacena 0 en la variable a, debido a que la
expresión 41 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
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.
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:
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)
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
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.).
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
ACTIVIDADES
Evalúe la expresión y el valor binario correspondiente:
1. (23)
2. (815)
3. (7 5) y (49)
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+𝑥)
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Algoritmos secuenciales resueldos
Algoritmos  secuenciales resueldosAlgoritmos  secuenciales resueldos
Algoritmos secuenciales resueldos
 
Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Condicion Si ANIDADA
Condicion Si ANIDADACondicion Si ANIDADA
Condicion Si ANIDADA
 
TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++TIPOS DE DATOS PARA C++
TIPOS DE DATOS PARA C++
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Lógica de programación
Lógica de programaciónLógica de programación
Lógica de programación
 
Power point algoritmo
Power point algoritmoPower point algoritmo
Power point algoritmo
 
Metodologia XP
Metodologia XPMetodologia XP
Metodologia XP
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Estructura de Lenguaje C++
Estructura de Lenguaje C++Estructura de Lenguaje C++
Estructura de Lenguaje C++
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Bucle for (1)
Bucle for (1)Bucle for (1)
Bucle for (1)
 

Similar a 3.3.- Operadores y Expresiones

INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2thefasp10
 
1390230107 194 _operadores
1390230107 194 _operadores1390230107 194 _operadores
1390230107 194 _operadoresJair BG
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosMary Sanchez
 
Fundamentos programcion unidad_i
Fundamentos programcion unidad_iFundamentos programcion unidad_i
Fundamentos programcion unidad_iNany Hernandez
 
Alguas ideas de estructura de datos
Alguas ideas de estructura de datosAlguas ideas de estructura de datos
Alguas ideas de estructura de datosWolphkens Leveille
 
material_2018F1_COM115_01_105735.ppt
material_2018F1_COM115_01_105735.pptmaterial_2018F1_COM115_01_105735.ppt
material_2018F1_COM115_01_105735.pptBryanCuesta4
 
Ejercicios
EjerciciosEjercicios
EjerciciosTensor
 
Unidad II Datos y Entidades Primitivas
Unidad II Datos y Entidades PrimitivasUnidad II Datos y Entidades Primitivas
Unidad II Datos y Entidades PrimitivasAverkleyCH
 
3ra parte operaciones
 3ra parte operaciones 3ra parte operaciones
3ra parte operacionesyuli02
 
Lenguaje de programacion c++ basico 3ra parte operaciones
Lenguaje de programacion c++ basico 3ra parte operacionesLenguaje de programacion c++ basico 3ra parte operaciones
Lenguaje de programacion c++ basico 3ra parte operacionesDunkherz
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++KatherinBarrios17
 

Similar a 3.3.- Operadores y Expresiones (20)

INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2INTRODUCCIÓN ADSI - PARTE 2
INTRODUCCIÓN ADSI - PARTE 2
 
10_ALGORITMOS 2.pdf
10_ALGORITMOS 2.pdf10_ALGORITMOS 2.pdf
10_ALGORITMOS 2.pdf
 
Grupo 03
Grupo 03Grupo 03
Grupo 03
 
1390230107 194 _operadores
1390230107 194 _operadores1390230107 194 _operadores
1390230107 194 _operadores
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para Algoritmos
 
Fundamentos programcion unidad_i
Fundamentos programcion unidad_iFundamentos programcion unidad_i
Fundamentos programcion unidad_i
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Alguas ideas de estructura de datos
Alguas ideas de estructura de datosAlguas ideas de estructura de datos
Alguas ideas de estructura de datos
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Operadores de c_..
Operadores de c_..Operadores de c_..
Operadores de c_..
 
OPERADORES PARA C++
OPERADORES PARA C++OPERADORES PARA C++
OPERADORES PARA C++
 
Operadores de c++
Operadores de c++Operadores de c++
Operadores de c++
 
material_2018F1_COM115_01_105735.ppt
material_2018F1_COM115_01_105735.pptmaterial_2018F1_COM115_01_105735.ppt
material_2018F1_COM115_01_105735.ppt
 
Expresiones algorítmicas
Expresiones algorítmicasExpresiones algorítmicas
Expresiones algorítmicas
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Unidad II Datos y Entidades Primitivas
Unidad II Datos y Entidades PrimitivasUnidad II Datos y Entidades Primitivas
Unidad II Datos y Entidades Primitivas
 
3ra parte operaciones
 3ra parte operaciones 3ra parte operaciones
3ra parte operaciones
 
Lenguaje de programacion c++ basico 3ra parte operaciones
Lenguaje de programacion c++ basico 3ra parte operacionesLenguaje de programacion c++ basico 3ra parte operaciones
Lenguaje de programacion c++ basico 3ra parte operaciones
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++
 
TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++TIPOS DE OPERADORES PARA C++
TIPOS DE OPERADORES PARA C++
 

Más de Yenny Salazar

Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasUnidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasYenny Salazar
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y ConstantesYenny Salazar
 
2.3.- Documentación
2.3.- Documentación2.3.- Documentación
2.3.- DocumentaciónYenny Salazar
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- ProgramaciónYenny Salazar
 
Tema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónTema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónYenny Salazar
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadYenny Salazar
 
1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo1.2.3.- Pseudocódigo
1.2.3.- PseudocódigoYenny Salazar
 
Tema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoTema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoYenny Salazar
 
1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y ProgramaciónYenny Salazar
 
Principios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesPrincipios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesYenny Salazar
 

Más de Yenny Salazar (11)

Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasUnidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
 
3.1.- Tipo de Datos
3.1.- Tipo de Datos3.1.- Tipo de Datos
3.1.- Tipo de Datos
 
2.3.- Documentación
2.3.- Documentación2.3.- Documentación
2.3.- Documentación
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
 
Tema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónTema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de Programación
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
 
1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo
 
Tema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoTema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de Flujo
 
1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación
 
Principios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesPrincipios Fundamentales para el Proceso de la toma de decisiones
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:
  • 6. OPERADORES DE ASIGNACIÓN Otros ejemplos de asignación:
  • 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=!(41) almacena 0 en la variable a, debido a que la expresión 41 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. (23) 2. (815) 3. (7 5) y (49) 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