1.4 นิพจน์
นิพจน์ (Expression) คือ ข้อกำหนดที่ใช้ในการคำนวณหาค่าต่าง ๆ ยกตัวอย่างง่าย ๆ ที่เห็นได้ชัดก็อย่างเช่นสูตรคณิตศาสตร์ต่าง
ๆ
ซึ่งสูตรเหล่านั้นจะประกอบไปด้วยโอเปอร์แรนด์ (Operand) โอเปอร์แรนด์ คือ ตัวแปร หรือค่าคงที่
หรือฟังก์ชันต่าง ๆ มาคำนวณอาจจะมีตั้งแต่หนึ่งตัวหรือมากว่า โดยการใช้โอเปร์เรเตอร์ (Operator) ซึ่งเป็นสัญลักษณ์ที่ใช้ในการคำนวณหรือเปรียบเทียบทางคณิตศาสตร์มาเป็นตัวเชื่อมของโอเปอร์แรนด์ ตัวอย่างเช่น
บวก (+) ลบ (-) คูณ (*) หาร (/) เป็นต้น
เพื่อจะเป็นการเข้าใจนิพจน์ดียิ่งขึ้นให้พิจารณาจากสูตรการหาพื้นที่ของวงกลมต่อไปนี้คือ p *
radius * radius
Expression
คือ p *
radius * radius
Operand
มี 2 ตัว
คือ
Variable
(ตัวแปร) คือ radius
Constant (ค่าคงที่) คือ p
Operator
คือ *
ตารางที่ 1.5 สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ในการคำนวณในภาษาไพธอน
จากตารางที่
1.5 จะเห็นได้ว่าสัญลักษณ์ที่ใช้คำนวณในภาษาไพธอนจะมีอยู่
6 ตัวด้วยกันคือ บวก
ลบ คูณ หาร
หารเอาเศษยกกำลังและหารไม่ปัดเศษ ซึ่งการคำนวณจะขึ้นอยู่กับชนิดของตัวแปรว่าเป็นชนิดข้อมูลแบบใดที่มากระทำต่อกัน
ซึ่งผลที่ได้เมื่อคำนวณเสร็จแล้วอาจจะเป็นชนิดข้อมูลแบบเดิมหรืออาจจะกลายเป็นชนิดข้อมูลตัวใหม่ก็ได้ ซึ่งการคำนวณแต่ละตัวจะมีวิธีการคำนวณดังตัวอย่างต่อไปนี้
การบวก (Addition)
integer + integer =
integer เช่น 5
+ 2 = 7
float +
integer = float
เช่น 5.5
+ 2 = 7.5
integer + float = float เช่น
2 + 5.5 = 7.5
float +
float =
float เช่น 2.5
+ 4.2 =
6.7
การลบ (Subtraction)
integer - integer
= integer เช่น 6
- 1 = 5
float - integer
= float เช่น 3.3 - 3 = 0.3
integer - float
=
float เช่น 3 - 3.3 =
-0.3
float -
float = float เช่น 1.5 - 2.7 = -1.2
การคูณ (Multiplication)
integer * integer
= integer เช่น 4
* 3 = 12
float *
integer = float เช่น 2.7 * 1 = 2.7
integer * float
= float เช่น 1
* 2.7 =
2.7
float *
float = float เช่น 3.2 * 2.4 =
7.68
การหาร
(Division)
integer / integer
= integer เช่น 5
/ 2 = 2
float / integer
= float เช่น 3.2 / 2 = 1.6
integer / float
= float เช่น 2
/ 3.2 = 0.625
float /
float = float เช่น 2.5 / 1.5 =
1.67
การหารเอาเศษ
(Remainder)
integer % integer
= integer เช่น 5
% 2 = 1
หมายเหตุ การหารเอาเศษไม่ใช่เอาเศษหลังจุดทศนิยมแต่จะเอาเศษที่เหลือจากการหารไม่ลงตัวมาเป็นผลลัพธ์
นิพจน์ทางตรรกศาสตร์ (Boolean Logical Expression) เป็นนิพจน์ที่แสดงความสัมพันธ์ของการเปรียบเทียบ
โดยการใช้ตัวเชื่อมด้วยโอเปอร์เรเตอร์ในการเปรียบเทียบเช่น มากกว่า
น้อยกว่า เท่ากับ ไม่เท่ากับ
เป็นต้น
และยังมีสัญลักษณ์ทางตรรกศาสตร์ซึ่งได้แก่
and or
not ที่ใช้เปรียบเทียบเงื่อนไขที่มีมากกว่าหนึ่งเงื่อนไข
ตารางที่ 1.6 สัญลักษณ์เปรียบเทียบทางคณิตศาสตร์
เครื่องหมาย
|
ความหมาย
|
==
>
<
<=
>=
<>, !=
|
เท่ากับ
น้อยกว่า
มากกว่า
น้อยกว่าหรือเท่ากับ
มากกว่าหรือเท่ากับ
ไม่เท่ากับ
|
ตารางที่ 1.7 เปรียบเทียบตรรกะทางคณิตศาสตร์
ตัวอย่างที่
1.
กำหนดให้ A = 1,
B = 2, C = 3
ถ้า (A != B) and
((A > C) or (C > B))
จะมีผลลัพธ์เป็นจริงหรือเท็จ
ผลลัพธ์ คือ จริง
ลำดับการกระทำของเครื่องหมาย
นิพจน์ที่ใช้ในการคำนวณอาจมีเครื่องหมายการคำนวณ เช่น + -
* / หรือการเปรียบเทียบเงื่อนไขต่าง ๆ จะต้องมีเครื่องหมายที่ใช้ในการเปรียบเทียบ
ให้ถูกต้องตรงกับหมายของการทำงาน และผู้เขียนคำสั่งโปรแกรมต้องทราบลำดับการทำงานของเครื่องหมายในแต่ละเครื่องหมาย
ว่าเครื่องหมายใดจะประมวลผลก่อนหรือหลัง
ตารางที่ 1.8 ลำดับการคำนวณของเครื่องหมายในภาษาไพธอน
ลำดับ
|
เครื่องหมาย
|
ความหมาย
|
1
|
**
|
ยกกำลัง
|
2
|
*, /, %
|
คูณ
หาร หารเอาเศษ
|
3
|
+, -
|
บวก ลบ
|
4
|
<, <=, >, >=, <>, !=, ==
|
น้อยกว่า น้อยกว่าหรือเท่ากับ มากกว่า
มากกว่าหรือเท่ากับ ไม่เท่ากับ ไม่เท่ากับ
เท่ากับ
|
5
|
not
|
บูลีนไม่
|
6
|
and
|
บูลีนและ
|
7
|
or
|
บูลีนหรือ
|
โดยทั่วไปแล้วในการคำนวณนิพจน์หรือการเปรียบเทียบเงื่อนไขที่กระทำโดยคน
จะคำนวณจากซ้ายมือไปขวามือตามลำดับ แต่การประมวลผลด้วยเครื่องคอมพิวเตอร์นั้นจะใช้หลักการให้ความสำคัญกับเครื่องหมายที่ใช้กับนิพจน์นั้น
ๆ โดยเครื่องหมายที่มีลำดับความสำคัญมากกว่าจะได้สิทธิ์ประมวลผลก่อน แม้ว่าเครื่องหมายนั้นจะอยู่ด้านขวามือก็ตาม แต่ถ้าเครื่องหมายใด ๆ
มีลำดับความสำคัญเท่ากันโปรแกรมคอมพิวเตอร์จะประมวลผลจากซ้ายมือไปขวามือตามปกติเช่นเดียวกับการคำนวณด้วยคน
ตัวอย่างที่
2
จากการคำนวณต่อไปนี้ price
จะได้คำตอบเท่ากับเท่าไร
price
= cost + packing * 2 – discount;
กำหนดให้
cost
= 100, packing = 10
และ discount
= 5
1. เริ่มต้นจากตัวแปร packing คูณด้วย 2
ก่อน เนื่องจากเครื่องหมาย *
ต้องทำก่อนเครื่องหมาย + หรือ
- ค่าที่ได้เท่ากับ 10 * 2
เท่ากับ 20
2. จากนั้นจะคำนวณจากซ้ายมือไปขวามือ เนื่องจากเครื่องหมาย + และ -
มีลำดับความสำคัญเท่ากัน
ดังนั้นจะนำเอา cost + ผลลัพธ์ที่ได้จากข้อ 1 จึงได้ผลลัพธ์เท่ากับ 120
3. สุดท้าย นำเอาผลลัพธ์จากขั้นที่ 2 ลบด้วย discount หรือ 120 – 5
เพราะฉะนั้นคำตอบที่ได้ price = 115
การเปลี่ยนลำดับการคำนวณนิพจน์ในภาษาไพธอน สามารถทำได้โดยการใส่เครื่องหมายวงเล็บ คร่อมส่วนของนิพจน์ที่ต้องการให้ทำการคำนวณก่อน
ซึ่งเป็นวิธีการคำนวณเช่นเดียวกับคน เช่น
price = ((cost + packing) * 2) – discount;
การแปลงนิพจน์ทั่วไปให้เป็นนิพจน์ในภาษาไพธอน
โดยทั่วไปแล้วเราไม่สามารถที่จะนำนิพจน์คณิตศาสตร์ทั่ว
ๆ ไปนำมาใช้ในภาษาไพธอนได้เลยอย่างเช่นนิพจน์คณิตศาสตร์ต่อไปนี้คือ ax2+bx+c
จะนำไปใช้เขียนโปรแกรมเลยไม่ได้ผู้เขียนโปรแกรมจะต้องแปลงให้เป็นนิพจน์ที่โปรแกรมภาษาคอมพิวเตอร์สามารถนำไปใช้ได้ ถ้าสังเกตให้ดีจะเห็นว่า ax2 จริง ๆ
แล้วจัดเป็นหนึ่งนิพจน์
ถ้าแปลงให้เป็นนิพจน์ของภาษาไพธอนจะได้
a*x*x แล้ว bx เป็นอีกนิพจน์หนึ่งถ้าแปลงเป็นนิพจน์ของภาษาไพธอนคือ b*x โดยนิพจน์สองตัวนี้ถูกเชื่อมด้วยโอเปอร์เรเตอร์ +
ก่อนที่จะนำนิพจน์สองตัวนี้มาเชื่อมด้วยเครื่องหมาย +
ให้ใส่วงเล็บเปิดปิดคร่อมนิพจน์แต่ละตัวก่อนถึงจะนำมาบวกกันได้ เพราะฉะนั้นถ้าเขียนเป็นนิพจน์ในภาษาไพธอนจะได้ดังนี้คือ (a*x*x)+(b*x)+c เป็นต้น
ตัวอย่าง จากนิพจน์คณิตศาสตร์ คือ
ถ้าแปลงเป็นนิพจน์ในภาษาไพธอนจะได้ (Y * Y) / (X * X)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น