วันอังคารที่ 15 พฤศจิกายน พ.ศ. 2554

นิพจน์เป็นองค์ประกอบพื้นฐาน ที่สร้างประโยคเชิงซ้อนในภาษาซี ขึ้นมา นิพจน์ประกอบไปด้วยตัวแปรและตัวดำเนินการ ภาษาซีมีตัวดำเนินการหลายประเภทเพื่อทำหน้าที่แตกต่างกัน ได้แก่ตัวดำเนินการคณิตศาสตร์ (Arithmetic operator) ตัวดำเนินการกำหนดค่า (Assignment operator) ตัวดำเนินการแบบยูนารี (Unary opeator) ตัวดำเนินการเชิงตรรก (Logical operator) และ ตัวดำเนินการเปรียบเทียบ (Comparative operator) ตัวดำเนินการเงื่อนไข (Conditional Operator) ต่อไปนี้จะกล่าวถึงตัวดำเนินการต่างๆ โดยละเอียด
ตัวดำเนินการคณิตศาสตร์
ได้แก่+     (การบวก) -     (การลบ) *     (การคูณ) /     (การหาร) %     (modulus หรือเศษที่ได้จากการหารเลขจำนวนเต็ม)
ตัวดำเนินการกำหนดค่า
เป็นตัวดำเนินการในการใส่ค่าตัวเลขแก่ตัวแปร เช่น             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 ;}
14/

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

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

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

ตัวดำเนินการคณิตศาสตร์
ได้แก่
  • +     (การบวก)
  • -     (การลบ)
  • *     (การคูณ)
  • /     (การหาร)
  • %     (modulus หรือเศษที่ได้จากการหารเลขจำนวนเต็ม)

ตัวดำเนินการกำหนดค่า
เป็นตัวดำเนินการในการใส่ค่าตัวเลขแก่ตัวแปร เช่น
            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 ;
}