1 / 25

เครื่องหมายและการดำเนินการในภาษาซี

517 101 LAB - 5_2. เครื่องหมายและการดำเนินการในภาษาซี. ตัวดำเนินการ(operator). ตัวดำเนินการ (operator) คือเครื่องหมายที่ใช้เพื่อแสดงความหมายในการกระทำต่างๆ สามารถจัดกลุ่มได้ดังนี้. ตัวดำเนินการกำหนดค่า (assignment operator) ตัวดำเนินการเลขคณิต (arithmetic operators)

keon
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. 517 101 LAB - 5_2 เครื่องหมายและการดำเนินการในภาษาซี

  2. ตัวดำเนินการ(operator) ตัวดำเนินการ (operator) คือเครื่องหมายที่ใช้เพื่อแสดงความหมายในการกระทำต่างๆ สามารถจัดกลุ่มได้ดังนี้ • ตัวดำเนินการกำหนดค่า (assignment operator) • ตัวดำเนินการเลขคณิต (arithmetic operators) • ตัวดำเนินการระดับบิต (bitwise operator) • ตัวดำเนินการเปรียบเทียบ (relational operator) • ตัวดำเนินการเชิงตรรกะ (logical operator) • ตัวดำเนินการพิเศษ (special operator) 6.ตัวดำเนินการพิเศษ (special operator)

  3. ข้อมูลที่ทำงานกับตัวดำเนินการ เรียกว่า ตัวถูกดำเนินการ (operand) ตัวดำเนินการบางตัวต้องมีตัวถูกดำเนินการ 2 ตัว ในขณะที่บางตัวจะใช้ตัวถูกดำเนินการเพียงตัวเดียว โดยตัวดำเนินการทั้งหมดจะใช้ตัวถูกดำเนินการในการสร้างนิพจน์

  4. ตัวดำเนินการกำหนดค่า (assignment operator) • ตัวดำเนินการกำหนดค่าที่ใช้กันโดยทั่วไปคือ= โดยนิพจน์กำหนดค่าที่ใช้ตัวดำเนินการนี้เขียนได้ในรูปแบบดังนี้ • โดยที่ identifier โดยทั่วไปจะเป็นตัวแปร และ expression จะเป็นค่าคงที่ ตัวแปร หรือนิพจน์ที่มีความซับซ้อนก็ได้ • นิพจน์ทางขวามือ กำหนดค่า ให้กับตัวแปรทางซ้ายมือ เช่น x = 50; identifier = expression

  5. ตัวอย่าง นิพจน์กำหนดค่าที่ใช้ตัวดำเนินการ = a = 3 x = y delta = 0.001 sum = a + b area = length * width ในหนึ่งประโยค สามารถใช้ตัวดำเนินการ = ได้หลายตัว เช่น int i, j, k,cost,fee; i = j = k = 100; cost = fee=4*5;

  6. operator ความหมาย + การบวก - การลบ และ unary operator * การคูณ / การหารซึ่งจะเป็นการหาผลลัพธ์จากการหาร % ( modulo) การหาเศษ(remainder) ที่เป็นจำนวนเต็มจากการหาร (operand ต้องเป็นจำนวนเต็มทั้งคู่) ตัวดำเนินการเลขคณิต (arithmetic operators) เป็นตัวดำเนินการที่ทำให้เกิดการกระทำทางคณิตศาสตร์ประกอบด้วย

  7. ตัวอย่าง แสดงขั้นตอนการทำงานของตัวดำเนินการ • 4 + 3 * 2 4 + 6 • 9 * 2 - 15/3 + 7 18 - 5 + 7 13 + 7 20

  8. จงหาค่านิพจน์ต่อไปนี้จงหาค่านิพจน์ต่อไปนี้ -(-5+(2*4-1))+((6+2)*5+8)/4 -(-5+(8-1))+(8*5+8)/4 -(-5+7)+(40+8)/4 -(2)+48/4 -2+12 10

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

  10. operator ความหมาย > มากกว่า >= มากกว่าหรือเท่ากับ < น้อยกว่า <= น้อยกว่าหรือเท่ากับ == เท่ากับ != ไม่เท่ากับ ตัวดำเนินการเปรียบเทียบในภาษา c ข้อควรระวัง operator == ใช้ในการเปรียบเทียบ ส่วน = ใช้กำหนดค่าให้ตัวแปร   เราสามารถตรวจสอบค่าได้ดังนี้ printf(“value of true = %d “, 5==5); /* ใน turbo c จะแสดงค่า 1 */ printf(“value of false = %d”, 5!=5);

  11. < <= > >= ตัวดำเนินการเหล่านี้มีลำดับความสำคัญเท่ากัน แต่มีลำดับความสำคัญต่ำกว่าตัวดำเนินการเลขคณิต โดยลำดับการทำงานในกลุ่มเดียวกันนั้นจะทำจากซ้ายไปขวา • == != ตัวดำเนินการเทียบเท่า(equality operator) สองตัวนี้มีลำดับความสำคัญเท่ากัน แต่ต่ำกว่าตัวดำเนินการเปรียบเทียบ< <= > >= เหล่านี้ และมีลำดับการทำงานในกลุ่มเดียวกันจากซ้ายไปขวา

  12. ตัวอย่าง 1 • สมมติ i, j และk เป็นตัวแปรจำนวนเต็มที่มีค่า 1, 2 และ3 ตามลำดับ ตารางต่อไปนี้เป็นนิพจน์ที่สร้างจากตัวแปรเหล่านี้

  13. ตัวดำเนินการเชิงตรรกะ (logical operator) • logical operator คือ ตัวดำเนินการที่ใช้ในการเปรียบเทียบและตัดสินใจ โดยเอาเงื่อนไขตั้งแต่ 2 เงื่อนไขมาเปรียบเทียบกัน ผลที่ได้จากการเปรียบเทียบจะได้ผลเป็น 2 กรณี คือ จริงซึ่งให้ค่าเป็น 1 และเท็จซึ่งให้ค่าเป็น 0 เช่นเดียวกับตัวดำเนินการเปรียบเทียบ(relational operator) โดยตัวดำเนินการเชิงตรรกะ (logical operator) มีดังนี้

  14. operator การทำงาน && เอาสถานะทั้งสองมา and กัน || เอาสถานะทั้งสองมา or กัน ! operand operand ! not เปลี่ยนสถานะให้ตรงกันข้าม (เป็น unary operator) เท็จ จริง จริง เท็จ ตัวดำเนินการเชิงตรรกะ (logical operator)

  15. OP1 OP2 OP1 && OP2 OP1 || OP2 เท็จ เท็จ เท็จ เท็จ เท็จ จริง เท็จ จริง จริง เท็จ เท็จ จริง จริง จริง จริง จริง ตารางค่าความจริงของ operator && และ || หมายเหตุค่าของ operand ถ้าเป็น 0 ถือว่า เท็จ ส่วนค่าอื่นๆที่ไม่ใช่ 0 ถือว่าจริง ตัวอย่าง printf(“value of (2>5) && (5>=5) = %d “, (2>5) && (5>=5)); printf(“value of (2>5) || (5>=5) = %d “, (2>5) || (5>=5));

  16. ตัวดำเนินการพิเศษ (special operator) คือ ตัวดำเนินการที่อยู่นอกเหนือจากกลุ่มตัวดำเนินการ ต่างๆ ที่ได้กล่าวมา ซึ่งประกอบด้วย • ตัวดำเนินการเพิ่ม/ลด (increment/decrement operator) • ตัวดำเนินการพอยน์เตอร์ (pointer-related operators) • ตัวดำเนินการคอมม่า (comma operator) • ตัวดำเนินการกำหนดชนิด (cast operator) • ตัวดำเนินการหาขนาด (sizeof operator)

  17. ตัวดำเนินการเพิ่ม/ลด (increment/decrement operator) • เป็นตัวดำเนินการสำหรับการเพิ่มค่าและการลดค่าในตัวแปรครั้งละหนึ่ง • ซึ่งสามารถนำไปใช้กับตัวแปรได้ 2 ลักษณะ คือ

  18. 1. วางไว้หลังตัวแปร เช่น i++ หรือ i-- • ซึ่งในกรณีนี้จะทำ operator ตัวอื่นก่อนแล้วจึงจะ เพิ่มหรือลดค่าในตัวแปร เช่น count = 2; i = count++; ดังนั้นจะนำค่าในตัวแปร count กำหนดให้กับ i ก่อน แล้วจึงเพิ่มค่าในตัวแปร count ขึ้นอีกหนึ่ง จะได้ i มีค่าเท่ากับ 2 count มีค่าเท่ากับ 3

  19. 2. วางไว้หน้าตัวแปร เช่น ++i หรือ --i • ซึ่งในกรณีนี้จะเพิ่มหรือลดค่าในตัวแปรก่อนแล้วจึงทำ operator ตัวอื่น เช่น count = 2; i = ++count; ดังนั้นจะเพิ่มค่าในตัวแปร count ขึ้นอีกหนึ่ง ก่อนจะกำหนดให้ กับตัวแปร i จะได้ i มีค่าเท่ากับ 3 count มีค่าเท่ากับ 3

  20. ตัวดำเนินการคอมม่า (comma operators) • ใช้แบ่งแยกแต่ละส่วน ภายใน statement เดียวกัน • ตัวอย่างเช่น int i = 5, j =6 , k;

  21. ตัวดำเนินการกำหนดชนิด (cast operator) • เราสามารถเปลี่ยนประเภทของข้อมูลที่ได้จากนิพจน์ไปเป็นประเภทของข้อมูลที่เราต้องการได้ โดยใส่ชื่อประเภทของข้อมูล ที่ต้องการเอาไว้ในวงเล็บก่อนที่จะเขียนนิพจน์นั้นโดยมีรูปแบบ คือ • โดยคำว่า type เป็นชื่อชนิดของตัวแปรที่ต้องการระบุให้แก่ expression หรือเทอมของคำสั่ง ซึ่ง expression อาจแทนโดยตัวแปรได้โดยตรง (type) expression;

  22. float cost=3.5; int mycost = cost; /* mycost มีค่าเท่ากับ 3 */ ข้างต้น ภาษา c จะแปลงชนิดของข้อมูลให้โดยอัตโนมัติ แต่เราก็สามารถระบุให้มีการแปลงชนิดตามที่เราต้องการ โดยใช้ casting operator เช่น i = (int) 3.4 * 6; i = (int) (3.4*6);

  23. Compound assignments • ในประโยคที่มีการกำหนดค่าใหม่ให้กับตัวแปร โดยใช้ค่าเดิมในตัวแปร ไปทำการคำนวณ เช่น • ในการทำงานลักษณะนี้ C ได้จัดเตรียม operator ในกลุ่มที่เรียกว่า ที่เรียกว่า compound assignments เพื่อให้ผู้ใช้สามารถเรียกใช้ได้ง่ายขึ้น operator ในกลุ่มของ compound assignment ประกอบด้วย int i = 5; i = i + 5; /* i เท่ากับ 10 */ คือ จะมีการนำค่าเดิมในตัวแปร i บวกด้วย 5 แล้วนำผลลัพธ์ที่ได้กำหนดให้ตัวแปร i อีกครั้ง

  24. Operator ตัวอย่าง เทียบเท่ากับ += i += 5; i = i + 5; -= i -= 5; i = i - 5; *= i *= 5; i = i * 5; /= i /= 5; i = i / 5; %= i %= 5; i = i % 5; ตารางตัวอย่างการใช้ compound assignments

  25. สรุป ลำดับความสำคัญของ operator ลำดับความสำคัญมาก ลำดับความสำคัญน้อย

More Related