23
Chapter 3 Arithmetic Operations

Arithmetic Operations. Review function statement input/output comment #include data type variable identifier constant declaration

Embed Size (px)

Citation preview

Chapter 3Arithmetic Operations

Reviewfunctionstatementinput/outputcomment#includedata typevariableidentifierconstantdeclaration

3

Declaration Statements

Variable: a memory location to store dataVariable value: the content in the locationIdentifier: the symbolic name of a variableData Type: the type of data the variable is for

A declaration tells the compiler to allocate enough memory to hold a value of this data type and to

associate the identifier with this location

string name;string firstName, lastName;int num = 10;

DataType Identifier , Identifier, … ;

Arithmetic Operations

Add Two NumbersIn Math S = x + y

Or x + y = S

5

How to add two numbers in C++?

Assignment Operator: =num1 + num2 = sum; // Valid in C++? // No

Assignment statement MUST be from right to left sum = num1 + num2; // Correct! // Not “equal”

Assignment statement: variable = expression;

6

Are the two statements the same?

Sum = Num1 + Num2;

Sum = num1 + num2;

// NO!// C++ is case sensitive!

7

Arithmetic Operators Addition: +

to compute SumSubtraction: -

to compute DifferenceMultiplication: *

to compute ProductDivision: /

to compute QuotientModulus: %

to compute the remainder from integer division

You MUST use operators to compute in C++!

8

Arithmetic Operators What is ** in C++? result = x ** y; // Not good!

What is ^ in C++? result = x ^ y; // Not good!

S = x ( y + z); //Is it good in C++? //Missing operator!S = x * ( y + z); // Good!

9

Unary OperatorUnary operator: operator that has only one

operand

validCount ++; // validCount = validCount + 1;

totalCount --; // totalCount = totalCount - 1;

Binary operator: operator that has two operands

num1 + num2

Semantics, Syntax, and Styletotal = total + 2;Semantics Increase total by 2 Assignment (right to left) Not equalSyntax Statement terminator Case sensitive Style one space before and after any operator meaningful name

11

Precedence RulesFrom high to low:

( ) *, /, %+, -

12

Examplesx = 8 - 4 * 2; // result:x = (8 - 4) * 2; // result: y = 8 / 4 * 2; // result: y = 8 / (4 * 2); // result:

13

More Examples z = 8 / 4 ^ 2; // No! z = 8 / 4 ** 4; // No! z = 8 / 4 * 4 // Result: ? X = 5(3 – 7);//Result: ?z = 5 / (2 * 5); // Result: 0.5 or 0?

14

Integer Division vs. Float Division In Math

5 is almost always the same as 5.0

In C++

5 is almost never the same as 5.0 Why?

Store value in computer as bits, bytes.

5 is stored as an integer 5.0 is stored as a float number

15

Integer DivisionWe can only get integers!

7 / 5Quotient: 1

Remainder: 2

5 / 7Quotient: 0

Remainder: 5

16

Float DivisionWe get float result!

7.0 / 5.0 Quotient: 1.47 / 5.0 (Same)7.0 / 5 (Same)

5.0 / 7Quotient: 0.714285…

17

As long as there is a float number in the expression, the result is a float number.

18

The Cast Functionsint num1, num2; float quotient;

cin >> num1 >> num2; quotient = num1 / num2; // what’s the value of quotient?

// How to get float quotient?quotient = float(num1) / num2;// Use cast function float(variable)

quotient = float(num1 / num2);// Integer division or float division?// Integer division!

Quotient (Division) Operator: /Expression 7 / 5 5 / 7 14 / 5 5 / 14 143 / 10 10 / 143

19

Result1 02 0

14 0

Remainder (Modular) Operator: %

Expression 7 % 5 5 % 7 14 % 5 5 % 14 143 % 10 10 % 143

20

Result25453

10

Exercises Expression Result

12 % 20 * 3 (12 % 20) * 3 12 * 3 20 % 12 * 3 12 / 20 * 3 20 / 12 * 3 20 / 12 % 3 20 % 12 % 3

21

Why Integer Division? Get $143 from ATM 143 / 50Number of $50 bills: 2 143 % 50Amount left after $50 bills: 43 43 / 10Number of $10 bills: 4 43 % 10Amount left after $10 bills: 3

Number of $1 bills: 3 22

after class exercise:write this solution into a C++ program

SummaryAssignment Operator total = total + num1; // from right to

leftArithmetic Operators and Precedence

Rules () /, %, * -, +Semantics, Syntax, and Style

23