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)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น