บทที่  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  แสดงผลของตัวดำเนินการต่าง ๆ
      

ตัวดำเนินการในการกำหนดค่า
ตัวดำเนินการที่ใช้ในการกำหนดค่านั้นจะเป็นเครื่องหมาย = การทำงานของตัวดำเนินการนี้จะทำการนำค่าที่อยู่ทางด้านขวาของตัวดำเนินการไปเก็บไว้ในตัวแปรทางด้านซ้ายของตัวดำเนินการสิ่งที่อยู่ด้านขวาของตัวดำเนินการนั้นอาจจะเป็นนิพจน์ทางคณิตศาสตร์  หรือจะเป็นตัวแปรก็ได้
รูปแบบ
[ตัวแปร] = [นิพจน์]
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  การกำหนดให้กับตัวแปรในลักษณะต่าง ๆ
        

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  ผลของตัวดำเนินการแบบผสม
               

ตัวดำเนินการ  ++  และ  --
ตัวดำเนินการ  ++  จะทำการเพิ่มค่าของตัวแปรอีก  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

โปรแกรม  4-4  แสดงผลของตัวดำเนินการ  ++  ในแบบ  Postfix
/imgs/clip_image004_0003.gif           

แบบ  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