190 likes | 306 Views
“Operators” (i.e. “symbols”). Overview: Specific Symbols that Represent Specific Actions Arithmetic Relational Boolean Output values. Overview : most Operators. There are 3 primary groups of operators One operator is very different in programming compared to math .
E N D
“Operators” (i.e. “symbols”) Overview: Specific Symbols that Represent Specific Actions Arithmetic Relational Boolean Output values
Overview: most Operators • There are 3 primary groups of operators • One operator is very different in programming compared to math
1. Arithmetic Operators REVIEW • Arithmetic equations: variableName = equation ; • MATLAB executes the equation FIRST (following the order of operation from left to right), then stores the result in the variable on the left. • However, in the equation itself, MATLAB respects the Order of Operations: • 2+3*5 is the same as 2+(3*5), but different than (2+3)*5 • val1*val2/val3^4 + val5/(val6+val7); • Remember the multiplication operator isn’t implied >>(2)(5)(5.5)+5(6/3) <enter> will crash MATLAB.
2. Relational Operators • Relational operators allow a comparison to be evaluated. Is thrust_a greater than thrust_b? True/false? 1/0? Is surface1 equal to surface2? True/false? 1/0? Isload1less than or equal toload2? True/false? 1/0? • Examples:
= vs. == operator = operator: ASSIGNMENT == operator: COMPARE "Is this value equal to another" • "To give a value to" THIS IS NOT A RELATIONAL OPERATOR!! MATLAB is NOT checking the relation between x and 2
Spaces or not? • When one relational operator is made up of 2 symbols (<=, >=, ~=, ==): • KEEP THEM GLUED TOGETHER • Regardless of which operator is used, a space can be used before and/or after. All these are identical to MATLAB: • thrustA<=thrustB %no spaces anywhere • thrustA <=thrustB %1 space before the operator • thrustA<= thrustB %1 space after the operator • thrustA <= thrustB %1 space before AND after
3. Boolean Operators • These operators take logical values and perform some operation on them to yield a logical value (0 or 1) • Two Boolean operators allow to COMBINE relational expressions • && Logical AND • || Logical OR • One Boolean operator allows to NEGATE the result • ~ Logical NOT • “Negates”: turns true values into false, and false values into true
Boolean Operators “ if this is true and this is false… do something” if(it’s raining outside) and (you have an umbrella) go, you won’t get wet else stay inside! end ifx<0 && y>0 && z>0 %if x negative and y and z positive %do option1 else %do option2 end
Boolean Operator #1: && “and” • Two & symbols (“Ampersand”), glued together && • Both relational expressions must be truefor the combined expression to be true • X && Y yields trueiff both XandY are true e.g. (3<5) && (8>=8) ? (x< 3) && (x > 5) ? x = 52.1; (5.5<x) && (x<100.2) ?
&&, continued • Use of parenthesis e.g. (3<5) && (8>=8) true same as 3<5 && 8>=8 true (x<3) && (x>5) false same as x<3 && x>5 false For sanity, at least use spaces before/after the operator!
True/False (2 > 3) && (3 < 29.3) • True (1) • False (0) • Impossible to determine (22 > 3) && (3 > 29.3) • True (1) • False (0) • Impossible to determine (22 > x) && (x > 29.3) • True (1) • False (0) • Impossible to determine (x<2) && (y>0) • True (1) • False (0) • Impossible to determine • What is the result of the following statement?
True/False F && T • True (1) • False (0) T && F • True (1) • False (0) F && F • True (1) • False (0) T && T • True (1) • False (0) • In other words, there are 4 options:
Boolean Operator #2: || “or” • Two | symbols (“pipe”), glued together || • At least ONE relational expressions must be truefor the combined expression to be true • X || Y yields true if eitherXorY (or both) are true e.g. (3<5) || (5>=8) ? x = 4.2; (x< 3) || (x > 5) ?
True/False (2 > 3) || (3 < 29.3) • True (1) • False (0) • Impossible to determine (22 > 3) || (3 > 29.3) • True (1) • False (0) • Impossible to determine (22 > x) || (x > 29.3) • True (1) • False (0) • Impossible to determine (x<2) || (y>0) • True (1) • False (0) • Impossible to determine • What is the result of the following statement?
True/False F || T • True (1) • False (0) T || F • True (1) • False (0) F || F • True (1) • False (0) T || T • True (1) • False (0) • Again, there are 4 options:
Priorities between Boolean Operators • Which operator has priority in the following? 1 + 1 + 0 * 1 • Just like * has priority over + , && has priority over || • What is the result of this statement? x = 44.5; y = 55; (x<=50) || (0<y) && (y<40) ? ((x<=50) || (0<y)) && (y<40) ? (x<=50) || ((0<y) && (y<40)) ?
Boolean Operator #3: NOT • One ~ symbol (“tilde”) • “NOT” : negates a value • Example: x = true; %keyword is known to MATLAB y = ~x; %y now has the value false • Example: • the value y entered by the user should NOT be between 4 and 9 cm included: %assume user enters 7.4 when asked for a value of y ~(4<=y && y<=9) ?
Key Ideas • Vocabulary: operators, operands, arithmetic, relational, boolean, unary, binary, numerical, logical • Assignment vs. “is equal to” operator • Find the &, |, and ~ symbols on the keyboard • When does a && b && c evaluate the true? • When does a || b || c evaluate to true? • When does a && b || c && d evaluate to true? • Order of operations is respected when MATLAB executes any expression