44
DTI2143 Computer Programming 1 Chapter 3 Expression & Operators

Dti2143 chapter 3 arithmatic relation-logicalexpression

Embed Size (px)

Citation preview

Page 1: Dti2143 chapter 3 arithmatic relation-logicalexpression

1

DTI2143 Computer Programming

Chapter 3Expression

&Operators

Page 2: Dti2143 chapter 3 arithmatic relation-logicalexpression

2

Aim

To give understanding on: Expression and operator concept math.h and stdlib.h built-in function

Students should be able to: understand concepts and fundamentals in expression/ operator. write expression in C programming language

Objective

Page 3: Dti2143 chapter 3 arithmatic relation-logicalexpression

3

Given the following statement :

2x + 3 – z = y

expression

Introduction to Expression

Page 4: Dti2143 chapter 3 arithmatic relation-logicalexpression

4

Process involves in money withdrawal scenario

balance – withdrawed money = current balance

Introduction to Expression

Expression in C :

bakiTerkini =wangKeluar – bakiSemasa;

Page 5: Dti2143 chapter 3 arithmatic relation-logicalexpression

5

What is Expression?

ExpressionCombination or more than one variable or Constant (operand) which separated by operator

x + 3 - z

Operand

Operatorexample

Consists of

arithmetic

relational

logical

Introduction to Expression

Page 6: Dti2143 chapter 3 arithmatic relation-logicalexpression

6

Arithmetic Expression Mathematic Expression

Known as

usingArithmetic Operator

Unary operator Binary operatorRepresents by

Operator Meaning- negative

+ positive

-- decrement

++ increment

Represents by

Operator Meaning* multiply

/ divide

+ add

- subtract

% modulus

Arithmetic Expression

Page 7: Dti2143 chapter 3 arithmatic relation-logicalexpression

7

Unary Operator

Unary Operator Operates for one operand

example

a = -20; a -20

Computer memory cell

b = +15; b +15

Increment Decrement

prefix ++c; --c;

postfix c++; c--;

Arithmetic Expression

Page 8: Dti2143 chapter 3 arithmatic relation-logicalexpression

8

Unary OperatorExample 1:

int A = 5;

++A;

printf(“%d”, A); output ?A--;

printf(“%d”,A); output ?A++;

printf(“%d”,A); output ?

Arithmetic Expression

Page 9: Dti2143 chapter 3 arithmatic relation-logicalexpression

9

Unary Operator

Example 2:

int A ;

A=6;

printf(“%d”,3 + --A); output ?

printf(“%d”, A); output ?

A=6;

printf(“%d”, 3 + A--); output ?

printf(“%d”, A); output ?

Arithmetic Expression

Page 10: Dti2143 chapter 3 arithmatic relation-logicalexpression

10

Unary Operator

Example 3:

Given the value of num1 = 8 .Determine the value of num2 after the execution for each of the following statements:

num2 = num1++ - 2;

num2 = num1;

num2 = ++num1 – 3;

num2 = num1-- +1;

Arithmetic Expression

Page 11: Dti2143 chapter 3 arithmatic relation-logicalexpression

11

Page 12: Dti2143 chapter 3 arithmatic relation-logicalexpression

12

Binary Operator

Binary Operator Located between constants or variables or both combination

exampleA + z

operatoroperand

Arithmetic Expression

Page 13: Dti2143 chapter 3 arithmatic relation-logicalexpression

13

Binary Operator

Multiplication Use symbol “ * ”

exampleA * z

operatoroperand

Mathematic

2x + y

Arithmetic Expression

2 * x + y

Arithmetic Expression

Page 14: Dti2143 chapter 3 arithmatic relation-logicalexpression

14

Binary Operator

Divide Use symbol “/”

example A / z

operatoroperand

Mathematic

2 : y

Arithmetic Expression

2 / y

Arithmetic Expression

Page 15: Dti2143 chapter 3 arithmatic relation-logicalexpression

15

Binary Operator

Modulus Use symbol “%”

example A % z

operator

operandReturn a balance when 2 numbers is divided

Can only be used with an integer variable

Arithmetic Expression

Page 16: Dti2143 chapter 3 arithmatic relation-logicalexpression

16

Binary OperatorExample: int A, B;

float C;

A= 2;

B= 5;

C= 2.4;

B% A;

C % A;

Valid! Answer is 1

Invalid! C is float

Arithmetic Expression

Page 17: Dti2143 chapter 3 arithmatic relation-logicalexpression

17

Assignment Statement Used to store value/result of process to a variable Use operator symbol =

Assignment statement

Double assignmentstatement

Compound assignmentstatement

Arithmetic Expression

Page 18: Dti2143 chapter 3 arithmatic relation-logicalexpression

18

Assignment Statement Format /sintax :

variable = value;variable = constant; or variable = variable;variable = expression;

Example :1.average= ( 6 + 5) * 4;

2.grossSalary = 1500; nettSalary = grossSalary + 200;

3.price= 50.00; pay = price;`

44average

grossSalary

1500

nettSalary 1700

price

pay

50.00

50.00

Arithmetic Expression

Page 19: Dti2143 chapter 3 arithmatic relation-logicalexpression

19

Compound Assignment Statement

Use more than one operator (=) Example :

int a = b= c = d = e = 250; int b =2, number =0, total = 0,average =3; number = b++ = 10; int age = workHour = 0;

Arithmetic Expression

Page 20: Dti2143 chapter 3 arithmatic relation-logicalexpression

20

Compound Assignment Statement

To combine two different operator together. To simplify arithmetic operator Original function of operator does not

affected Allowed combination are as follow:

Arithmetic Expression

+= , -= , *= , /= , %=

Function

operator:

Page 21: Dti2143 chapter 3 arithmatic relation-logicalexpression

21

Compound Assignment StatementExample :

Assignment

Operator

Expression Meaning

+= total + = 300 total = total+ 300

-= total - = count+ 300 total = total - (count + 300)

*= total *=300 total = total * 300

/= total /= count– 10 total = total / ( count –10)

%= total % = 7 total = total % 7

Arithmetic Expression

Page 22: Dti2143 chapter 3 arithmatic relation-logicalexpression

22

Arithmetic Operator Precedence Rules

Compiler will follows the following precedence to execute the arithmetic expression based on priority.

Operator Arrangement/Priority (if appears more than once in a statement)

( ) Left to right

++, -- Right to left

*, /, % Left to right

+, - Left to right

Arithmetic Expression

Page 23: Dti2143 chapter 3 arithmatic relation-logicalexpression

23

Arithmetic Operator Precedence Rules

Example:

1. 5 + 2 * 6 – 4 / 2

5 + 12 - 4 / 2

5 + 12 - 2

17 - 2

15

2. 3 * 4 / 2 + ( 3 –1)

3 * 4 / 2 + 2

12 / 2 + 2

6 + 2

8

Arithmetic Operator

Page 24: Dti2143 chapter 3 arithmatic relation-logicalexpression

24

Arithmetic Operator Precedence Rules

Example:

3. Prefix unary arithmetic expression

int kira = 5, nilai pertama = 10;

nilai_kedua = 5 * --kira + nilai_pertama;

printf(“%d %d”, kira, nilai_kedua);

Output:

4 30

Arithmetic Expression

Page 25: Dti2143 chapter 3 arithmatic relation-logicalexpression

25

Arithmetic Operator Precedence Rules

Example:

3. Prefix unary arithmetic expression

int kira = 5, nilai pertama = 10;

nilai_kedua = 5 * kira-- + nilai_pertama;

printf(“%d %d”, kira, nilai_kedua);

Output:

4 35

Arithmetic Expression

Page 26: Dti2143 chapter 3 arithmatic relation-logicalexpression

26

Mathematic Library Function• Diwakili oleh perpustakaan piawai matematk iaitu math.h• Dipanggil bersama #include• Antara fungsi perpustakaan matematik yang penting:

Fungsi Tujuan

sqrt(x) Kembalikan nilai puncagandadua x di mana x >= 0

pow(x) Kembalikan x ganda y

cos(x) Kembalikan cos x di mana x di dalam radian

sin(x) Kembalikan sin x di mana x di dalam radian

tan(x) Kembalikan tan x di mana x di dalam radian

Arithmetic Expression

Page 27: Dti2143 chapter 3 arithmatic relation-logicalexpression

27

Mathematic Library FunctionExample:

#include<stdio.h>#include <math.h>

void main(){ int x = 16, y ; y = sqrt(x); printf(“%d”,y);

}

Output :

4

Arithmetic Expression

Page 28: Dti2143 chapter 3 arithmatic relation-logicalexpression

28

Exercise:1. Convert the following mathematic expression to a

valid arithmetic expression :

a) b = 3 + b b) x = (a – b)(a – c2) a + 4

c) d = (3e – d) - ( 4 – 3c3 ) d) r = 2s + 3(s – 9) x – 9 4y s

2. Given a= 3, b = 5, c=1. What is the output of the following expression?

a. ( 6 * c – 6 / a) - b b. (5 * c) +( a* b / b) c. ++a d. c + a * c / (3 *

c)

Arithmetic Expression

Page 29: Dti2143 chapter 3 arithmatic relation-logicalexpression

29

Exercise:

Assume i,j and k are integer variables with i = 5 and j=3. Determine what is the value for each of the following statement:a) k = j++; d) k = ++j;b) k = i * j--; e) k = i * --j;c) k = j + i * j++; f) k = 27 / j++ - 16 % i;

Arithmetic Expression

Page 30: Dti2143 chapter 3 arithmatic relation-logicalexpression

30

Relationalexpression

use Relational operator

Combination of more than one statement

variable vs variable

variable vs constant

constant vs constant

Can consists of

produce

0 (if false) 1(if true)

Relation Expression

Page 31: Dti2143 chapter 3 arithmatic relation-logicalexpression

31

Relational Operator

Operator Description

= = Equal to

> Greater than

< Less than

>= Greater than or equal

<= Less than or equal

!= Not equal

Relation Expression

Page 32: Dti2143 chapter 3 arithmatic relation-logicalexpression

32

int a=6, b =1, c = -2;

1) a+ b == c 2) a != b

6 + 1== -2 6 != 17 == -2

Answer: 0(False) Answer : 1 (True)

P/s:a, b and c are variables,Replace with the given values

Example 1:

Relation Expression

Page 33: Dti2143 chapter 3 arithmatic relation-logicalexpression

33

int a=6, b =1, c = -2;

3) b < a 4) b + c <= a

1 < -2 1 + -2 < 6 -1 < 6

Answer: 0 (False) Answer : 1 (True)

Example 2 :

Relation Expression

Page 34: Dti2143 chapter 3 arithmatic relation-logicalexpression

34

int a=10, b = 3, c = 7;

(a+b >= 3*c)==( a != 2*c+b)

(10+3 >= 3*7)==(a != 2*c+b)(13 >= 21)==(10 != 14+3)(13 >= 21)==(10 != 17)0 == 10 (false)

P/s:Relational operator has less priority than other operators.Start evaluating from left to right.

Example 3:

Relation Expression

Page 35: Dti2143 chapter 3 arithmatic relation-logicalexpression

35

An example program which uses relational expression

#include <stdio.h>void main(){ int age; printf(“\nPlease enter your age >>”); scanf(“%d”,&age); if (age > 21)

printf(“\nYou are qualified to vote”);

}

Relational expression

Relation Expression

Page 36: Dti2143 chapter 3 arithmatic relation-logicalexpression

36

Logical expressionuse

Logical Operator

Combination of one or more expressions

Relational expr. vs logical expr.

Relational expr. vs variable

Relational expr. vs constant

Can consists of

produces

0 (if false) 1(if true)

Logical Expression

Page 37: Dti2143 chapter 3 arithmatic relation-logicalexpression

37

Logical Operator

Operator Description

&& AND

|| OR

! NOT

Logical operator && dan || is used between 2 or morerelational expression

Logical Expression

Page 38: Dti2143 chapter 3 arithmatic relation-logicalexpression

38

Logical operator truth table for AND

Value 0 1

0 0 0

1 0 1

AND (&&) Logical Operator Result

False AND False False

False AND True False

True AND False False

True AND True True

Logical Expression

Page 39: Dti2143 chapter 3 arithmatic relation-logicalexpression

39

Logical operator truth table for OR

Value 0 1

0 0 1

1 1 1

OR (||) Logical Operator

Result

False OR False False

False OR True True

True OR False Trrue

True OR True True

Logical Expression

Page 40: Dti2143 chapter 3 arithmatic relation-logicalexpression

40

Value Result

!0 1

!1 0

NOT(!)

Logical Operator

Result

Not false True

Not true False

Logical operator truth table for NOT

Logical Expression

Page 41: Dti2143 chapter 3 arithmatic relation-logicalexpression

41

Example 1:

Evaluate the following logical expression:

a) (2 < 5 ) && ( 5 < 10) b) (7 % 2 < 2) || ( 2 * 3 == 6) 1 && 1 (1 < 2) || (6 == 6)

1 1 || 1

1

Logical Expression

Page 42: Dti2143 chapter 3 arithmatic relation-logicalexpression

42

Example 2:

Evaluate the following logical expression:

Given a = 3, b = 4;

c) !((5 * b <= 23 - a )) d) ! ((b +3 != 8) &&( 3 * a < 2)) !((5 * 4 <= 23 – 3)) !(( 7 != 8 ) && ( 9 < 2 )) !(20 <= 20) ! ( 1 && 0 ) !(1) ! ( 0) 0 1

Logical Expression

Page 43: Dti2143 chapter 3 arithmatic relation-logicalexpression

43

An example program which using Logical Expression:

#include <stdio.h>void main(){ int mark; printf(“\nEnter your mark >>”); scanf(“%d”,&mark); if (mark >= 85 && mark <= 100) printf(“\nGred A”);

else if( mark >=80 && mark <=84)printf(“\nGred A-”);

}

Logical ExpressionLogical Expression

Page 44: Dti2143 chapter 3 arithmatic relation-logicalexpression

44

Exercise:1. Given with i=2, j = 5 and k = 15. Evaluate each of the following expression:

a) i > j – k g) k == j + I * jb) i != k h) k <=k /jc) (i >= 1) && (j == 5) i) (j < i) || (k > j)d) !( i > j) j) (i >0) && (j <k) || (k <i)e) i < j < k k) i * k < k / jf) (i < j) && (j < k) i) i – j > k

2. Complete the following statements with suitable logical expression.

int angka1,angka2;

if (angka1 is less than or equal to angka2)printf(“%d is less than or equal to %d”,angka1,angka2);

Logical Expression