บทที่ 4
นิพจน์ทางคณิตศาสตร์
นิพจน์ (Expressions)
ทางคณิตศาสตร์นั้นเป็นนิพจน์ที่ใช้ในการคำนวณ
ซึ่งนิพจน์ทางคณิตศาสตร์นั้นจะมีรูปแบบเหมือนกับสมการคณิตศาสตร์
แต่จะประกอบไปด้วย ค่าคงที่หรือตัวแปร ซึ่งเรียกอีกอย่างว่า
ตัวถูกดำเนินการ (Operand) แล้วเชื่อมกันด้วยเครื่องหมายทางคณิตศาสตร์
หรือเรียกอีกอย่างว่า ตัวดำเนินการ (Operator) นั่นเอง
รูปแบบ
[ตัวถูกดำเนินการตัวแรก] [ตัวดำเนินการ] [ตัวถูกดำเนินการตัวที่สอง]
ตัวอย่าง
A+B
2+A
ตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการทางคณิตศาสตร์ของภาษา C มีดังนี้
ตารางที่ 4.1 แสดงตัวดำเนินการทางคณิตศาสตร์
ตัวดำเนินการ |
ความหมาย
|
+
-
*
/
%
++
--
|
บวก
ลบ
คูณ
หาร
หารเอาเศษหรือ Modulus
เพิ่มค่าครั้งละ 1
ลดค่าครั้งละ 1
|
การสร้างนิพจน์ทางคณิตศาสตร์
ถ้าเป็นนิพจน์ที่มีตัวถูกดำเนินการเพียง 2 ตัวจะไม่มีปัญหาอะไร
แต่ถ้าเกิดมีตัวถูกดำเนินการมากกว่า 2 ตัวขึ้นไป
ผู้ใช้จะต้องคำนึงถึงลำดับความสำคัญของตัวดำเนินการด้วย
มิฉะนั้นอาจจะได้ผลลัพธ์ที่ไม่ตรงตามความต้องการได้
ตัวอย่าง
ผู้ใช้ต้องการให้เอา 2 บวกกับ 3 แล้วนำไปคูณด้วย 5
ซึ่งคำตอบที่ผู้ใช้ต้องการ คือ 25 แต่ถ้าผู้ใช้เขียนนิพจน์เป็น
2 + 3 * 5
ผลลัพธ์ที่ได้จะเท่ากับ 17 เพราะภาษา C
จะคิดตามลำดับความสำคัญของตัวดำเนินการ (Precedence) ดังนี้ เอา 3
คูณกับ 5 ได้ 15 แล้วนำไปบวกกับ 2 ได้ 17
ซึ่งเป็นคำตอบที่ไม่ตรงตามความต้องการ
เพราะฉะนั้นผู้ใช้จึงต้องระวังเรื่องนี้อย่างมาก
วิธีการแก้ไขก็สามารถทำได้โดยการใช้วงเล็บเข้ามาช่วย
ซึ่งวงเล็บจะมีลำดับความสำคัญสูงที่สุด และเมื่อลำดับความสำคัญเท่ากัน
ให้ดูในตารางโดยเรียงจากซ้ายไปขวา ซึ่งถ้ามีหลายวงเล็บซ้อนกัน ภาษา C
จะคิดจากวงเล็บในออกมา
ดังนั้นถ้าตัวอย่างด้านบนจะเขียนนิพจน์ให้ได้ผลลัพธ์ตามต้องการ
จะต้องเขียนดังนี้
(2 + 3) * 5
ผลลัพธ์ที่ได้จะเป็น 2 บวกกับ 3 ได้ 5 แล้วคูณด้วย 5 จะเท่ากับ 25
ตารางที่ 4.2 ลำดับความสำคัญของตัวดำเนินการทางคณิตศาสตร์ (ยิ่งมากยิ่งสำคัญ)
ตัวดำเนินการ |
ลำดับความสำคัญ
|
++,--
|
16
|
- (เครื่องหมายลบหน้าตัวเลข)
|
15
|
*, /, %
|
13
|
+, -
|
12
|
ตัวอย่างนิพจน์ และวิธีการคำนวณ
นิพจน์ |
วิธีการคำนวณ
|
10 / 2 * 3
|
เอา 10 หาร 2 ได้ 5 แล้วคูณด้วย 3 จะได้ผลลัพธ์ 15
|
((5 + 3) * (9 - 2)) + 3
|
เอา 5 บวก 3 ได้ 8 แล้วเอา 9 ลบ ได้ 7 แล้วนำ 5 บวก 7 ได้ 12 แล้วนำ 12 มาบวก 3 จะได้ผลลัพธ์ 15
|
12 * 2 + (2 * 6)
|
เอา 2 คูณ 6 ได้ 12 แล้วนำ 12 มาคูณ 2 ได้ 24 จากนั้นนำ 24 มาบวก 12 จะได้ผลลัพธ์ 36
|
โปรแกรมที่ 4-1 แสดงผลของตัวดำเนินการต่าง ๆ
กิจกรรมนับคาบเรียน
คำสั่ง ให้นักเรียนเขียนโปรแกรมลอกเลียนแบบตัวอย่างโปรแกรม 4-1 โดยกำหนดให้
a = 30 ; c= 60 ; b=1.2 ; d=5
กดคลิกเื่พื่อส่งโปรแกรม
กดคลิกเื่พื่อส่งผลลัธ์ที่ได้จากโปรแกรม
รายละเอียดการติดตามการเรียน
ให้นักเรียน บันทึกกิจกรรมที่ส่ง กดที่นี่
ผู้ปกครองติดตามการเรียนของนักเรียน
กดที่นี่
ตัวดำเนินการในการกำหนดค่า
ตัวดำเนินการที่ใช้ในการกำหนดค่านั้นจะเป็นเครื่องหมาย =
การทำงานของตัวดำเนินการนี้จะทำการนำค่าที่อยู่ทางด้านขวาของตัวดำเนินการไป
เก็บไว้ในตัวแปรทางด้านซ้ายของตัวดำเนินการสิ่งที่อยู่ด้านขวาของตัวดำเนิน
การนั้นอาจจะเป็นนิพจน์ทางคณิตศาสตร์ หรือจะเป็นตัวแปรก็ได้
รูปแบบ
[ตัวแปร] = [นิพจน์]
Simple Assignments (การกำหนดค่าแบบง่าย)
Simple Assignments จะมีรูปแบบเหมือนกับรูปแบบด้านบน หรือเหมือนกับสมการทางคณิตศาสตร์ทั่วไป
ตัวอย่าง
A = 2
Sum = 2 + A
Sum = (2 * 5) + 6
ตัวอย่าง Simple Assignments
ค่าของ x |
ค่าของ y
|
นิพจน์
|
ค่าของนิพจน์
|
ผลลัพธ์ของนิพจน์
|
10
|
5
|
x=y +2
|
7
|
x=7
|
10
|
5
|
x=x /y
|
2
|
x=2
|
10
|
5
|
x=y % 4
|
1
|
x=1
|
โปรแกรม 4-2 การกำหนดให้กับตัวแปรในลักษณะต่าง ๆ
กิจกรรมนับคาบเรียน
คำสั่ง ให้นักเรียนเขียนโปรแกรมลอกเลียนแบบตัวอย่างโปรแกรม 4-2 โดยกำหนดให้
x = 10.5 ; y=8.725
กดคลิกเื่พื่อส่งโปรแกรม
กดคลิกเื่พื่อส่งผลลัธ์ที่ได้จากโปรแกรม
รายละเอียดการติดตามการเรียน
ให้นักเรียน บันทึกกิจกรรมที่ส่ง กดที่นี่
ผู้ปกครองติดตามการเรียนของนักเรียน
กดที่นี่
Compound Assignments (การกำหนดค่าแบบผสม)
Compound Assignment เป็นการกำหนดที่สั้นกว่าแบบ Simple
Assignment ซึ่งจะใช้ตัวดำเนินการ 5 ตัวด้วยกัน ดังนี้ *=, /=, %=,
+= และ-=
ตารางที่ 4-3 ความหมายของตัวดำเนินการ
นิพจน์แบบ Compound |
เทียบเท่ากับนิพจน์แบบ Simple
|
x * = y
|
x = x* y
|
X / = y
|
X = x/y
|
X % = y
|
X =x %y
|
X + = y
|
X = x+y
|
X - =y
|
X =x-y
|
ตัวอย่าง Simple Assignments
ค่าของ x |
ค่าของ y
|
นิพจน์
|
ค่าของนิพจน์
|
ผลลัพธ์ของนิพจน์
|
10
|
5
|
x * = y
|
50
|
X = 50
|
10
|
5
|
X / = t
|
2
|
X = 2
|
10
|
5
|
X % = y
|
0
|
X = 0
|
10
|
5
|
X + = y
|
15
|
X = 15
|
10
|
5
|
X - = y
|
5
|
X = 5
|
โปรแกรม 4.3 ผลของตัวดำเนินการแบบผสม
กิจกรรมนับคาบเรียน
คำสั่ง ให้นักเรียนเขียนโปรแกรมลอกเลียนแบบตัวอย่างโปรแกรม 4-3 โดยกำหนดให้
x=20 ; y =15
กดคลิกเื่พื่อส่งโปรแกรม
กดคลิกเื่พื่อส่งผลลัธ์ที่ได้จากโปรแกรม
รายละเอียดการติดตามการเรียน
ให้นักเรียน บันทึกกิจกรรมที่ส่ง กดที่นี่
ผู้ปกครองติดตามการเรียนของนักเรียน
กดที่นี่
ตัวดำเนินการ ++ และ --
ตัวดำเนินการ ++ จะทำการเพิ่มค่าของตัวแปรอีก 1 ส่วน --
นั้นจะทำการลดค่าของตัวแปรลง 1 ซึ่งการสร้างนิพจน์ด้วยตัวดำเนินการ 2
ตัวนี้ จะมี 2 แบบ คือ
แบบ Postfix
รูปแบบ
[ตัวแปร] [ตัวดำเนินการ]
ตัวอย่าง
A ++
A –
ขั้นตอนการทำงานของนิพจน์แบบ Postfix เมื่อนิพจน์ x = a++
1. ให้ x = a
2. จากนั้นจะทำการ a = a + 1
หรือ เมื่อนิพจน์เป็น y = b-- จะมีขั้นตอนการทำการ ดังนี้
1. ให้ y = b
2. จากนั้นจะทำการ b = b – 1
ค่าของ a ตอนแรก |
นิพจน์
|
ผลลัพธ์ของนิพจน์
|
ค่าของ a ตอนหลัง
|
10
|
a++
|
10
|
11
|
10
|
a--
|
10
|
9
|
แบบ Prefix
รูปแบบ
[ตัวดำเนินการ] [ตัวแปร]
ตัวอย่าง
++a
--a
ขั้นตอนการทำงานของนิพจน์แบบ Prefix เมื่อนิพจน์ x = ++a
1. จากนั้นจะทำการ a = a + 1
2. ให้ x = a
หรือ เมื่อนิพจน์เป็น y = --b จะมีขั้นตอนการทำการ ดังนี้
1. จากนั้นจะทำการ b = b-1
2. ให้ y = b
ค่าของ a ตอนแรก |
นิพจน์
|
ผลลัพธ์ของนิพจน์
|
ค่าของ a ตอนหลัง
|
10
|
++a
|
11
|
11
|
10
|
--a
|
9
|
9
|
โปรแกรม 4-5 แสดงผลของตัวดำเนินการ ++ ในแบบ Prefix
กิจกรรมนับคาบเรียน
คำสั่ง ให้นักเรียนเขียนโปรแกรมลอกเลียนแบบตัวอย่างโปรแกรม 4-5 ให้นักเรียนเขียนโปรแกรมแบบ postfix
กดคลิกเื่พื่อส่งโปรแกรม
กดคลิกเื่พื่อส่งผลลัธ์ที่ได้จากโปรแกรม
รายละเอียดการติดตามการเรียน
ให้นักเรียน บันทึกกิจกรรมที่ส่ง กดที่นี่
ผู้ปกครองติดตามการเรียนของนักเรียน
กดที่นี่
แบบทดสอบ ทดสอบเก็บคะแนน 15 คะแนน