jueves, 19 de enero de 2017

[Tutorial Python] 6. Jerarquía de operaciones




Antes de abarcar otros temas sobre la programación en sí, quisiera hacer un paréntesis muy importante, y es que los operadores tienen un cierto orden de importancia y el ignorar esto puede causar errores que no son tan fáciles de percibir.

Si experimentaste bastante con lo que se vio en la publicación pasada te habrás dado cuenta que al momento de combinar muchas operaciones algunas veces no nos da el resultado "esperado" o "predecible", esto se debe a que las computadoras siguen un orden específico para resolver fórmulas; la cuál se describe a continuación: 
  1. Potencias y radicales
  2. Multiplicación, división, división sesgada y módulo
  3. Suma y resta
Esto quiere decir que las potencias y los radicales se resolveran primero que las multiplicaciones y las divisiones y estas, a su vez, se solucionarán antes que las adiciones y sustracciones.

Pero, ¿Qué pasa si hay dos operaciones de la misma jerarquía en una misma operación? Ah, pues en este caso se sigue la regla de izquierda a derecha, en la que se resolverá primero la operación que está a la izquierda entre dos o más operaciones de la misma jerarquía.

Por ejemplo: 

4+8×2÷4-32+√4=?

Entonces, según la jerarquía, se tienen que resolver primero las potencias y los radicales, pero si te das cuenta hay dos de ellos en esta operación:

4+8×2÷4-32+√4=?

Para resolver esto necesitamos aplicar la regla de izquierda a derecha; podrás pensar que no cambiaría nada a la hora de resolver la operación, y quizá tengas razón, pero esta regla se vuelve muy importante para las otras operaciones.

Resolviendo:

4+8×2÷4-9+2=?

Ahora, como ya no quedan potencias o radicales, pasamos a la siguiente posición en la jerarquía: las multiplicaciones y las divisiones:
4+8×2÷4-9+2=?

De nuevo, tenemos dos operaciones de la misma categoría y, de nuevo, tenemos que aplicar la regla de izquierda a derecha.

4+16÷4-9+2=?
4+4-9+2=?

Y, por último, resolvemos las operaciones de la última jerarquía de izquierda a derecha otra vez:

4+4-9+2=?
8-9+2=?
-1+2=

El controlar operaciones para que nos den resultados esperados o que tengan el comportamiento que nosotros queramos no sería tarea nada sencilla si no existieran los agrupadores matemáticos o los paréntesis. Aquellas operaciones que estén dentro de paréntesis tendrán la prioridad más alta sin importar la naturaleza de la operación; sin embargo, si dentro de los paréntesis hay operaciones de diferentes jerarquías se deben de respetar las reglas que vimos anteriormente.

Utilizando el ejemplo anterior, colocaremos paréntesis en un grupo de operaciones:

(4+8×2)÷4-32+√4=? 
 
Observa que son los mismos números y las mismas operaciones que el ejemplo pasado, pero esta vez hay paréntesis aislando algunas operaciones. Entonces se resolvería de esta manera:

(4+8×2)÷4-32+√4=?
(4+16)÷4-32+√4=?
20÷4-32+√4=?
20÷4-9+√4=?
20÷4-9+2=?
5-9+2=?
-4+2=-2 

Ahora te toca a ti practicar. Haz un programa que solicite datos al usuario y haz que estos datos pasen por una serie de operaciones (si no recuerdas cómo hacer operaciones en Python haz click aquí), luego coloca paréntesis en posiciones diferentes y, con los mismos datos de usuario, observa cómo el resultado cambia.

Eso es todo por ahora, si tienes alguna duda, un comentario, alguna aportación o consideras que hace falta explicar algo no dudes dejar un comentario. Saludos y hasta la siguiente entrada.