### Chapter 3

```Arithmetic Operations
Review










function
statement
input/output
comment
#include
data type
variable
identifier
constant
declaration
Declaration Statements
string name;
string firstName, lastName;
int num = 10;




DataType Identifier , Identifier, … ;
Variable: a memory location to store data
Variable value: the content in the location
Identifier: the symbolic name of a variable
Data 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
3
In Math
S=x+y
Or
x+y=S
How to add two numbers in C++?
5
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
 to compute Sum
 Subtraction:  to compute Difference
 Multiplication: *
 to compute Product
 Division: /
 to compute Quotient
 Modulus: %
 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 Operator
 Unary 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 Style
total = total + 2;
 Semantics
Increase total by 2
Assignment (right to left)
Not equal
 Syntax
Statement terminator
Case sensitive
 Style
one space before and after any operator
meaningful name
11
Precedence Rules
 From high to low:
 ()
 *, /, %
 +, -
12
Examples
x = 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 Division
We can only get integers!
7/5
Quotient: 1
Remainder: 2
5/7
Quotient: 0
Remainder: 5
16
Float Division
We get float result!
7.0 / 5.0
Quotient: 1.4
7 / 5.0 (Same)
7.0 / 5 (Same)
5.0 / 7
Quotient: 0.714285…
As long as there is a float number in the expression,
the result is a float number.
17
The Cast Functions
int 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!
18
Quotient (Division) Operator: /
Expression
7/5
5/7
14 / 5
5 / 14
143 / 10
10 / 143
Result
1
0
2
0
14
0
19
Remainder (Modular) Operator: %
Expression
7%5
5%7
14 % 5
5 % 14
143 % 10
10 % 143
Result
2
5
4
5
3
10
20
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
after class exercise:
write this solution into
a C++ program
143 / 50
Number of \$50 bills: 2
143 % 50
Amount left after \$50 bills: 43
43 / 10
Number of \$10 bills: 4
43 % 10
Amount left after \$10 bills: 3
Number of \$1 bills: 3
22
Summary
 Assignment Operator
total = total + num1; // from right to left
 Arithmetic Operators and Precedence Rules
()
/, %, *
-, +
 Semantics, Syntax, and Style
23
```