หน่วยที่ 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();

}