หน่วยที่ 3 ประเภทของข้อมูล ตัวดำเนินการ และนิพจน์ (ต่อ)
นิพจน์ (Expressions)
นิพจน์ คือ การนำค่าคงที่ ตัวแปร และตัวดำเนินการมาเขียนประกอบกัน เพื่อให้ตัวแปรภาษาสามารถเข้าใจและคำนวณหาผลลัพธ์ได้ตามที่เราต้องการ สรุปได้ว่านิพจน์ คือ การดำเนินการที่ประกอบด้วยตัวดำเนินการ (operator) และ ตัวถูกดำเนินการ (operand)
ตัวดำเนินการ (operator) คือ สัญลักษณ์ที่ใช้ในการแทนการกระทำอย่างใดอย่างหนึ่งกับข้อมูล เช่น + - * / % = > <
ตัวถูกดำเนินการ (operand) คือ ข้อมูลที่ถูกกระทำโดยตัวดำเนินการ ซึ่งตัวถูกดำเนินการอาจอยู่ในรูปของ ตัวแปร (variable) , ค่าคงที่ (constant) , ค่าที่ได้รับจากฟังก์ชัน (return function) หรือแม้กระทั่งนิพจน์ (expression) เองก็เป็นตัวถูกดำเนินการได้ เช่น a+b , x++ , a != b , x = (a + b) / 2
แสดงลำดับความสำคัญการทำงานของตัวดำเนินการ ดังนี้
ตัวอย่าง โจทย์ให้คำนวณจากความสำคัญของตัวดำเนินการและคำนวณจากซ้ายไปขวา
- โจทย์ 10 * (5 - 2) = 30 เพราะ ขั้นที่หนึ่งคิดในวงเล็บก่อนจะได้ 10*3 สิบคูณสามคำตอบคือ 30
- โจทย์ (2 + 7) * 4 % 10 = 6 เพราะ ขั้นที่หนึ่งคิดในวงเล็บก่อนจะได้ 9*4%10 ขั้นที่สองคิดตัวคูณจะได้ 36%10 หารเอาเศษ เหลือเศษ 6
- โจทย์ 10 + 2 * 8 / 4 * 3 – 5 = 17 เพราะ ขั้นที่หนึ่งคิดเครื่องหมายคูณก่อนจะได้ 10+16/4*3-5 ขั้นที่สองคิดเครื่องหมายหารก่อนจะได้ 10+4*3-5 ขั้นที่สามคิดเครื่องหมายคูณก่อนจะได้ 10+12-5 ขั้นที่สี่เมื่อตัวดำเนินการเท่ากันให้คิดจากซ้ายไปขวา 22-5 คำตอบคือ 17
- เป็นต้น
พิเศษ! การเขียนโปรแกรม เพื่อแก้ปัญหา การแปลงค่า 105 ฟาเรนไฮต์ให้เป็นเซลเซียส
สามารถเขียนได้ดังนี้ จากสูตร องศาฟาเรนไฮต์ แปลงค่า องศาเซลเซียส °C = 5/9 (°F - 32)
ตัวอย่างโปรแกรม?การแปลงผันหน่วยอุณหภูมิ
#include<stdio.h>
void main()
{
float F;
float C;
F = 105;
C = 5*(F-32)/9;
printf("the result is %f",C);
}
/*หมายเหตุ สูตร องศาเซลเซียส แปลงค่า องศาฟาเรนไฮต์ °F = (9/5 × °C) + 32*/
พิเศษ! เพิ่มเติมวิธีสลับค่าตัวแปรสองตัวโดยใช้ตัวแปรกลาง
ในการเขียนโปรแกรม เวลาเราต้องการที่จะสลับค่าตัวแปรสองตัว วิธีพื้นฐานที่สุดที่ทุกคนชอบใช้กันก็คือ การประกาศตัวแปรเพิ่มมาอีกหนึ่งตัวแปรเพื่อใช้ในการรับค่ามาเก็บไว้ชั่วคราว
ตัวอย่างโปรแกรม?สลับค่าตัวแปรสองตัว
#include<stdio.h>
main()
{
int a = 10 , b = 15 , c;
c = a; // นำค่า a ไปเก็บไว้ใน c
a = b; // นำค่า b ไปใส่ใน a ทำให้ a มีค่าเท่ากับ b
b = c; // นำค่าของ c ซึ่งมีค่าเท่ากับ a ไปเก็บไว้ใน b
printf("a=%d : b=%d : c= %d", a, b, c);
getch();
}