Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
CHAP 3: STRUCTURE OF PROGRAMMING
Chapter : 3
3. EXPRESSIONS
AND OPERATIONS
Arithmetic operation
Relational operation
Assignment operation
Conditional operation
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
Aim
3
Given the following statement :
2x + 3 – z = y
expression
Introduction to Expression
Example:
Process involves in money withdrawal
scenario
balance – drew out money = current balance
Expression in C :
bakiTerkini =wangKeluar – bakiSemasa;
4 What is Expression?
ExpressionCombination of more than one variable or constant
(operand) which separated by operator
x + 3 - z
Operand
Operatorexample
Consists of arithmetic
relational
logical
Introduction to Expression
5
Arithmetic Expression Mathematic ExpressionKnown as
usingArithmetic Operator
Unary operator Binary operator
Represents by
Operator Meaning
- negative
+ positive
-- decrement
++ increment
Represents by
Operator Meaning* multiply
/ divide
+ add
- subtraction
% modulus
Arithmetic Expression
6 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
7 Unary OperatorExample 1:
int A = 5;
++A;
printf(“%d”, A); output ?
A--;
printf(“%d”,A); output ?
A++;
printf(“%d”,A); output ?
Arithmetic Expression
8 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
9 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
10 Binary Operator
Binary OperatorLocated between constants or
variables or both combination
example
A + z
operator
operand
Arithmetic Expression
11 Binary Operator
Multiplication Use symbol “ * ”
exampleA * z
operator
operand
Mathematic
2x + y
Arithmetic Expression
2 * x + y
Arithmetic Expression
12
Binary Operator
Divide Use symbol “/”
exampleA / z
operator
operand
Mathematic
2 ÷ y
Arithmetic Expression
2 / y
Arithmetic Expression
13 Binary Operator
Modulus Use symbol “%”
exampleA % z
operator
operand
Return a balance when 2 numbers is divided
Can only be used with an integer variable
Arithmetic Expression
14
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
15
Assignment StatementUsed to store value/result of process to a variable
Use operator symbol =
Assignment statement
Double assignment
statement
Compound assignment
statement
Arithmetic Expression
16
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
grossSalary1500
nettSalary 1700
price
pay
50.00
50.00
Arithmetic Expression
17
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
18 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:
19 Compound Assignment StatementExample :
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
20
Arithmetic Operator Precedence Rules
Compiler will follows the following precedence to execute the arithmetic expression
based on priority.
Operator Arrangement/Priority( ) Left to right
++, -- Right to left
*, /, % Left to right
+, - Left to right
Arithmetic Expression
21
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
22
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 ExpressionArithmetic Operator Precedence Rules
23
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
Arithmetic Operator Precedence Rules
24 Mathematic Library Function
•Header file designed for basic mathematical operations (math.h)
•Syntax #include <math.h>
•Below are lists of some common math functions :
Fungsi Tujuan
sqrt(x) compute the non-negative square root of x
pow(x,y) computes x raised to the power y
cos(x) compute the cosine of x (measured in radians)
sin(x) computes the sine of x (measured in radians)
tan(x) compute the tangent of x (measured in radians)
Arithmetic Expression
25
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
26 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
27 Exercise:
Assume i,j and k are integer variables with i = 5 and j=3. Determine 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
28
Relationalexpression
useRelational 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)
Relational Expression
29
Relational OperatorOperator Description
= = Equal to
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
!= Not equal
Relational Expression
30
int a=6, b =1, c = -2;
1) a+ b == c 2) a != b
6 + 1== -2 6 != 1
7 == -2
Answer: 0(False) Answer : 1 (True)
P/s:
a, b and c are variables,
Replace with the given values
Relational Expression
Example 1:
31
int a=6, b =1, c = -2;
3) b < c 4) b + c <= a
1 < -2 1 + -2 <= 6
-1 <= 6
Answer: 0 (False) Answer : 1 (True)
Relational Expression
Example 2 :
32
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 == 1
0 (false)
P/s:
Relational operator has less priority than
other operators.
Start evaluating from left to right.
Relational Expression
Example 3:
33An 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
Relational Expression
34
Logical expression
use
Logical Operator
Combination of one or more expressions
Relational expr. vs logical expr.
Relational expr. vs variable
Relational expr. vs constant
Can consists of
hasilkan
0 (if false) 1(if true)
Logical Expression
35Logical Operator
Operator Description
&& AND
|| OR
! NOT
Logical operator && dan || is used between 2 or more
relational expression
Logical Expression
36
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
37
Logical operator truth table for OR
Value 0 1
1 0 1
1 1 1
OR (||)Logical Operator Result
False OR False False
False OR True True
True OR False True
True OR True True
Logical Expression
38
Value Result
!0 1
!1 0
NOT(!)
Logical Operator Result
Not false True
Not true False
Logical Expression
Logical operator truth table for NOT
39
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
40Example 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
41An 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 Expression
42 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 * j
b) i != k h) k <=k /j
c) (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 / j
f) (i < j) && (j < k) l) 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
Next Chapter : 4
CONTROL STRUCTURE
4.1 The use of control structure including if,
for and switch
4.2 The use of while loop, break and goto