วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2559

สรุปบทที่ 4 นิพจน์และตัวดำเนินการ

สรุปบทที่ 4 

 นิพจน์และตัวดำเนินการ


      นิพจน์ประกอบด้วย ตัวแปร ค่าคงที่ และตัว

ดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน

ตัวดำเนินการพื้นฐานในภาษาซี ประกอบด้วย


1. ตัวดำเนินการคณิตศาสตร์

2. ตัวดำเนินการยูนารี

3. ตัวดำเนินการเปรียบเทียบ

4. ตัวดำเนินการตรรกะ

5. ตัวดำเนินการกำหนดค่าแบบผสม

6. ตัวดำเนินการเงื่อนไข


1. ตัวดำเนินการคณิตศาสตร์
การเพิ่มค่า (increment)/ลดค่า (decrement) ด้วยสัญลักษณ์ ++, พิจารณา code ต่อไปนี้
/*1*/ int a = 1;
/*2*/ b = ++a;
บรรทัดที่ 1 เป็นการประกาศตัวแปรชนิดจำนวนเต็มชื่อ a และกำหนดค่าเริ่มต้นให้เท่ากับ 1
บรรทัดที่ 2 เป็นการเพิ่มค่าตัวแปร a ขึ้น 1 ค่า แล้วจึง copy ค่าของตัวแปร a ไปให้ตัวแปร b
code ดังกล่าวมีรูปแบบเต็มดังนี้
/*1*/ int a = 1, b;
/*2*/ a = a+1;
/*3*/ b = a;




หรือกล่าวได้ว่าเป็นการเพิ่มค่า a ขึ้น 1 ค่า ก่อนที่จะกำหนดค่านั้นให้ตัวแปร b
นอกจากเราจะเพิ่มค่าตัวแปรโดยใช้ a++ ได้ด้วยโดยมีความหมายแตกต่างกันเล็กน้อย ดังนี้
/*1*/ int a = 1, b;
/*2*/ b = a;
/*3*/ a = a+1;
หรือกล่าวได้ว่าเป็นการกำหนดค่าในตัวแปร b ให้กับตัวแปร a ก่อน แล้วค่อยเพิ่มค่าในตัวแปร a ขึ้น 1 ค่า
ในทำนองเดียวกัน เราสามารถลดค่าของตัวแปรใดๆ ด้วยเครื่องหมาย -- ได้เช่นกัน
การลดรูปคำสั่ง
พิจารณาตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a = a+b;
code ในบรรทัดที่ 2 เป็นการบวกค่าของตัวแปร a กับตัวแปร b แล้วคืนผลลัพธ์กลับไปเก็บไว้ในตัวแปร a (เท่ากับ 15)
ซึ่งสามารถลดรูปได้ดังนี้
/*1*/ int a = 5, b = 10;
/*2*/ a + =b;
ในทำนองเดียวกัน เราสามารถนำหลักการลดรูปนี้ไปใช้กับตัวดำเนินการ - (ลบ), * (คูณ), / (หาร), % (มอด) ได้
2. ตัวดำเนินการยูนารี
ตัวดำเนินการยูนารี คือ ตัวดำเนินการที่นำมาใช้กับตัวถูกดำเนินการชนิดใดๆ ในการเพิ่มค่าใหม่ขึ้นมา             ชึ่งอาจจะเป็นตัวถูกดำเนินการแบบค่าคงที่ เลขจำนวนเต็ม เลขจำนวนจริง ตัวแปร และนิพจน์ได้
                    ตัวดำเนินการเพิ่มค่า ใช้เครื่องหมาย  ++
                    ตัวดำเนินการลดค่า    ใช้เครื่องหมาย --
                ตัวอย่าง :
              ตัวดำเนินการ             นิพจน์                   ความหมาย
             ++ (prefix)                 ++a       เพิ่มค่าที่ละหนึ่งให้กับ a ก่อนแล้วจึงนำค่าใหม่ของ a ในนิพจน์นี้ไปใช้
             ++ (prefix)                 a++       นำค่าปัจจุบันของ a ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยเพิ่มค่า a อีกหนึ่ง
              -- (prefix)                  --b         ลดค่าลงอีกหนึ่งให้กับ b ก่อน แลัวจึงนำค่าใหม่ของ b ในนิพจน์นี้ไปใช้
               -- (prefix)                  b--        นำค่าค่าปัจจุบันของ b ในนิพจน์นี้ไปใช้งานก่อนแล้วค่อยลดค่า b ลง
                                                            หนึ่ง

                หมายเหตุ : ++i, i++  หมายถึง i = i +1
                                    --i, i--    หมายถึง i = i -



3. ตัวดำเนินการเปรียบเทียบ
เราสามารถกำหนดการทำงานของโปรแกรมให้เป็นไปตามเงื่อนไขต่างๆ ที่ต้องการได้ โดยตรวจสอบเงื่อนไขด้วยตัวดำเนินการเปรียบเทียบ
เครื่องหมาย
ความหมาย
==
เท่ากับ
!=
ไม่เท่ากับ
< 
น้อยกว่า
<=
น้อยกว่าหรือเท่ากับ
> 
มากกว่า
>=
มากกว่าหรือเท่ากับ


ผลลัพธ์จากการใช้ตัวดำเนินการเปรียบเทียบจะมีค่าเป็น จริง/true/1 และ เท็จ/false/0 เท่านั้น ดังตัวอย่างต่อไปนี้
/*1*/ int a = 5, b = 10;
/*2*/ a == 7;
/*3*/ a != b;
ดังนั้นบรรทัดที่ 2 จะให้ผลลัพธ์เป็นเท็จ (a มีค่า 5 ซึ่งไม่เท่ากับ 7) และบรรทัดที่ 3 จะให้ผลลัพธ์เป็นจริง (a ไม่เท่ากับ b)
4. ตัวดำเนินการตรรกะ
  เป็นตัวดำเนินการจำพวกใช้เชื่อมครับ ตัวดำเนินการพวกนี้จะใช้มากในส่วนของเงื่อนไข และลูปครับ ซึ่งจะอธิบายในบทต่อไป บางคนอาจจำได้เพราะเคยเรียนมาตอนม.ปลายแล้วครับ วิชาคณิตศาสตร์ ในบทตรรกะศาสตร์ไงครับ มีความหมายตามนั้นเลยครับ
กำหนดให้ตัวแปร A มีค่าเท่ากับ 1 (A=1) และตัวแปร B มีค่าเท่ากับ 0 (B=0)
ตารางตัวดำเนินการเชิงตรรกะ และตัวอย่างการใช้
ตัวดำเนินการ
อธิบาย
ตัวอย่าง
&&
เครื่องหมายและในทางตรรกะ หรือเครื่องหมายandในทางดิจิตัล
(A && B) เป็นเท็จ
||
เครื่องหมายหรือในทางตรรกะ หรือเครื่องหมายorในทางดิจิตัล
(A || B) เป็นจริง
!
เครื่องหมายnotในทางตรรกะ และ ในทางดิจิตัล
!(A&&B) เป็นจริง




5. ตัวดำเนินการกำหนดค่าแบบผสม
 จะประกอบด้วย + = , - = , * = , / = และ % =  
โดยสามารถแสดงได้ดังนี้
นิพจน์ทั่วไป
นิพจน์แบบผสม
a = a + 5
a + = 5
a = a - b
a - = 5
a = a * (b - 3)
a * = (b – 3)
a = a / 3
a / = -
a = a % (b – 2)
a % = (b - 2)

6. ตัวดำเนินการเงื่อนไข
 จะนำไปใช้ในการทดสอบค่านิพจน์ทางตรรกะว่า จริงหรือเท็จ ดังนี้
รูปแบบ    expression1 ?    expression2  :  expression3
                  โดยที่              expression 1  หมายถึง  นิพจน์เงื่อนไข
                                         expression 2  หมายถึง  นิพจน์กรณีเป็นจริง
                                          expression 3  หมายถึง  นิพจน์กรณีเป็นเท็จ

ตัวอย่าง
                 result  =   (x < y) ?  0 : 100 ;       หรือ         if   (x < y)
                                                                                        result = 0 ;
                                                                                     else
                                                                                         result = 100 ;

หมายความว่า        ถ้า x มีค่าน้อยกว่า y  แล้ว
                            
กรณีเป็นจริง    ตัวแปร result  จะถูกกำหนดค่าเป็น 0
                       
     กรณีเป็นเท็จ    ตัวแปร result  จะถูกกำหนดค่าเป็น 100
ตัวดำเนินการกับลำดับความสำคัญ
               ลำดับการประมวลผลของนิพจน์  จะทำการประมวลผลในส่วนของวงเล็บก่อนในกรณีที่มีวงเล็บ จากนั้นจะคำนวณไปตามลำดับของการประมวลดังตารางข้างล่างนี้ และหากมีเครื่องหมายที่อยู่ในลำดับการประมวลผลเดียวกันจะทำการคำนวณจากด้านซ้ายไปด้านขวา

อ้างอิง

หนังสือพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์
รหัส 2128-2009 

https://hnumlp10508.wordpress.com/%e0%b8%9a%e0%b8%97%e0%b9%80%e0%b8%a3%e0%b8%b5%e0%b8%a2%e0%b8%99/%e0%b8%9a%e0%b8%97%e0%b8%97%e0%b8%b5%e0%b9%88-2/%e0%b8%95%e0%b8%b1%e0%b8%a7%e0%b8%94%e0%b8%b3%e0%b9%80%e0%b8%99%e0%b8%b4%e0%b8%99%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b9%81%e0%b8%a5%e0%b8%b0%e0%b8%99%e0%b8%b4%e0%b8%9e%e0%b8%88%e0%b8%99%e0%b9%8c/


ไม่มีความคิดเห็น:

แสดงความคิดเห็น