Date post: | 03-Apr-2018 |
Category: |
Documents |
Upload: | alanoud-b-al-firm |
View: | 226 times |
Download: | 0 times |
of 25
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