วันจันทร์ที่ 14 พฤศจิกายน พ.ศ. 2554

นิพจน์ในภาษาซี

นิพจน์ในภาษาซี
                นิพจน์เป็นองค์ประกอบพื้นฐาน ที่สร้างประโยคเชิงซ้อนในภาษาซี ขึ้นมา นิพจน์ประกอบไปด้วยตัวแปรและตัวดำเนินการ ภาษาซีมีตัวดำเนินการหลายประเภทเพื่อทำหน้าที่แตกต่างกัน ได้แก่
ตัวดำเนินการคณิตศาสตร์ (Arithmetic operator) ตัวดำเนินการกำหนดค่า (Assignment operator) ตัวดำเนินการแบบยูนารี (Unary opeator) ตัวดำเนินการเชิงตรรก (Logical operator) และ ตัวดำเนินการเปรียบเทียบ (Comparative operator) ตัวดำเนินการเงื่อนไข (Conditional Operator) ต่อไปนี้จะกล่าวถึงตัวดำเนินการต่างๆ โดยละเอียด

ตัวดำเนินการคณิตศาสตร์ได้แก่
+     (การบวก) -     (การลบ) *     (การคูณ) /     (การหาร) %     (modulus หรือเศษที่ได้จากการหารเลขจำนวนเต็ม) นักศึกษาลองเขียนโปรแกรมคำนวณผลจากการดำเนินการหาร 10 / 3 = ? ในภาษาซี นั้น 10.0 / 3.0 จะไม่เท่ากับ 10 / 3 ลองทำดู

ตัวดำเนินการกำหนดค่า
เป็นตัวดำเนินการในการใส่ค่าตัวเลขแก่ตัวแปร เช่น
i = 6 ; x = y = 6 ; นอกจากนั้นยังมีตัวกำหนดค่าอื่นๆ อีก คือ
+= -= *= /= %= ตัวอย่างการใช้งานเช่น   i +=3 มีความหมายเดียวกับ   i = i + 3
นักศึกษาลองเขียนโปรแกรมใช้งานตัวดำเนินการ +=   -=   *=   และ /=

ตัวดำเนินการแบบยูนารี
เป็นตัวดำเนินการที่ต้องการตัวถูกดำเนินการเพียงตัวเดียวเท่านั้น ได้แก่ ++ และ -- เช่น
i++ มีความหมายเดียวกันกับ i + 1
i-- มีความหมายเดียวกันกับ i - 1
ลำดับการใช้งานของตัวดำเนินการแบบยูนารีมีความสำคัญ เราสามารถวางตัวดำเนินการแบบยูนารีไว้ข้างหน้า หรือ ข้างหลัง ตัวถูกดำเนินการก็ได้ ซึ่งจะให้ผลแตกต่างกัน ลองเขียนโปรแกรมข้างล่างนี้
โปรแกรมที่ 1 ตัวดำเนินการยูนารี
# include <stdio.h> main() { int i , j ; int x, y ; i = j = 1 ; x = i-- + 1 ; y = --j + 1 ; printf("i = %d and j = %d \n",i,j) ; printf("x = %d and y = %d \n",x,y) ; return 0 ; }

ตัวดำเนินการเชิงตรรก และ ตัวดำเนินการเปรียบเทียบ
ตัวดำเนินการเปรียบเทียบใช้เพื่อเปรียบเทียบค่าสองค่า เพื่อให้ผลเป็นค่าตรรกะคือ จริง หรือ เท็จ โดยผลจากการดำเนินการจะเป็นเลขจำนวนเต็ม คือ หากได้ 1 หมายถึง จริง และ 0 หมายถึง เท็จ ตัวดำเนินการเปรียบเทียบก็ได้แก่
<     (น้อยกว่า) >     (มากกว่า) <=     (น้อยกว่าหรือเท่ากับ) >=     (มากกว่าหรือเท่ากับ) ==     (เท่ากับ) !=     (ไม่เท่ากับ) จงลองเขียนโปรแกรมข้างล่างนี้ เพื่อทดสอบการใช้งานตัวดำเนินการเปรียบเทียบ
โปรแกรมที่ 2 การใช้งานตัวดำเนินการเปรียบเทียบ

# include <stdio.h> main() { int i = 1 , j = 2 , k = 3 ; printf(" The value of i < j is %d \n", i < j) ; printf(" The value of (k-i) > j is %d \n",(k-i) > j) ; printf(" The value of (i+j)==k is %d \n", (i+j)==k) ; }
ตัวดำเนินการเชิงตรรกในภาษาซีมีอยู่ 3 ตัวได้แก่
&& (และ) || (หรือ) ! (ไม่ใช่) โปรแกรมที่ 3 การใช้งานตัวดำเนินการเปรียบเทียบและตัวดำเนินการเชิงตรรก # include <stdio.h> main( ) { int i = 1 , j =2 , k = 3 ; printf("The value of (j > i) && (k > i) is %d \n",(j > i) && (k > i)) ; printf("The value of (j > i) || (k > i) is %d \n", (j > i) || (k > i)) ; printf("The value of !(j > i) && (k > i) is %d \n", (j > i) && (k > i)) ; printf("The value of !(j > i) || (k > i) is %d \n", !(j > i) || (k > i)) ; return 0 ; }

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

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