งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

226111 Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "226111 Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์"— ใบสำเนางานนำเสนอ:

1 Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์ (Logic and Expression)

2 Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p
Precedence of Operators 5 Assignments

3 objectives เพื่อให้นิสิตรู้และเข้าใจในเครื่องหมายและการดำเนินการทางตรรกศาสตร์อันเป็นพื้นฐานในการประมวลผลเบื้องต้นของภาษาคอมพิวเตอร์ เครื่องหมาย การคำนวณทางคณิตศาสตร์ และลำดับความสำคัญของเครื่องหมายในการคำนวณ เครื่องหมายและการดำเนินการเปรียบเทียบ เครื่องหมายและการดำเนินการทางตรรกศาสตร์ เพื่อเตรียมความพร้อมให้นิสิตสามารถเลือกใช้ตรรกะเพื่อแก้ปัญหาโจทย์ทางตรรกศาสตร์เบื้องต้นได้

4 Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p
Precedence of Operators 5 Assignments

5 Data Type of Variables ข้อมูลชนิดตัวอักษร (Character) คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็มได้แก่ ตัวอักษร ตัวเลข และกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์ ข้อมูลชนิดจำนวนเต็ม (Integer) คือข้อมูลที่เป็นเลขจำนวนเต็ม ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ ใช้พื้นที่ในการเก็บ 2 ไบต์ ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer) คือข้อมูลที่มีเลขเป็นจำนวนเต็ม ใช้พื้นที่ 4 ไบต์ ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลที่เป็นเลขทศนิยมใช้พื้นที่ในการเก็บขนาด 4 ไบต์ ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double) คือข้อมูลที่เป็นเลขทศนิยมใช้พื้นที่ในการเก็บ 8 ไบต์

6 Size of Variables ชนิดของตัวแปร ขนาด ค่าต่ำสุด ค่าสูงสุด unsigned char
8 bit 255 char -128 127 unsigned int 16 bit 32 bit 65,535 4,294,967,295 short int -32,768 32,767 int -2,147,483,648 2,147,483,647 unsigned long long float 3.410-38 3.4 1038 double 64 bit 1.7 1.710308 long double 80 bit 3.4 3.4104932

7 Size of Variables & Memory Size
char short int unsigned int long unsigned long float double long double Maximum Minimum

8 Variable การเก็บค่าของตัวแปรทำได้ 2 ลักษณะ คือ
แบบตัวแปรที่เก็บค่าคงที่ (Constant) - ค่าคงที่ แบบตัวแปรที่เก็บค่าทั่วไป (Variable) - ตัวแปร การสร้างตัวแปร ต้องรู้ว่าจะใช้ตัวแปรเก็บข้อมูลอะไร ประกาศตัวแปรให้เหมาะสมกับข้อมูลที่จะเก็บ(ชนิดของข้อมูล) ชนิดของตัวแปรหลักในภาษา C ตัวแปรที่ใช้เก็บอักขระ (Character variable) ตัวแปรที่ใช้เก็บเลขจำนวนเต็ม (Integer variable) ตัวแปรที่ใช้เก็บเลขจำนวนจริง (Float variable) ตัวแปรที่ใช้เก็บอักขระแบบสตริง (String variable)

9 Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p
Precedence of Operators 5 Assignments

10 Variable & Expression ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย เช่น a, B, Name นิพจน์  (Expression) คือ การนำข้อมูลและตัวแปรมาดำเนินการด้วยตัวดำเนินการ เช่น เครื่องหมายทางคณิตศาสตร์   ตรรกศาสตร์ หรือเครื่องหมายเปรียบเทียบ ดังตัวอย่างเช่น 15a, 4ab+5c

11 Operand ตัวที่ 1 (ตัวแปร) Operand ตัวที่ 2 (ค่าคงที่) Operator
Operator & Operand N - 1 นิพจน์ (Expression) Operand ตัวที่ 1 (ตัวแปร) Operand ตัวที่ 2 (ค่าคงที่) Operator 5 * ( a * b – 3 )

12 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

13 Arithmetic Operators เครื่องหมาย การทำงาน ตัวอย่าง + บวก ans = a + b;
- ลบ ans = a - b; * คูณ ans = a * b; / หาร ans = a / b; % โมดูลัส (modulo) ans = a % b;

14 Results of Arithmetic Operators
+, -, *, / ใช้แทนการดำเนินการ บวก ลบ คูณ หาร ตามลำดับ ผลลัพธ์ที่ได้จะขึ้นอยู่กับ operand ที่มากระทำกัน โดยจะถูกแปลงเป็น operand ที่มีขนาดใหญ่กว่าก่อน จำนวนเต็ม +, -, *, / จำนวนเต็ม => จำนวนเต็ม จำนวนเต็ม +, -, *, / จำนวนจริง => จำนวนจริง จำนวนจริง +, -, *, / จำนวนเต็ม => จำนวนจริง จำนวนจริง +, -, *, / จำนวนจริง => จำนวนจริง

15 Examples of Arithmetic Operators
Type 1 Operator Type 2 Result Example int +,-,*,/ 3*3 9 19/2 float 3*3.0 19/2.0 3.0*3 19.0/2 3.0*3.0 19.0/2.0 % 7%4 3 8%4

16 The Difference of Modulus & Divide
ผลลัพธ์ที่ได้จะเป็นเศษของการหาร เช่น 0 % 3 => ผลหารได้ 0 ครั้ง เหลือเศษ 0 1 / 3 => ผลหารได้ 0 ครั้ง เหลือเศษ 1 2 % 3 => ผลหารได้ 0 ครั้ง เหลือเศษ 2 3 / 3 => ผลหารได้ 1 ครั้ง เหลือเศษ 0 4 % 3 => ผลหารได้ 1 ครั้ง เหลือเศษ 1

17 Arithmetic Operators Example
/* Program to demonstrate the working of arithmetic operators in C. */ #include <stdio.h> int main(){ int a=9,b=4,c; c=a+b; c=a-b; c=a*b; c=a/b; c=a%b; return 0;}

18 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

19 Relational Operators เครื่องหมาย การเปรียบเทียบ ตัวอย่าง == เท่ากับ
x == y != ไม่เท่ากับ x != y > มากกว่า x > y >= มากกว่าหรือเท่ากับ x >= y < น้อยกว่า x < y <= น้อยกว่าหรือเท่ากับ x <= y

20 Examples of Relational Operators
การเปรียบเทียบ ผลที่ได้ 7 == 9 False 7 != 9 True 8 > 8 8 >= 8 (10+9)<7 4 <= 3 การเปรียบเทียบ ผลที่ได้ 22 == 22 True (3+5)!=8 False 9 > 7 7 >= 9 7<(10+9) 3 <= 4 ไม่ควรใช้เครื่องหมายเท่ากับ == หรือไม่เท่ากับ != สำหรับข้อมูลทศนิยม

21 Relational Operators Example
int a = 21; int b = 10; int c ; if( a == b ) { printf("Line 1 - a is equal to b\n" ); } else { printf("Line 1 - a is not equal to b\n" ); } if ( a < b ) { printf("Line 2 - a is less than b\n" ); } else { printf("Line 2 - a is not less than b\n" ); } if ( a > b ) { printf("Line 3 - a is greater than b\n" ); } else { printf("Line 3 - a is not greater than b\n" ); }

22 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

23 Logical Operators (1) เครื่องหมาย ความหมาย ตัวอย่าง && และ (and)
x && y || หรือ (or) x || y ! ไม่ หรือ ตรงกันข้าม (not) !x

24 Logical Operators (2) การดำเนินการ ผลที่ได้ การดำเนินการ ผลที่ได้
T && T T T && F F F && T F && F การดำเนินการ ผลที่ได้ T || T T T || F F || T F || F F การดำเนินการ ผลที่ได้ !T F !F T

25 Logical Operators Example
(i < 10) && (j > 0) -> i = 9, j = 2 ; i = 11, j = -10; ((x + y) <= 15) || (i == 5) -> x = 7, y = 8; i = 5; x = 10, y = 7, i = 6; !((i >= 10) || (j <= 0)) -> i = 12, j = 0; i = 8, j = 4; (i < 10) && 0 i = 7; i = 20;

26 Example of Using the Operators
int num1 = 10, num2 = 20, num3 = 30; num1 == num2 False num1 > num2 False (num1<num2) && (num2<num3) True (num1>num2) || (num1>num3) False (num1>num2) || (num2<num3) True

27 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

28 Bitwise Operators

29 Example of Bitwise Operators (1)
Left shift a<< 1 (a = 12 = ) 7 6 5 4 3 2 1 12 24 ข้อสังเกต การเลื่อนบิตทางซ้ายมีค่าเท่ากับการคูณด้วย 2

30 Example of Bitwise Operators (2)
Right shift 127 >> 1 (a = 127 = ) 7 6 5 4 3 2 1 127 63 ข้อสังเกต การเลื่อนบิตทางขวามีค่าเท่ากับการหารด้วย 2 (เศษทิ้ง)

31 Example of Bitwise Operators (3)

32 Logical & Bitwise Operator
ตัวอย่าง 10 = ; 1 = Logical Bitwise 3232

33 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

34 Assignment Operators คือ ตัวดำเนินการเพื่อใช้ในการกำหนดค่าข้อมูล รูปแบบ assignment expression คือ variable = expression กำหนดค่าให้ตัวแปรหนึ่งตัว เช่น x = 2, x = y+2; รูปแบบ Multiple assignment expression คือ variable#1 = variable#2 =… = variable#k = expression กำหนดค่าให้ตัวแปรหลายตัวในคราวเดียวกัน เช่น x = z = w = y + 2

35 Assignment Operators คือ ตัวดำเนินการเพื่อใช้ในการกำหนดค่าข้อมูล รูปแบบ assignment expression คือ variable = expression กำหนดค่าให้ตัวแปรหนึ่งตัว เช่น x = 2, x = y+2; รูปแบบ Multiple assignment expression คือ variable#1 = variable#2 =… = variable#k = expression กำหนดค่าให้ตัวแปรหลายตัวในคราวเดียวกัน เช่น x = z = w = y + 2

36 Example of Assignment Operators
ตัวอย่าง assignment expression และ multiple assignment expression int i; float x,y; x=i=y=24.3; ค่าที่ได้ x = , i = 24 , y = 24.3 หมายเหตุ: ค่าของการ assign ขึ้นอยู่กับชนิดของตัวแปรที่รับค่าและตัวแปรที่อยู่ทางด้านขวา (ทำจากด้านขวามาซ้าย)

37 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

38 Composition Operator (1)
เครื่องหมาย ตัวอย่างการใช้งาน ตัวอย่างรูปแบบเต็ม += y += x; y = y + x; -= y -= x; y = y - x; *= y *= x; y = y * x; /= y /= x; y = y / x; %= y %= x; y = y % x;

39 Composition Operator (2)
คือตัวดำเนินการที่ประกอบไปด้วยตัวดำเนินการประเภทอื่นประกอบกับระหว่างตัวดำเนินการกำหนดค่า

40 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

41 Increment-Decrement Operator
คือตัวดำเนินการเพื่อใช้เพิ่มค่าหรือลดค่าข้อมูล จำนวนเต็ม หรือ Char มี 2 ตัวคือ ++ และ –- (คล้าย X = X +/- 1) รูปแบบอยู่หลังตัวถูกกระทำ (X++, X--) นำค่าไปใช้ก่อนแล้วเพิ่มค่าตัวถูกกระทำ รูปแบบอยู่หน้าตัวถูกกระทำ (++X, --X) เพิ่มค่าก่อนแล้วนำตัวแปรไปใช้ มีใช้เฉพาะภาษาซี

42 Meaning of Increment & Decrement
เครื่องหมาย การทำงาน ตัวอย่าง ขั้นตอนการทำงาน ++ เพิ่มค่าทีละ 1 (Increment) x++; ++x; เพิ่มค่า x ขึ้น 1 y = ++x; กำหนดค่าให้ y y = x++; -- ลดค่าทีละ 1 (Decrement) x--; --x; ลดค่า x ลง 1 y = --x; y = x--;

43 Example of Increment-Decrement Operator
ตัวอย่าง

44 Test of Increment-Decrement Operator
#include<stdio.h> main( ) { int a = 9, b = 6, c = 0; c = (a++) + (++b); printf(“%d %d %d\n”, a, b, c); c = (--a) + (--b); c = ++a; c = c – b--; c = c + --a; c = c - ++b; }

45 Type of Operators ตัวดำเนินการเลขคณิต (arithmetic operators)
ตัวดำเนินการเชิงสัมพันธ์ (relational operators) ตัวดำเนินการเชิงตรรกะ (logical operators) ตัวดำเนินการระดับบิต (bitwise operators) ตัวดำเนินการกำหนดค่า (assignment operators) ตัวดำเนินการกำหนดค่าเชิงประกอบ (compound assignment operators) ตัวดำเนินการเพิ่มและลดค่า (increment and decrement operators) ตัวดำเนินการแปลงชนิดข้อมูล (type cast operators)

46 Type Cast Operators คือ ตัวดำเนินการเพื่อใช้ในการแปลงชนิดค่าข้อมูล มีรูปแบบเป็น (type_specifier) expression type_specifier คือ ชนิดของข้อมูลที่ต้องการแปลง expression คือ นิพจน์ใดๆ ในภาษาซี การแปลงชนิดข้อมูลแบบนี้เราเรียกว่า Explicit type conversion หรือ Explicit type casting หรือ Casting

47 Example of Type Cast Operators
ตัวอย่าง a = , b = 5.3 มี float c; c = (int) a + b; แปลงชนิดข้อมูลของตัวแปร a เป็นชนิด int แล้วจึงนำไปบวกกับตัวแปร b : ได้ค่า c = 17.3 c = (int) (a + b); แปลงผลลัพธ์ที่ได้จากการบวกตัวแปร a + b เป็นชนิด int : ได้ค่า c = 18.0

48 Implicit Type Conversion(1)
เป็นการแปลงข้อมูลโดยอัตโนมัติ operator ที่เป็นตัวกระทำระหว่าง operand สองตัวจำเป็นจะต้องเป็น operand ที่เป็นชนิดข้อมูลเดียวกัน ถ้าไม่ใช่แปลงชนิดข้อมูลชนิดใช้เนื้อที่การเก็บน้อยกว่าเป็นใหญ่กว่า char -> short -> int -> long -> float -> double

49 Implicit Type Conversion(2)
ตัวอย่าง กำหนด char ch; int i; float f; double d;

50 The Other Operators of C Language
( ) parentheses operator คือ เครื่องหมายวงเล็บเพื่อแยกการทำงานของ operator อื่นๆ ออกจากกัน เช่น 2*(3+4) [ ] array subscript operator คือ เครื่องหมายเพื่อกำหนดขนาดของตัวแปรชนิด array เช่น int i [4]; . -> selection (structure-access) operator คือเครื่องหมายเพื่ออ้างถึงข้อมูลในตัวแปรแบบ structure เช่น s.m , s->m *(dereference) &(address) คือ เครื่องหมายที่ใช้ในการอ้างถึง address และข้อมูล (ส่วนใหญ่ใช้กับตัวแปรประเภท pointer) Operator อื่น ๆ เช่น , # ## sizeof

51 Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p
Precedence of Operators 5 Assignments

52 Precedence of the Operator(1)
ลำดับการดำเนินการของตัวดำเนินการต่างๆ หากมีการเขียนต่อกัน คล้ายกันกับการกำหนดความสำคัญของ operator ทางคณิตศาสตร์ a + b * c – d / e (a + (b * c)) – (d / e) 5252

53 Precedence of the Operator(2)

54 Precedence of the Operator(3)

55 Precedence of the Operator(4)
ใส่ลำดับก่อน avg = min + max / 2; ลำดับไม่เป็นไปตามต้องการ avg = (min + (max / 2) ); avg = (min + max) / 2;

56 Precedence of the Operator(5)
ตัวอย่าง x = * 5 – 4 / 2 % 3; x = – 4 / 2 % 3; x = – 2 % 3; x = – 2; x = 31 – 2; x = 29; result = 29

57 Test of Precedence of the Operator (X= ?)

58 Outline 1 Objectives 2 Reviews 3 Operators 4 5 Assignments p
Precedence of Operators 5 Assignments

59 Assignment 1 X = 15 + 7 – 5 + (14/2) * 8%5; X = 3 * 15 % 7 - 9 + 11;

60 Assignment 2 กำหนดให้ A = 1010 01112 , B = 0100 11102 นิพจน์ ผลลัพธ์

61 Assignment 3 การเปรียบเทียบ ผลที่ได้ การเปรียบเทียบ ผลที่ได้ 6 == 9
7 != 9 8 > 17 9 >= 8 (10+4)<7 5 <= 3 การเปรียบเทียบ ผลที่ได้ 24 == 24 (3+2)!=8 4 > 7 12 >= 9 7<(3+4) 5 <= 4

62 Assignment 4 กำหนดให้ S = 8, T = 15 นิพจน์ ผลลัพธ์ S += 2 T -= 10


ดาวน์โหลด ppt 226111 Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 4 เครื่องหมาย ตรรกะศาสตร์ และการดำเนินการทางตรรกะศาสตร์

งานนำเสนอที่คล้ายกัน


Ads by Google