+ All Categories
Home > Documents > 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and...

1 Compound Assignment C++ has a large set of operators for applying an operation to an object and...

Date post: 04-Jan-2016
Category:
Upload: melvin-barrett
View: 214 times
Download: 1 times
Share this document with a friend
32
1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples int i = 3; i += 4; // i is now 7 cout << i << endl; float a = 3.2; a *= 2.0; // a is now 6.4 cout << a << endl;
Transcript
Page 1: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

1

Compound Assignment

C++ has a large set of operators for applying an operation to an object and then storing the result back into the object

Examplesint i = 3;i += 4; // i is now 7cout << i << endl;

float a = 3.2;a *= 2.0; // a is now 6.4cout << a << endl;

Page 2: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

2

Increment and Decrement

C++ has special operators for incrementing or decrementing an object by oneExamplesint k = 4;++k; // k is 5

k++; // k is 6cout << k << endl;int i = k++; // i is 6, k is 7cout << i << " " << k << endl;int j = ++k; // j is 8, k is 8cout << j << " " << k << endl;

Page 3: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

3

If Control Construct

A mechanism for deciding whether an action should be taken

Chapter 4

JPC and JWD © 2002 McGraw-Hill, Inc.

Page 4: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

4

Boolean Algebra

Logical expressions have the one of two values - true or false

A rectangle has three sides The instructor has a pleasant smile

The branch of mathematics is called Boolean algebra Developed by the British mathematician George

Boole in the 19th century

Three key logical operators And Or Not

Page 5: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

5

Boolean Algebra

Truth tables Lists all combinations of operand values and the

result of the operation for each combination

Example

P Q P and Q

False False FalseFalse True FalseTrue False FalseTrue True True

Page 6: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

6

Boolean Algebra

Or truth table

P Q P or Q

False False FalseFalse True TrueTrue False TrueTrue True True

Page 7: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

7

Boolean Algebra

Not truth table

P not P

False TrueTrue False

Page 8: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

8

Boolean Algebra

Can create complex logical expressions by combining simple logical expressions

Example not (P and Q)

A truth table can be used to determine when a logical expression is true

P Q P and Q not (P and Q)

False False False TrueFalse True False TrueTrue False False TrueTrue True True False

Page 9: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

9

A Boolean Type

C++ contains a type named bool

Type bool has two symbolic constants true false

Boolean operators The and operator is && The or operator is || The not operator is !

Warning & and | are also operators so be careful what you

type

Page 10: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

10

A Boolean Type

Example logical expressions

bool P = true;bool Q = false;bool R = true;bool S = (P && Q);bool T = ((!Q) || R);bool U = !(R && (!Q));

Page 11: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

11

Relational Operators

Equality operators == !=

Examples int i = 32; int k = 45; bool q = (i == k); bool r = (i != k);

Page 12: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

12

Relational Operators

Ordering operators < > >= <=

Examples int i = 5; int k = 12; bool p = (i < 10); bool q = (k > i); bool r = (i >= k); bool s = (k <= 12);

Page 13: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

13

Operator Precedence Revisited

Precedence of operators (from highest to lowest)

Parentheses Unary operators Multiplicative operators Additive operators Relational ordering Relational equality Logical and Logical or Assignment

Page 14: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

14

Operator Precedence Revisited

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

Page 15: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

15

Operator Precedence Revisited

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

Yuck! Do not write expressions like this!

Page 16: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

16

Operator Precedence Revisited

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to ((((5 *15) + 4) == 13) && (12 < 19))

||

((!false) == (5 < 24))

Consider5 * 15 + 4 == 13 && 12 < 19 || !false == 5 < 24

However, for your information it is equivalent to

Page 17: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

17

Conditional Constructs

Provide Ability to control whether a statement list is

executed

Two constructs

If statement if if-else if-else-if

Switch statement Left for reading

ModifiedModified

Page 18: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

18

The Basic If Statement

Syntaxif (Expression)

Action

If the Expression is true then execute Action

Action is either a single statement or a group of statements within braces

Expression

Action

true false

Page 19: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

19

Example

if (Value < 0) { Value = -Value;}

Value < 0

Value = -Value

true false

Is our number negative?

If Value is not lessthan zero then ournumber is fine as is

If Value is less thanzero then we need toupdate its value tothat of its additive

inverse

Our number isnow definitelynonnegative

Page 20: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

20

Sorting Two Numbers (code segment)

cout << "Enter two integers: ";

int value1;

int value2;

cin >> value1 >> value2;

if (value1 > value2) {

int rememberValue1 = value1; //discuss scope

value1 = value2;

value2 = rememberValue1;

}

cout << "The input in sorted order: "

<< value1 << “, " << value2 << endl;

Page 21: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

21

Semantics

value2 < value1

int rememberValue1 = value1 value1 = value2 value2 = rememberValue1

true false

Are the numbersout of order

Rearrange value1and value2 to

put their valuesin the proper

order

The numbers wereinitially in order

The numbers wererearranged into the

proper order

The numbers are inorder

Page 22: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

22

What is the Output?Code Segment:

int m = 5;int n = 10;

if (m < n) {++m;++n;

}cout << " m = " << m << " n = " n << endl;

Output: m = 6 n = 11

Page 23: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

23

What is the Output? (no braces)

Code Segment:

int m = 25;int n = 14;

if (m < n)++m;

++n;

cout << " m = " << m << " n = " n << endl;

Output: m = 25 n = 15

Page 24: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

24

Ternary Conditional Operator

Ternary conditional operator (?:) Three arguments (condition, value if true, value if false)

Examples:

int grade;cin >> grade;cout << ( grade >= 60 ? “Passed” : “Failed” );

int x = 5, y = 10;cout << ( x > y ? x : y ) << " is greater." << endl;

x > y ? (ans = 1) : (ans = 0) ;ans = (x > y) ? (1) : (0) ; // same as above

Page 25: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

25

The If-Else StatementSyntax

if (Expression) Action1

else Action2

If Expression is true then executeAction1 otherwise execute Action2

if (v == 0) {

cout << "v is 0";

}else { cout << "v is not 0";

}

Expression

Action1 Action2

true false

Page 26: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

26

Finding the Max

cout << "Enter two integers: ";

int Value1;

int Value2;

cin >> Value1 >> Value2;

int Max;

if (Value1 < Value2) {

Max = Value2;

}

else {

Max = Value1;

}

cout << "Maximum of inputs is: " << Max << endl;

Page 27: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

27

Finding the Max

Value1 < Value2

Max = Value2 Max = Value1

true false

Is Value2 larger than Value1

Yes, it is . So Value2 islarger than Value1. Inthis case, Max is set

to Value2No, its not. So Value1is at least as large asValue2. In this case,Max is set to Value1

Either case, Max is setcorrectly

Page 28: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

28

Selection

It is often the case that depending upon the value of an expression we want to perform a particular action

Two major ways of accomplishing this choice

if-else-if statement if-else statements “glued” together

Switch statement An advanced construct

Page 29: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

29

An If-Else-If Statement

if ( nbr < 0 ) {cout << nbr << " is negative" << endl;

}

else if ( nbr > 0 ) {cout << nbr << " is positive" << endl;

}

else {cout << nbr << " is zero" << endl;

}

Page 30: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

30

Really A Composite Statement

if ( nbr < 0 ) {cout << nbr << " is negative" << endl;

}

else {

if ( nbr > 0 ) {cout << nbr << " is positive" << endl;

}

else {cout << nbr << " is zero" << endl;

}

}

AddedAdded

Page 31: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

31

A Switch Statementcout << “Enter your middle initial: “;char Initial;cin >> Initial;switch (Initial) {

case 'a': case 'A':case 'e': case 'E':case 'i': case 'I':case 'o': case 'O':case 'u': case 'U':

cout << Initial << " is a vowel" << endl;break;

default:cout << Initial << " is not a vowel" <<

endl;}

Page 32: 1 Compound Assignment C++ has a large set of operators for applying an operation to an object and then storing the result back into the object Examples.

32

cout << "Enter a simple arithmetic expression: ";

int Left;

int Right;

char Operator;

cin >> Left >> Operator >> Right;

cout << Left << " " << Operator << " " << Right

<< " = ";

switch (Operator) {

case '+' : cout << Left + Right << endl; break;

case '-' : cout << Left - Right << endl; break;

case '*' : cout << Left * Right << endl; break;

case '/' : cout << Left / Right << endl; break;

default: cout << "Illegal operation" << endl;

}


Recommended