1. Matemáticos

1.8. Orden de Evaluación y Precedencia

Si escribimos la siguiente expresión:

2+3*4**5/6-2

Creo que a cualquiera le surge la duda de ¿cómo asociar los números para resolver la operación?

Alternativas podrían ser:

Bueno, cada lenguaje  tiene una Ley que sigue para interpretar el orden en que son evaluados los operandos (potencia, multiplicación, división, suma, resta)

Esta se conoce como Ley de Orden de Evaluación y Precedencia .

Para poder recordarla le propongo una regla nemotécnica.

Figura 1

 

Volviendo a nuestro ejemplo, vamos a poner paréntesis; que es lo que nos ayuda a agrupar las operaciones:

  1. 2+3*4**5/6-2   =>  potencia => 2+3*(4**5) / 6-2 => 2+3*1024/6-2
  2. 2+3*1024/6-2  => multiplicación =>2+(3*1024)/6-2 = 2+ 3072 /6-2
  3. 2+ 3072 /6-2 => división  => 2+ (3072 /6)-2= 2+512-2
  4. 2+512 -2=> suma =>(2+512)-2= 514-2
  5. 514-2 => resta => 512

Veamos si es cierto nuestro análisis..

Figura 2

Figura 3

Coincide con nuestro análisis.

   

 

 Podemos ver en el interprete de Python que si usamos los () podemos prescindir de las reglas de  precedencia de evaluación ya que los paréntesis hacen que se resuelvan desde el más anidado hasta el menos anidado, de la misma manera que se hace en matemática.