0% found this document useful (0 votes)
53 views33 pages

Chapter 3 Operation and Expression

Chapter 3 covers basic arithmetic operations and expressions in programming, detailing operators for addition, subtraction, multiplication, and division, along with the importance of operand types. It explains assignment statements, initializing variables, and the use of relational and logical operators for comparisons and evaluations. The chapter also highlights the order of precedence for operations and provides examples of unary operators.

Uploaded by

Chen Dishan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views33 pages

Chapter 3 Operation and Expression

Chapter 3 covers basic arithmetic operations and expressions in programming, detailing operators for addition, subtraction, multiplication, and division, along with the importance of operand types. It explains assignment statements, initializing variables, and the use of relational and logical operators for comparisons and evaluations. The chapter also highlights the order of precedence for operations and provides examples of unary operators.

Uploaded by

Chen Dishan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

CHAPTER 3

OPERATION AND EXPRESSION

1
Basic Arithmetic Operation
• Arithmetic is performed with operators
– + for addition
– - for subtraction
– * for multiplication
– / for division

• Example: storing a product in the variable


total_weight

total_weight = one_weight * number_of_bars;


2
Arithmetic Expression
• Arithmetic operators can be used with any
numeric type
• An operand is a number or variable
used by the operator
• Result of an operator depends on the types
of operands
– If both operands are int, the result is int
– If one or both operands are double, the result is
double

3
Arithmetic Expression (cont.)
• Division with at least one operator of type double
produces the expected results.

double divisor, dividend, quotient;


divisor = 3;
dividend = 5;
quotient = dividend / divisor;

– quotient = 1.6666…
– Result is the same if either dividend or divisor is
of type int

4
Arithmetic Expression (cont.)
• Be careful with the division operator!
– int / int produces an integer result
(true for variables or numeric constants)

int dividend, divisor, quotient;


dividend = 5;
divisor = 3;
quotient = dividend / divisor;

– The value of quotient is 1, not 1.666…


– Integer division does not round the result, the
fractional part is discarded!

5
Arithmetic Expression (cont.)
• % operator gives the remainder from
integer division
• int dividend, divisor, remainder;
dividend = 5;
divisor = 3;
remainder = dividend % divisor;

The value of remainder is 2

6
Arithmetic Expression (cont.)

7
Arithmetic Expression (cont.)

8
Arithmetic Expression (cont.)
• Use spacing to make expressions readable
– Which is easier to read?

x+y*z or x+y*z

• Precedence rules for operators are the same as


used in your algebra classes
• Use parentheses to alter the order of operations
x + y * z ( y is multiplied by z first)
(x + y) * z ( x and y are added first)
9
Arithmetic Expression (cont.)
• Some expressions occur so often that C++
contains to shorthand operators for them
• All arithmetic operators can be used this way
– += eg. count = count + 2; becomes
count += 2;
– *= eg. bonus = bonus * 2; becomes
bonus *= 2;
– /= eg. time = time / rush_factor; becomes
time /= rush_factor;
– %= eg. remainder = remainder % (cnt1+ cnt2);
becomes
remainder %= (cnt1 + cnt2);

10
Assignment Statement
• An assignment statement changes the value of a
variable
– total_weight = one_weight + number_of_bars;
• total_weight is set to the sum one_weight + number_of_bars

– Assignment statements end with a semi-colon

– The single variable to be changed is always on the left


of the assignment operator ‘=‘

– On the right of the assignment operator can be


• Constants -- age = 21;
• Variables -- my_cost = your_cost;
• Expressions -- circumference = diameter * 3.14159;

11
Assignment Statement (cont.)
• The ‘=‘ operator in C++ is not an equal sign
– The following statement cannot be true in algebra

• number_of_bars = number_of_bars + 3;

– In C++ it means the new value of number_of_bars


is the previous value of number_of_bars plus 3

12
Assignment Statement (cont.) –
Initializing Variables
• Declaring a variable does not give it a value
– Giving a variable its first value is initializing the variable
• Variables are initialized in assignment statements

double mpg; // declare the variable


mpg = 26.3; // initialize the variable
• Declaration and initialization can be combined
using two methods
– Method 1
double mpg = 26.3, area = 0.0 , volume;
– Method 2
double mpg(26.3), area(0.0), volume;

13
Relational Operators
• A condition is represented by a logical
(Boolean) expression that can be true or
false
• Relational operators:
– Allow comparisons
– Require two operands (binary)
– Evaluate to true or false

14
Relational Operators (cont.)

15
Relational Operators (cont.)
• You can use the relational operators with
all three simple data types:
– 8 < 15 evaluates to true
– 6 != 6 evaluates to false
– 2.5 > 5.8 evaluates to false
– 5.9 <= 7.5 evaluates to true

16
Relational Operators (cont.)

17
Logical (Boolean) Operators and
Logical Expressions
• Logical (Boolean) operators enable you to
combine logical expressions

unary

binary

binary

18
Logical (Boolean) Operators and
Logical Expressions (cont.)

19
20
21
Order of Precedence

• Relational and logical operators are


evaluated from left to right
• The associativity is left to right
• Parentheses can override precedence

22
Order of Precedence (cont.)

23
Order of Precedence (cont.)

24
Relational Operation
• A Boolean Expression is an expression that is
either true or false
– Boolean expressions are evaluated using
relational operations such as
• = = , !=, < , >, <=, and >= which produce a boolean value
– and boolean operations such as
• &&, | |, and ! which also produce a boolean value
• Type bool allows declaration of variables that
carry the value true or false

25
Relational Operation (cont.)
• Boolean expressions are evaluated using
values from the Truth Tables
• For example, if y is 8, the expression
!( ( y < 3) | | ( y > 7) )
is evaluated in the following sequence
! ( false | | true )
! ( true )
false
26
27
Mantic/Logic Operation – Order of
Precedence
• If parenthesis are omitted from boolean
expressions, the default precedence of
operations is:
– Perform ! operations first
– Perform relational operations such as < next
– Perform && operations next
– Perform | | operations last

28
Mantic/Logic Operation –
Precedence Rules
• Items in expressions are grouped by
precedence
rules for arithmetic and boolean operators
– Operators with higher precedence are
performed first
– Binary operators with equal precedence are
performed left to right
– Unary operators of equal precedence are
performed right to left
29
30
Precedence Rules - Example
• The expression
(x+1) > 2 | | (x + 1) < -3

is equivalent to
( (x + 1) > 2) | | ( ( x + 1) < -3)

– Because > and < have higher precedence than | |

• and is also equivalent to


x+1>2||x+1<-3
31
Precedence Rules – Example
(cont.)
• (x+1) > 2 | | (x + 1) < -3

• First apply the unary –


– Next apply the +'s
– Now apply the > and <
– Finally do the | |

32
Unary Operator
• Unary operators require only one operand
– + in front of a number such as +5
– - in front of a number such as -5
• ++ increment operator
– Adds 1 to the value of a variable
x ++;
is equivalent to x = x + 1;
• -- decrement operator
– Subtracts 1 from the value of a variable
x --;
is equivalent to x = x – 1;

33

You might also like