190 likes | 322 Vues
Dive into the essential operators used in programming, including arithmetic, relational, and boolean operators. This overview covers how MATLAB executes arithmetic equations following the order of operations, explains the distinctions between assignment and comparison using relational operators, and explores logical functions with boolean operators like AND, OR, and NOT. Unravel the complexity behind the symbols that dictate programming actions and enhance your coding skills by mastering these fundamental concepts.
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