Download Programación

Document related concepts

Álgebra elemental wikipedia , lookup

Orden de evaluación wikipedia , lookup

Operación matemática wikipedia , lookup

Transcript
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++:
b2  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