บทที่ 4 เครื่องหมายและการดำเนินการในภาษา C

เครื่องหมายการคำนวณทางคณิตศาสตร์
                การดำเนินการพื้นฐานที่สุดทั้งในชีวิตประจำวันและในการเขียนโปรแกรมก็คือ การคำนวณทางคณิตศาสตร์ ซึ่งถือได้ว่าเป็นการดำเนินการที่ต้องกระทำอยู่บ่อยครั้ง โดยเครื่องหมายที่ใช้ในการคำนวณทางคณิตศาสตร์ในภาษาC แสดงตารางดังต่อไปนี้
ตัวอย่างการใช้เครื่องหมายการคำนวณทางคณิตศาสตร์ในภาษา C แสดงตัวอย่างดังต่อไปนี้



เมื่อสั่งรันโปรแกรมจะปรากฏผลการทำงานดังรูปต่อไปนี้
เครื่องหมายการคำนวณทางคณิตศาสตร์ประเภทเพิ่มหรือลดค่า
เครื่องหมายการคำนวณทางคณิตศาสตร์ประเภทของการเพิ่มหรือลดค่าลงทีละหนึ่ง แสดงดังตารางต่อไปนี้
สำหรับเครื่องหมายประเภทเพิ่มหรือลดค่านี้ ต้องระวังลำดับก่อนหลังของเครื่องหมายให้ดี ถ้าเครื่องหมายอยู่ด้านหน้าตัวแปร เช่น z =++x         หรือ z =--x นั่นหมายถึง ให้เพิ่มหรือลดค่าของ x ก่อนที่จะกำหนดค่าให้กับตัวแปร z ส่วนถ้าเครื่องหมายอยู่ด้านหลัง เช่น z = x++ หรือ z =x— คือการกำหนดค่าของ x ให้กับ z ก่อนที่จะเพิ่มหรือลดค่าของ x เพื่อความเข้าใจให้ดูผลลัพธ์ของโปรแกรมต่อไปนี้

เมื่อสั่งรันโปรแกรมจะปรากฏผลการทำงานดังรูปต่อไปนี้


เครื่องหมายการคำนวณทางคณิตศาสตร์ประเภทลดรูป
                นอกจากเครื่องหมายคำนวณตามปกติ และเครื่องหมายคำนวณแบบเพิ่ม/ลดค่าแล้ว การคำนวณทางคณิตศาสตร์ในภาษา C ยังมีเครื่องหมายประเภทที่เรียกว่า ลดรูปอีกด้วย ดังแสดงรายละเอียดในตารางต่อไปนี้


เครื่องหมายทางตรรกศาสตร์
เครื่องหมายตรรกศาสตร์เป็นการหาผลลัพธ์โดยใช้หลักการทางตรรกศาสตร์ ส่วนใหญ่มักใช้ในระบบคอมพิวเตอร์ หรือระบบเกี่ยวกับวงจรไฟฟ้า โดยเครื่องหมายทางตรรกศาสตร์ที่ใช้ในการเขียนโปรแกรมภาษา c มีอยู่ 3 ชนิดคือ && (and) , || (or) และ ! (not)
                ผลลัพธ์จาการดำเนินการทางตรรกศาสตร์โดยใช้เครื่องหมายทั้ง 3 ชนิด แสดงดังตารางต่อไปนี้โดยกำหนดให้ T แทนค่าที่เป็นจริง และ F แทนค่าที่เป็นจริง

ทำความรู้จักนิพจน์ (Expression)
นิพจน์คือ การนำข้อมูลซึ่งอาจจะอยู่ในรูปของค่าคงที่หรือตัวแปรมาดำเนินการโดยใช้เครื่องหมายต่างๆ เป็นตัวสั่งงาน สำหรับนิพจน์ที่เราพบเห็นกันทั่วไปในชีวิตประจำวัน ยกตัวอย่างดังต่อไปนี้
·       5+3=8
·       B2-4bax2+bx+c
·       R2
·       2xy-4
การเขียนนิพจน์ในภาษา C
นิพจน์ในภาษา C ก็คือการนำข้อมูลและตัวแปรในภาษา c มาดำเนินการต่อด้วยเครื่องหมายทางคณิตศาสตร์ ตรรกศาสตร์ หรือเครื่องหมายเปรียบเทียบในภาษา c เป็นตัวสั่งงาน
นิพจน์ทางคณิตศาสตร์
การเขียนนิพจน์ทางคณิตศาสตร์ในภาษา c จะเหมือนกับการเขียนนิพจน์ทางคณิตศาสตร์ตามปกติเพียงแต่เปลี่ยนมาใช้เครื่องหมายทางคณิตศาสตร์ของภาษา c แทน ซื่งต้องระวังเครื่องหมายบางตัวที่ใช้ไม่เหมือนกัน อย่างเช่น การคูณจะใช้เครื่องหมาย * แทน x หรือหารจะใช้เครื่องหมาย/แทน
ตัวอย่างกรเขียนนิพจน์ทางคณิตศาสตร์ในภาษา c แสดงดังต่อไปนี้

นิพจน์ทางตรรกศาสตร์
การเขียนนิพจน์ตรรกศาสตร์ในภาษา c ก็คือ การเขียนนิพจน์โดยใช้เครื่องหมายการดำเนินการทางตรรกศาสตร์ในภาษา c (&&)||, !) เป็นตัวสั่งงาน ซึ่งส่วนใหญ่แล้วนิพจน์ทางตรรกศาสตร์จะอยู่ร่วมกับนิพจน์อื่นๆ
                ตัวอย่างนิพจน์ทางตรรกศาสตร์พร้อมทั้งผลลัพธ์จากการดำเนินการ แสดงดังตารางต่อไปนี้ โดยกำหนดให้ตัวแปร a=25, b=-124และc=0

ลำดับของเครื่องหมายในการคำนวณ
ส่วนใหญ่นิพจน์ที่เขียนขึ้นในโปรแกรมมักจะมีความซับซ้อน มีการดำเนินการหลายอย่างปะปนอยู่ภายในนิพจน์เดียวกัน ยกตัวอย่างเช่น a/b+15*c หรือ(a-b)*10/c&& d+5 ซึ้งผลลัพธ์จะออกมาเป็นอย่างไรนั้น ต้องพิจารณาลำดับความสำคัญก่อนหลังของเครื่องหมายที่ภาษา c กำหนดไว้ให้ ดังแสดงในตารางต่อไปนี้

การเปลี่ยนชนิดของตัวแปร
ถ้านำตัวแปรต่างชนิดมาดำเนินการร่วมกัน ยกตัวอย่างเช่น int + float หรือ int – char การที่จะดำเนินการตามเครื่องหมายได้นั้น จะต้องเปลี่ยนชนิดของตัวแปรให้เป็นชนิดเดียวกันก่อน โดยวีธีการเปลี่ยนตัวแปรในภาษา c จะเรียกการ Cadting ซึ่งมีอยู่ 2 รูปแบบด้วยกันคือ เปลี่ยนโดยอัตโนมัติและเปลี่ยนโดยคำสั่ง
เปลี่ยนชนิดของตัวแปรโดยอัตโนมัติ
วิธีเปลี่ยนโดยอัตโนมัติจะเรียกว่า Implicit casting เราไม่ต้องทำอะไร ตัวแปรภาษา c จะจัดการให้ทั้งหมด โดยใช้หลักการเปลี่ยนชนิดของตัวแปรที่ขนาดเล็กกว่าไปตามชนิดของตัวแปรที่มีขนาดใหญ่กว่าดังตัวอย่างต่อไปนี้
การนำตัวแปรต่างชนิดมาดำเนินการร่วมกัน ซึ่งมีการเปลี่ยนชนิดของตัวแปรโดยอัตโนมัติ ดังแสดงตัวอย่างดังต่อไปนี้

เปลี่ยนชนิดของตัวแปรโดยคำสั่ง
การเปลี่ยนชนิดของตัวแปรโดยคำสั่งจะเรียกว่า Explicit castint เป็นการใช้คำสั่งเพื่อเปลี่ยนชนิดของตัวแปร เราสามารถเลือกชนิดของตัวแปรที่การจะเปลี่ยนไปใช้ได้ โดยรูปแบบคำสั่งแสดงดังนี้
ตัวอย่างการเขียนคำสั่งเพื่อเปลี่ยนชนิดของตัวแปรและข้อมูล แสดงดังต่อไปนี้
เมื่อสั่งรันโปรแกรมจะปรากฏผลการทำงานดังรูปต่อไปนี้