Functions

/Users/garethloy/Musimathics/Musimat1.2/MusimatTutorial/B0112.cpp File Reference

#include "MusimatTutorial.h"

Go to the source code of this file.

Functions

 MusimatTutorialSection (B0112)

Function Documentation

MusimatTutorialSection ( B0112   )

Definition at line 2 of file B0112.cpp.

References x, and y.

                              {
        Print("*** B.1.12 Operator Precedence and Associativity ***");
        /*****************************************************************************
         
         B.1.12 Operator Precedence and Associativity
         
         In the expression a * x + b * y, what is the order in which the operations are carried out? By 
         the standard rules of mathematics, we should first form the products a*x and b*y, then 
         sum the result. So multiplication has higher precedence than addition. The natural precedence of 
         operations can be overridden by the use of parentheses. For example, a * (x + b) * y forces the 
         summation to occur before the multiplications.
         
         In the expression a + b + c, we first add a to b, then add the result to c, so the associativity 
         of addition is left to right. We could express left-to-right associativity explicitly like this: 
         (((a) + b) + c).
         
         The rules of precedence and associativity in programming languages can be complicated, but 
         the programming examples in this section use the following simplified rules.
         
         Expressions are evaluated from left to right, except
         
         o Multiplications and divisions are performed before additions and subtractions.
         
         o All arithmetic operations (+, -, *, /) are performed before logical operations (And, Or, 
         ==, <, >).
         
         o Parentheses override the above precedence rules.
         
         For details, see section B.3.
         
         *****************************************************************************/
        
        Integer a = 2, x = 3, b = 4, y = 5;
        Print("a * x + b * y = ", a * x + b * y); // prints 26
        Print("a * (x + b) * y = ", a * (x + b) * y); // prints 70
        
}