viernes, 13 de julio de 2012

02.03 Jerarquía de los operadores aritméticos

Jerarquía de los operadores aritméticos
Prioridad
Operadores
Asociatividad
1
( )
 Empezando por los paréntesis más internos
2
++, --, +(positivo), - (negativo)
 De derecha a izquierda, ++ y --  dependiendo de la posición
3
*,/,%
 De izquierda a derecha
4
+, -
 De izquierda a derecha
5
=,+=,-=,*=, /=,%=
 De derecha a izquierda
 
La jerarquía en los operadores nos ayudan a poder definir la manera adecuada en la que una instrucción de cálculo debe ser escrita en el lenguaje de programación, por ejemplo si deseamos llevar a cabo la fórmula

La instrucción de asignación que quisiéramos definir quedaría como:

e = ((a*b*c) / d) / f

Ejemplo:

import java.awt.*;
import java.applet.*;

// <applet width="200" height="200" code="pru"></applet>

public class pru extends Applet {
public void paint(Graphics g) {
double e,a,b,c,d,f;

a=20;
b=12;
c=2;
d=5;
f=10;
e = ((a*b*c) / d) / f;
g.drawString("((a*b*c) / d) / f = "+e, 100, 20);
}
}



Pero esto no significa que es la única manera de escribirla, ya que si aplicamos la jerarquía de los operadores la siguiente instrucción también sería valida:
e = a * b * c / d / f
La operación anterior sería ejecutada de la siguiente manera:

Primero, se multiplicará a por b.
Segundo, el resultado ya obtenido de a*b se multiplicará por c.
Tercero, el resultado ya obtenido de a*b*c se dividirá entre d.
Finalmente, el resultado ya obtenido de a*b*c/d se dividirá entre f para asignarse a e.


¿Cuál sería la manera de codificar la siguiente fórmula?

La respuesta es:
e = 4/((a+b)/(c/d)) + v/w/p + 5*m*n*q
Aplicando las reglas de jerarquía de los operadores aritméticos queda de la siguiente manera:
Primero, se sumará a más b.
Segundo, se dividirá c entre d.
Tercero, el resultado ya obtenido de a+b se dividirá entre el resultado ya obtenido de c/d.
Cuarto, se dividirá 4 entre el resultado ya obtenido de ((a+b)/(c/d))
Quinto, se dividirá v entre w.
Sexto, se dividirá el resultado ya obtenido de v/w entre p.
Séptimo, se multiplicará 5 por m.
Octavo, se multiplicará el resultado ya obtenido de 5*m por n.
Noveno, se multiplicará el resultado ya obtenido de 5*m*n por q.
Décimo, se sumará el resultado ya obtenido de 4/((a+b)/(c/d)) más el resultado ya obtenido de v/w/p.
Finalmente, se sumará el resultado ya obtenido de 4/((a+b)/(c/d)) + v/w/p más el resultado ya obtenido de 5*m*n*q y se asignará a e.

No hay comentarios:

Publicar un comentario