+ All Categories
Home > Documents > 5 Operators

5 Operators

Date post: 03-Apr-2018
Category:
Upload: alanoud-b-al-firm
View: 226 times
Download: 0 times
Share this document with a friend

of 25

Transcript
  • 7/29/2019 5 Operators

    1/25

    STRUCTUREDPROGRAMMING

    C++ Operators

  • 7/29/2019 5 Operators

    2/25

    Content2

    C++ operators

    Assignment operators

    Arithmetic operators

    Increment and decrement operators

    Decision making operators (logical and relational)

    Conditional operator

    Precedence and associativity of operators

    Common errors

  • 7/29/2019 5 Operators

    3/25

    Objectives3

    By the end you should be able to:

    Use the assignments and arithmetic operators

    How decisions are made in your programs

    Write simple decisionmaking statements

    Recognize the precedence and associatively of operators

    Identify and use the C++ conditional operator (?:)

    Identify and use Increment & decrement operators

    Use operators in output statements

    Properly mix data types in expression and calculations

  • 7/29/2019 5 Operators

    4/25

    Operators

    Data connectors within expression or equation

    Concept related

    Operand: data that operator connects and processes

    Resultant: answer when operation is completed

    Operators types based on their mission

    Assignment

    Arithmetic: addition, subtraction, modulo division, ...etc

    Relational: equal to, less than, grater than, etc

    Logical (decision-making): NOT, AND, OR

    4

  • 7/29/2019 5 Operators

    5/25

    Operators (cont.)

    Operators types based on number of operands

    Unary operators

    Have only one operand

    May be prefix or postfix

    e.g. ++ !--

    Binary operators

    Have two operands

    Infix

    e.g. +&&==

    Ternary operators

    Have three operands

    e.g. ? :

    5

  • 7/29/2019 5 Operators

    6/25

    Assignment operators

    Assignment statement takes the form below

    Binary operators

    Expression is evaluated and its value is assigned to the variable on

    the left side

    Shorthand notation

    varName = varName operator expression;

    varName operator = expression;

    6

    varName = expression;

    c = c + 3;

    c += 3;

  • 7/29/2019 5 Operators

    7/25

    Assignment operators (cont.)

    Assignment between objects of the same type is always supported

    7

    Assignmentoperator

    Sampleexpression

    Explnation Assigns

    Assume: int c = 3, d = 5, e = 4, f = 6, g = 12;

    += c += 7 c = c + 7 10 to c

    -= d -= 4 d = d4 1 to d

    *= e *= 5 e = e * 5 20 to e

    /= f /= 3 f = f / 3 2 to f

    %= g %= 9 g = g % 9 3 to g

  • 7/29/2019 5 Operators

    8/25

    Arithmetic Operators

    All of them are binary operators

    Arithmetic expressions appear in straight-line form

    Parentheses () are used to maintain priority of manipulation

    8

    C++ operation C++ arithmeticoperator

    Algebraicexpression

    C++ expression

    Addition + + 7 f + 7

    Subtraction - p - c p - c

    MUltiplication * bm or b . m b * m

    Division / x / y or x y x / y

    Modulus % r mod s r % s

  • 7/29/2019 5 Operators

    9/25

    Arithmetic Operators

    Precedence

    Operators in parentheses evaluated first

    Nested/embedded parentheses

    Operators in innermost pair first

    Multiplication, division, modulus applied next

    Operators applied from left to right

    Addition, subtraction applied last

    Operators applied from left to right

    9

  • 7/29/2019 5 Operators

    10/25

    Example

    The statement is written in algebra as

    z = pr % q + w / (x y)

    How can we write and evaluate the previous statement in C++ ?

    z = p * r % q + w / (x - y);

    10

    53 42 16

  • 7/29/2019 5 Operators

    11/25

    Increment and Decrement

    Operators

    Unary operators

    Adding 1 to or (subtracting 1 from) variables value

    Increment operator gives the same result of

    (c=c+1) or (c+=1)

    Decrement operator gives the same result of

    (c=c-1) or (c-=1)

    11

  • 7/29/2019 5 Operators

    12/25

    Increment and Decrement Operators

    (cont.)12

    Operator Called Sample

    expression

    Explanation

    ++ Preincrement ++a Increment a by 1, then use the new value ofa in the expression in which a resides.

    ++ Postincrement a++ Use the current value of a in the expression

    in which a resides, then increment a by 1.

    Pridecrement --b Decrement b by 1, then use the new value of

    b in the expression in which b resides.

    Postdecrement b-- Use the current value of b in the expression

    in which b resides, decrement b by 1.

  • 7/29/2019 5 Operators

    13/25

    Examples13

    int x = -10 , y;

    y = ++x;

    cout

  • 7/29/2019 5 Operators

    14/25

    Relational and EqualityOperators

    Binary operators

    Used in decision -making statements

    14

    Standard algebraic

    equality operator orrelational operator

    C++ equality

    or relationaloperator

    Example

    of C++condition

    Meaning of

    C++ condition

    Relational operators

    > > x > y x is greater than y

    < < x < y x is less than y

    >= x >= y x is greater than or equal to y

  • 7/29/2019 5 Operators

    15/25

    Relational and Equality Operators(cont.)

    Have the same level of precedence

    Applied from left to right

    Used with conditions

    Return the value true orfalse

    Used only with a single condition

    15

  • 7/29/2019 5 Operators

    16/25

    Logical Operators

    Used to combine between multiple conditions

    && (logical AND)

    true if both conditions are true

    gender == 1 && age >= 65

    || (logical OR)

    true if either of condition is true

    semesterAverage >= 90 || finalExam >= 90

    16

    1st condition 2nd condition

  • 7/29/2019 5 Operators

    17/25

    Logical Operators (cont.)

    ! (logical NOT, logical negation)

    Returns true when its condition is false, and vice versa

    !( grade == sentinelValue )

    Also can be written as

    grade != sentinelValue

    17

  • 7/29/2019 5 Operators

    18/25

    Conditional operator (?:)

    Ternary operator requires three operands

    Condition

    Value when condition is true

    Value when condition is false

    Syntax

    18

    Condition ?conditions true value :conditions false value

  • 7/29/2019 5 Operators

    19/25

    Examples

    Can be written as

    Can be written as .. ?

    19

    grade >= 60 ? cout

  • 7/29/2019 5 Operators

    20/25

    Summary of Operator

    Precedence and Associativity20

    Operators Associativity Type

    () [] left to right highest++ -- static_cast< type>( operand) left to right unary (postfix)++ -- + - ! & * right to left unary (prefix)* / % left to right multiplicative+ - left to right additive> left to right insertion/extraction< >= left to right relational== != left to right equality&& left to right logical AND|| left to right logical OR?: right to left conditional= += -= *= /= %= right to left assignment, left to right comma

  • 7/29/2019 5 Operators

    21/25

    bool Variables in Expressions

    false is zero and true is any non-zero

    The following codes applies implicit conversion between bool and

    int

    21

    int x = -10 ;

    bool flag = x ;

    // true

    int a = flag ;

    // assign the value 1

    int b = !flag;

    // assign the value 0

    x = flag + 3;

    // assign the value 4

    bool test1,test2,test3 ;

    int x = 3 , y = 6 , z = 4 ;

    test1 = x > y ; // false

    test2 = !(x == y ); // true

    test3 = x < y && x < z ; // true

    test3 = test1 || test2 ; // true

    test2 = !test1; // true

    Code # 1 Code # 2

  • 7/29/2019 5 Operators

    22/25

    Common Compilation Errors

    Attempt to use % with non-integer operands

    Spaces between pair of symbols e.g. (==, !=, etc)

    Reversing order of pair of symbols e.g. =!

    Confusing between equality (==) and assignment operator (=)

    22

  • 7/29/2019 5 Operators

    23/25

    Exercise - 123

    What is the output of the following program?

    1 #include

    2

    3 using std::cout;

    4 using std::endl;

    56 int main()

    7 {

    8 int x; int y; int z;

    9

    10 x = 30; y = 2; z = 0;

    11

    12 cout

  • 7/29/2019 5 Operators

    24/25

    Exercise - 224

    What is wrong with the following program?

    1 int main()

    2 {

    3 int a,b,c,sum;

    4 sum = a + b + c ;

    5 return 0;

    6 }

  • 7/29/2019 5 Operators

    25/25

    Included Sections25

    Chapter 2: from section 6 and 7

    Chapter 4: section 11 and 12


Recommended