Java Expression Evaluation Tuesday, September 04, 2012 10:17 AM Evaluate the given Java expression given the State Vector (a,k) = (3,2) by using its Expression Tree a*3+7/k State Vector (a,k) = (3,2) Java Expr Tree Eval Page 1 Expression Tree Tuesday, September 04, 2012 10:17 AM The Java expression: has the tree shown below: a*3+7/k + / * a 3 7 k Java Expr Tree Eval Page 2 Add Value Boxes Tuesday, September 04, 2012 10:17 AM To this tree we add ONE value box next to each operator node + / * a 3 7 k Value Boxes Java Expr Tree Eval Page 3 Analyze State Vector Tuesday, September 04, 2012 10:17 AM Then we Analyze the State Vector (a,k) = (3,2) Means: + a=3 and k=2 / * a 3 3 7 And place the values for each variable just below (any) copies of the variable in the tree Java Expr Tree Eval Page 4 k 2 Bottom Up Evaluation Tuesday, September 04, 2012 10:17 AM State Vector (a,k) = (3,2) a*3+7/k + 9 / * a 3 * 3 7 k 2 Begin with nodes at the BOTTOM. Only work a node whose LEGS have ALREADY been evaluated. Java Expr Tree Eval Page 5 2nd Step Evaluation Tuesday, September 04, 2012 10:17 AM State Vector (a,k) = (3,2) a*3+7/k + 3 9 / * a 3 3 7 / k 2 Java Expr Tree Eval Page 6 OOPS ! SEE NEXT PAGE OOPS 7/2 Tuesday, September 04, 2012 3:57 PM The previous page seems to have made a mistake After all, 7/2 should be 3.5 RIGHT ? NOT IN JAVA In JAVA, 7/2 is just 3 This is called INTEGER DIVISION. It is division without the decimal point. As another example, 15/4 is just 3 and NOT 3.75 The .75 is JUST THROWN AWAY (NO ROUNDING) Java Expr Tree Eval Page 7 Completed Tree Tuesday, September 04, 2012 10:17 AM State Vector (a,k) = (3,2) a*3+7/k 12 + + 9 3 / * a 3 3 7 Last Step of Evaluation Java Expr Tree Eval Page 8 k 2 Nodes Labeled Tuesday, September 04, 2012 4:10 PM State Vector (a,k) = (3,2) a*3+5/k 12 #1 + 9 * a 3 3 #2 3 / #3 7 k 2 Label Nodes #1, #2, #3 BE CAREFUL to use the # sign DO NOT CONFUSE the numbers in boxes with the node label numbers. Java Expr Tree Eval Page 9 Mentor Table Tuesday, September 04, 2012 4:10 PM State Vector (a,k) = (3,2) a*3+5/k 12 #1 + 9 * a 3 3 #2 3 / #3 7 k 2 Place Tree information into a Table as expected by Mentor Java Expr Tree Eval Page 10 Label #1 #2 #3 Value 12 9 3 Oper + * / Kids #2 #3 a 3 7 k
© Copyright 2026 Paperzz