chapter3dti ok.pptx
-
Upload
hashemyahyaqalmahdi -
Category
Documents
-
view
224 -
download
3
description
Transcript of chapter3dti ok.pptx
DTI2143 Computer Programming
1
Chapter 3Expression
&Operators
Aim
2
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
3
Given the following statement :
2x + 3 – z = y
expression
Introduction to Expression
4
Process involves in money withdrawal scenario
balance – withdrawed money = current balance
Introduction to Expression
Expression in C :
bakiTerkini =wangKeluar – bakiSemasa;
What is Expression?
5
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
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
Unary Operator
7
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
Unary Operator
8
Example 1:
int A = 5;
++A;
printf(“%d”, A); output ?A--;
printf(“%d”,A); output ?A++;
printf(“%d”,A); output ?
Arithmetic Expression
Unary Operator
9
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
Unary Operator
10
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
11
Binary Operator
12
Binary Operator Located between constants or variables or both combination
exampleA + z
operatoroperand
Arithmetic Expression
Binary Operator
13
Multiplication Use symbol “ * ”
exampleA * z
operatoroperand
Mathematic
2x + y
Arithmetic Expression
2 * x + y
Arithmetic Expression
Binary Operator
14
Divide Use symbol “/”
example A / z
operatoroperand
Mathematic
2 : y
Arithmetic Expression
2 / y
Arithmetic Expression
Binary Operator
15
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
Binary Operator
16
Example: 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
Assignment Statement
17
Used to store value/result of process to a variable Use operator symbol =
Assignment statement
Double assignmentstatement
Compound assignmentstatement
Arithmetic Expression
Assignment Statement
18
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
Compound Assignment Statement
19
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
Compound Assignment Statement
20
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:
Compound Assignment Statement
21
Example :
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
Arithmetic Operator Precedence Rules
22
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
Arithmetic Operator Precedence Rules
23
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
Arithmetic Operator Precedence Rules
24
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
Arithmetic Operator Precedence Rules
25
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
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
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
Exercise:
28
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
Exercise:
29
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
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
Relational Operator
31
Operator Description
= = Equal to
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
!= Not equal
Relation Expression
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
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
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
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
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
37
Logical Operator
Operator Description
&& AND
|| OR
! NOT
Logical operator && dan || is used between 2 or morerelational expression
Logical Expression
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
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
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
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
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
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
Exercise:
44
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