Programación Instituto Tecnológico de Celaya EXPRESIONES ARITMÉTICAS: ORDEN DE PRECEDENCIA Como se ha discutido anteriormente, en un programa C++ es posible manipular variables y números usando los operadores aritméticos de suma, resta, multiplicación y división (y funciones matemáticas como seno, coseno, potencia, etc.). Cuando las expresiones aritméticas de un programa son complejas e involucran varias instancias de estas operaciones, el procesador de la computadora tendrá que decidir en que orden se deberán ejecutar dichas operaciones. Esta decisión se realiza con base en lo que se conoce como Reglas de Precedencia. Reglas de Precedencia Las reglas de precedencia permiten a un procesador decidir el orden en que las diferentes operaciones aritméticas son ejecutadas. Estas reglas son similares a las usadas en álgebra. Para las operaciones más comunes el orden de precedencia es: Función (raíz cuadrada, seno, Alta precedencia coseno, etc.) * Multiplicación / División + Suma - Resta Baja precedencia Es de hacer notar que las operaciones en un mismo renglón de la tabla tienen la misma precedencia. Cuando hay operaciones de la misma precedencia se ejecutan en orden izquierda a derecha. Como ejemplo, recuerde el programa que se realizó como ejercicio en el cual se solicitó definir: promedio = numero_1 + numero_2 + numero_3 / 3; Ingeniería Química Programación Instituto Tecnológico de Celaya Si se toma en cuenta el orden de precedencia, la sentencia anterior no da como resultado el promedio de tres números. La división tiene un orden de precedencia mayor que la suma. Por esa razón, antes de sumar los tres números, el procesador ejecutaría la división de numero_3 / 3 y a ese resultado le sumaría el numero_1 y el numero_2. Si, por ejemplo, numero_1 = 10, numero_2 = 5 y numero_3 = 9, el promedio sería 8. Sin embargo, el resultado de la sentencia sería: promedio = 10 + 5 + 3 = 18 Es de hacer notar, sin embargo, que el uso de paréntesis en las expresiones aritméticas permite modificar el orden de precedencia de los operadores. Si la sentencia del programa se modifica de forma que: promedio = (numero_1 + numero_2 + numero_3) / 3; entonces el resultado sería el correcto. El procesador trataría de ejecutar la división, pero en este caso el numerador, debido a la presencia del paréntesis, es la suma de los tres números y no sólo el numero_3. Como ejercicio, para las siguientes fórmulas matemáticas, encuentre la expresión correspondiente en C++: b 2 − 4ac x( y + z ) 1 x + x+3 2 a+b c−d Ingeniería Química Programación Instituto Tecnológico de Celaya Mezcla de Tipos Los operadores aritméticos pueden utilizarse para manipular tanto variables de tipo entero (int) como variables de tipo de punto flotante (double). Si un operador relaciona dos variables enteras, el resultado será un número entero. Asimismo, si un operador relaciona dos variables de punto flotante, el resultado es un número de punto flotante. Los operadores pueden utilizarse, sin embargo, también para relacionar dos variables de distinto tipo entre sí. En ese caso, si una de las dos variables es double, el resultado será double. Como ejemplo, ¿cuál es el valor de precio_total luego de ejecutarse las siguientes sentencias?: double precio_total; precio_total = 7/2; La relación entre dos números enteros es un entero, 7/2 = 3. Como complemento a dicha operación, el operador % permite obtener el residuo de una división: residuo = 7%2; Luego de ejecutarse dicha sentencia, residuo es igual a 1. Como contraparte: double precio_total; precio_total = 7.0/2; da como resultado precio_total = 3.5. Note que 7.0 es de punto flotante y 2 es entero. Ingeniería Química Programación Instituto Tecnológico de Celaya EJERCICIO Suponga que el calor específico (Cp) de una sustancia puede calcularse a partir de la expresión: Cp = a + bT c donde T es la temperatura en grados Kelvin y a, b y c son tres parámetros definidos para cada sustancia en particular. Escriba un programa en C++ expresión anterior. Ingeniería Química que ejecute el cálculo del Cp utilizando la