1 / 55

ประเภทของข้อมูล และตัวดำเนินการในภาษาซี

ประเภทของข้อมูล และตัวดำเนินการในภาษาซี. เนื้อหา. ตัวแปร และประเภทของข้อมูล ( Variable and Data Types) ค่าคงที่ (Constant Value) และนิพจน์ ( Expression) ตัวดำเนินการ ( Operator). 2. เนื้อหา. ตัวแปร และประเภทของข้อมูล ( Variable and Data Types)

Download Presentation

ประเภทของข้อมูล และตัวดำเนินการในภาษาซี

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ประเภทของข้อมูลและตัวดำเนินการในภาษาซีประเภทของข้อมูลและตัวดำเนินการในภาษาซี

  2. เนื้อหา • ตัวแปร และประเภทของข้อมูล (Variable and Data Types) • ค่าคงที่ (Constant Value) และนิพจน์ (Expression) • ตัวดำเนินการ (Operator) 2

  3. เนื้อหา • ตัวแปร และประเภทของข้อมูล (Variable and Data Types) • ค่าคงที่ (Constant Value) และนิพจน์ (Expression) • ตัวดำเนินการ (Operator) 3

  4. ตัวแปรในภาษา C ตัวแปร คือ ชื่อเรียกแทนพื้นที่เก็บข้อมูลในหน่วยความจำเป็นการตั้งชื่อเพื่อสะดวกในการเรียกใช้งานในขณะปฏิบัติงาน 4

  5. การกำหนดชื่อตัวแปร มีหลักการดังนี้ 1. ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ภาษา C ถือว่าเป็นคนละตัวกัน เช่น test และ Test เป็นตัวแปรคนละตัวกัน • ตัวอักษรตัวแรกต้องเป็นตัวอักษรหรือ _ จะเป็นตัวเลขไม่ได้ • ตัวอักษรที่ไม่ใช่ตัวแรกจะเป็นตัวอักษรหรือ _ หรือตัวเลขก็ได้ 5

  6. การกำหนดชื่อตัวแปร 3. ห้ามใช้เครื่องหมายทางคณิตศาสตร์ในชื่อ ตัวแปร 4. ห้ามตั้งชื่อตรงกับ reserved words 5. การตั้งชื่อจะต้องไม่มีช่องว่าง การตั้งชื่อตัวระบุควรตั้งชื่อใหสื่อกับวัตถุประสงคของการทํางานของตัวแปรเพื่อสื่อความหมายที่ตรงกัน 6

  7. auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while คำสงวนในภาษา C (C’s reserved words) 7

  8. จงระบุว่าตัวแปรที่ให้มานั้น ถูกต้องตามหลักการตั้งชื่อหรือไม่ 8

  9. การประกาศตัวแปร (Declaration) ชนิดข้อมูล<ชื่อตัวแปร,…>; ตัวอย่างเช่น char ch; double height; int num; unsigned int a; float width; long int b; int data1,data2; 9

  10. ชนิดของข้อมูล (Data Types) ในการเขียนโปรแกรม แบบข้อมูลที่ใช้จะแบ่งออกเป็น 4 กลุ่มใหญ่ ๆ ดังนี้ • ข้อมูลและตัวแปรชนิดอักขระ • ข้อมูลและตัวแปรชนิดจำนวนเต็ม • ข้อมูลและตัวแปรชนิดเลขมีจุดทศนิยม • ข้อมูลและตัวแปรแบบสตริง 10

  11. 1. ข้อมูลชนิดอักขระ • สำหรับข้อมูลที่เป็นอักขระ 1 ตัว • ค่าของตัวแปรอยู่ภายในเครื่องหมาย ‘ ’ เช่น ‘a’ , ‘A’ , ‘9’ รูปแบบ char variable; ตัวอย่าง char ch; char ch = ‘A’; 11

  12. 2. ข้อมูลชนิดเลขจำนวนเต็ม • จำนวนเต็มในภาษาซีสามารถใช้แทนได้ 3 รูปแบบ คือ int, short, long • unsigned คือจำนวนเต็มที่ไม่คิดเครื่องหมาย ซึ่งจะต้องใช้ควบคู่กับรูปแบบข้อมูลจำนวนเต็มชนิดอื่นคือ int , shortหรือ long unsigned int unsigned short 12

  13. 13

  14. ตัวอย่าง int i; int i = 10; short int i; long area; long int area; 14

  15. 3. ข้อมูลชนิดเลขทศนิยม • เลขทศนิยมในภาษาซีสามารถใช้แทนได้ 2 รูปแบบ คือ float, double 15

  16. ตัวอย่าง float i; float i = 10.9; double area; 16

  17. H e l l o \0 1 2 3 4 5 6 4. ข้อมูลชนิดสตริง • สตริงหมายถึงการนำตัวอักขระหลายตัวมาประกอบ กันเป็นข้อความ • จะเรียกว่า arrayหรือแถวลำดับของตัวอักขระ • ในการใช้งานชนิดข้อมูลแบบสตริงนั้นอักขระตัวสุดท้ายจะเก็บรหัส null คือ \0หมายถึงจุดจบของข้อความ \0 17

  18. ตัวอย่าง char str[10]; char str[10] = “test”; char *str; char *str = “test”; 18

  19. รูปแบบประเภทขอมูลในการอานและแสดงผลรูปแบบประเภทขอมูลในการอานและแสดงผล 19

  20. ต้องเลือกชนิดของข้อมูลให้เหมาะสมเพื่อความมีประสิทธิภาพและความถูกต้องของการทำงานของโปรแกรมต้องเลือกชนิดของข้อมูลให้เหมาะสมเพื่อความมีประสิทธิภาพและความถูกต้องของการทำงานของโปรแกรม ปัญหาการแสดงผล การหารเลขจำนวนเต็ม 2 จำนวน ซึ่งผลลัพธ์อาจไม่ใช่จำนวนเต็ม ซึ่งในกรณีถ้ามีการเลือกชนิดของข้อมูลเพื่อเก็บค่าตัวแปรที่เกิดจากการหารเลขจำนวนเต็มดังกล่าวเป็นชนิด int ก็จะได้ผลลัพธ์ที่ไม่ถูกต้อง 20

  21. ปัญหาของขอบเขต • เช่น • printf (“%d %d %d\n”, 32767, 32767+1,32767+2); • ผลลัพธ์ที่ได้คือ 32767 -32768 -32767 • แทนที่จะเป็น 32767 32768 32769 21

  22. เนื้อหา • ตัวแปร และประเภทของข้อมูล (Variable and Data Types) • ค่าคงที่ (Constant Value) และนิพจน์ (Expression) • ตัวดำเนินการ (Operator) 22

  23. ค่าคงที่ • เป็นค่าหน่วยความจำที่มีค่าคงที่ตลอดทั้งโปรแกรม รูปแบบ const datatype ชื่อค่าคงที่ = ค่าข้อมูล; ตัวอย่าง const char ch = ‘a’; const int count = 100; รูปแบบ #define ชื่อค่าคงที่ค่าข้อมูล ตัวอย่าง #define PI 3.14 23

  24. Statement, Expression • คำสั่ง, ข้อคำสั่ง (Statement) คือ ขั้นตอนในการทำงานหนึ่งขั้นตอน ทุกคำสั่งต้องจบด้วยเครื่องหมาย ; • กลุ่มคำสั่ง คือคำสั่งที่อยู่ในวงเล็บปีกกา {} • นิพจน์ (Expression) คือการกระทำเพื่อให้ได้ผลลัพธ์ค่าหนึ่งค่า ประกอบไปด้วยตัวถูกกระทำ (Operands) และตัวกระทำ (Operators) เขียนเรียงกันไป เช่น 3 * 2 - 1 + 7 หรือ a * 5 24

  25. เนื้อหา • ตัวแปร และประเภทของข้อมูล (Variable and Data Types) • ค่าคงที่ (Constant Value) และนิพจน์ (Expression) • ตัวดำเนินการ (Operator) 25

  26. ตัวดำเนินการ (Operator) คือ เครื่องหมายที่ใช้เพื่อแสดงความหมายในการกระทำต่างๆ สามารถจัด 7 กลุ่มได้ดังนี้ • ตัวดำเนินการกำหนดค่า (Assignment Operator) • ตัวดำเนินการเลขคณิต (Arithmetic Operators) • ตัวดำเนินการระดับบิต (Bitwise Operator) • ตัวดำเนินการเปรียบเทียบ (Relational Operator) • ตัวดำเนินการตรรกะ (Logical Operator) • ตัวดำเนินการเงื่อนไข (Conditional Operator) • ตัวดำเนินการลำดับการให้ค่า (Comma Operators) 26

  27. 1.ตัวดำเนินการกำหนดค่า1.ตัวดำเนินการกำหนดค่า • คือ เครื่องหมายเท่ากับ “=” • นิพจน์ทางขวามือกำหนดค่าให้กับตัวแปรทางซ้ายมือ เช่น x = 50; • ในหนึ่งประโยคสามารถใช้ตัวบอกกระทำ = ได้หลายตัวเช่น int i, j, k, cost, fee; i = j = k = 100; cost = fee = 4 * 5; 27

  28. Compound Assignments ใช้ในประโยคที่มีการกำหนดค่าใหม่ให้กับตัวแปร โดยใช้ค่าเดิมในตัวแปรไปทำการคำนวณ เป็นการนำค่าเดิมในตัวแปร i บวกด้วย 5 แล้วนำผลลัพธ์ที่ได้กำหนดให้ตัวแปร i อีกครั้ง int i = 5; i = i + 5; //i มีค่าเท่ากับ ___ 28

  29. ตัวอย่างการใช้ Compound Assignments 29

  30. 1. num1 = num1 + 5; 2. amount = amount + 7.0 /100; 3. Count = Count + 1; 4. addTax = addTax + (addTax*0.07); จงเขียนประโยคต่อไปนี้ใหม่โดยใช้ compound assignment 30

  31. 2. ตัวดำเนินการเลขคณิต เป็นตัวดำเนินการที่ทำให้เกิดการกระทำทางคณิตศาสตร์ประกอบด้วย 31

  32. จงแสดงนิพจน์ภาษา C ตามสมการที่ให้ 32

  33. Increment/Decrement Operator ++ increment เพิ่มค่าขึ้นหนึ่ง - - decrement ลดค่าลงหนึ่ง i++ หรือ ++iมีความหมายเท่ากับ i = i + 1 i- - หรือ- - iมีความหมายเท่ากับ i = i - 1 33

  34. Increment/Decrement Operator • ซึ่งสามารถนำไปใช้กับตัวแปรได้ 2 ลักษณะคือ • วาง Operator หลังตัวแปร (i++ หรือ i- -) • จะทำการ assign ค่าของตัวแปรให้แก่ตัวแปรทางด้านซ้ายก่อน หลังจากนั้นจึงทำการเพิ่ม หรือลดค่าตัวแปรนั้น • เช่น count = 2; • i = count++; i มีค่าเท่ากับ count มีค่าเท่ากับ 34

  35. Increment/Decrement Operator 2. วาง Operator หน้าตัวแปร (++i หรือ - -i) จะเป็นการเพิ่ม หรือลดค่าตัวแปรนั้นก่อน หลังจากนั้นจึงทำ การ assign ค่าให้แก่ตัวแปรทางด้านซ้ายมือ เช่น count = 2; i = ++count; i มีค่าเท่ากับ count มีค่าเท่ากับ 35

  36. X = 10, Y = 5 จงหาผลลัพธ์ 36

  37. Operator ( ) * / % + - < <= > >= == != && || ?: -= += %= /= *= = ลำดับความสำคัญของ Operator ลำดับความสำคัญมาก ลำดับความสำคัญน้อย 37

  38. 4. X = 6 + 4 / 2 + 3 5. X = 5 % 2 + 14 / 3 – 6 6. X = 3 * (4 % (6 / 2)) + 5 1. X = 2 + 3 * 4 2. X = 2 / 3 * 4 3. X = 1 + 2 * 3 + 4 จงหาค่า X 38

  39. 9. X = 4 * 3 – 4 / 4 % 2 * 5 + 2 10. X = 2 – 3 * (-4 / 2) + 10 / 2 - 5 7. X = 7.5 – 10.0 / 4.0 * (2 + 3) 8. X = 2 * 5 * 5 + 3 * 5 + 7 จงหาค่า X 39

  40. จงหาคำตอบต่อไปนี้ • 4+5*3-10/2%2 = • (4+5)*3-10/2%2 = • 4+(5*3)-10/2%2 = • 4+5*(3-10)/2%2 = • 4+5*3-(10/2)%2 = • 4+5*3-10/(2%2) =

  41. 3. ตัวดำเนินการระดับบิต เป็นตัวดำเนินการที่ทำให้เกิดการกระทำในระดับบิต ประกอบด้วย 41

  42. OP1 OP2 OP1 & OP2 OP1 | OP2 OP1 ^ OP2 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 ตัวอย่างของตัวดำเนินการระดับบิต ~ (complement)จะเปลี่ยน bit ที่มีค่าเป็น 0 ให้มีค่าเป็น 1 และเปลี่ยน bit ที่มีค่าเป็น 1 ให้มีค่าเป็น 0 เช่น int j = 10; /* 00001010 */ printf(“%d”, ~j) /* ~j = 11110101 = -11 */ & | และ ^จะให้ค่าดังตารางต่อไปนี้ 42

  43. int j = 5, k = 10; // j = 00000101 // k = 00001010 printf(“%d”, j&k); printf(“%d”, j|k); printf(“%d”, j^k); จงแสดงผลลัพธ์จากการใช้คำสั่ง printf 43

  44. 0 << Shift Left • เลื่อนข้อมูลแต่ละ bit ไปทางซ้ายตามจำนวนที่ระบุ • โดย bit สูงสุด (most significant bit) จะหายไปแล้ว 0 จะเข้าไปอยู่ใน bit ต่ำสุด (least significant bit) • มีค่าเท่ากับการคูณด้วย 2 ยกกำลัง จำนวน bit ที่เลื่อน int j = 5; /* j = 00000101 */ printf(“%d”, j<<1); /* j<<1 = 00001010 = 10 */ printf(“%d”, j<<2); /* j<<2 = ________ = __ */ 44

  45. 0 >> Shift Right • เลื่อนข้อมูลแต่ละ bit ไปทางขวาตามจำนวนที่ระบุ • โดย bit ต่ำสุด (least significant bit) จะหายไปแล้ว 0 จะเข้าไปอยู่ใน bit สูงสุด (most significant bit) • มีค่าเท่ากับการหารด้วย 2 ยกกำลัง จำนวน bit ที่เลื่อน int j = 5; /* j = 00000101 */ printf(“%d”, j>>1); /* j>>1 = 00000010 = 2 */ printf(“%d”, j>>2); /* j>>2 = ________ = __ */ 45

  46. เท็จ เลข 0 จริง เลขที่ไม่ใช่ 0 4. ตัวดำเนินการเปรียบเทียบ • ใช้ในคำสั่งประเภทเงื่อนไข (condition statement) เช่น if • ใช้เปรียบเทียบตัวเลขเท่านั้น (การเปรียบเทียบ character string ต้องใช้ function เกี่ยวกับ string) • ผลลัพธ์จากการเปรียบเทียบอาจจะเป็นเท็จ (มีค่าเท่ากับ 0) หรือจริง (มีค่าเท่ากับ 1 หรือมีค่าใดๆที่ไม่เท่ากับ 0) หมายเหตุภาษา c จะไม่มีข้อมูลชนิด boolean (true หรือ false) แต่ใช้ค่าตัวเลข 0 และตัวเลขอื่น 46

  47. ข้อควรระวังoperator = = ใช้ในการเปรียบเทียบ = ใช้กำหนดค่าให้ตัวแปร 47

  48. เราสามารถตรวจสอบค่าได้ดังนี้เราสามารถตรวจสอบค่าได้ดังนี้ printf(“value of true = %d ”, 5==5); printf(“value of false = %d”, 5!=5); จงหาผลลัพธ์จากการใช้คำสั่ง printf 48

  49. operand ! operand เท็จ จริง จริง เท็จ 5. ตัวดำเนินการตรรกะ 49

  50. ตารางค่าความจริงของ operator && และ || printf(“value of (2>5) && (5>=5) = %d “, (2>5) && (5>=5)); printf(“value of (2>5) || (5>=5) = %d “, (2>5) || (5>=5)); จงหาผลลัพธ์จากการใช้คำสั่ง printf 50

More Related