รายวิชา ง40209
 ภาคเรียนที่ 1 ปี การศึกษา 2554
             บทที่ 1
หลักการเขียนโปรแกรมเบื้องต้น
           ภาษา C#
      ผูสอน : กวีภทร ภูสมศรี
        ้         ั
วัตถุประสงค์หลักของภาษา C#
   เป็ นภาษาใหม่ที่มีประสิทธิภาพการทางานเทียบเท่า หรือเหนื อกว่า C++
    แต่ ไ ม่ ยุ่ ง ยากและซั บ ซ้อ นเท่ า โดยสามารถใช้ง านได้ง่ า ยเหมื อ นภาษา
    Visual Basic ทาให้สามารถพัฒนา                    แอพพลิเคชันในระดับสูงได้
                                                                  ่
    ดียิ่งกว่าการใช้ภาษา Visual Basic




                                                                                 2
ส่วนประกอบโดยทัวไปของโปรแกรม
               ่
     1. ชื่อโปรแกรม (Program name) โดยทัวไปมักตั้งชื่อโปรแกรมให้
                                                      ่
 สื่อความหมายกับการทางานหรือผลลัพธ์ของโปรแกรมเพื่อสะดวกในการใช้งาน นิ ยมใช้
 คากริยานาหน้าตามด้วยคาขยาย
 2. การกาหนดตัวแปร(Variables) หรือค่าคงที่(Constant)ที่ใช้
 ในโปรแกรม โดยกาหนดชื่อในภาษาอังกฤษที่สื่อความหมายกับข้อมูลที่เก็บ
 3. การกาหนดจุดเริ่มต้นของโปรแกรม (Beginning of Code) อาจ
 ใช้คาว่า BEGIN หรือ เครื่องหมาย {
 4. ชุดคาสั ่ง (Statement) เป็ นคาสังในรูปแบบโปรแกรม
                                           ่
 ภาษาคอมพิวเตอร์ ที่สงให้คอมพิวเตอร์ทางาน
                     ั่
 5. การกาหนดจุดสิ้นสุดของโปรแกรม (End of Code) อาจใช้คาว่า
 END หรือ เครื่องหมาย }


                                                                              3
คาอธิบาย (Comment)
   // comment
    ◦ สาหรับคาอธิบายเพียงบรรทัดเดียว
   /* multiline
       comment */
    ◦ กรณีที่คาอธิบายยาว หลายบรรทัด




                                       4
   ตัวแบ่งแยก อาจเป็ นสัญลักษณ์หรือตัวอักษร ใช้สาหรับจัดกลุ่มคาหรือ
    แบ่งแยกคา
   เช่น ในโปรแกรมภาษา C# ใช้
             { } ใช้จดกลุ่มบล็อก
                         ั
             ( ) ต่อท้าย method ใช้สาหรับใส่พารามิเตอร์
             [ ] ใช้ระบุอาร์เรย์
             ; ใช้ระบุ จบคาสัง (end of statement)
                              ่
             , ใช้คนระหว่างตัวแปร
                    ั่
             . ใช้แยกชื่อออบเจ็กต์




Separators
                                                                       5
Keywords
 คียเวิรด :
     ์ ์   เป็ นคาที่สงวนไว้ใช้เป็ นคาสังใน C#
                                        ่
 ไม่สามารถนาคาเหล่านี้ ไปกาหนดเป็ นชื่ออย่างอื่นได้




                                                       6
Keywords




           7
 ตัวแปร(Variable) หมายถึง สัญลักษณ์ที่เราใช้แทนข้อมูลชนิ ดต่างๆ
  โดยข้อมูลที่จะนามาเก็บในตัวแปรต้องตรงกับที่เราได้กาหนดไว้
 และการจะนาข้อมูลไปใช้งานก็ตองกระทาผ่านตัวแปรนี้
                                ้
 จาเป็ นต้องระบุลงไปด้วยว่าตัวแปรนั้นใช้เก็บข้อมูลชนิ ดใด




การกาหนดตัวแปรและข้อมูล
                                                                   8
 ขึ้ นต้นด้วยตัวอักษร
 ห้ามใช้ตวเลข หรืออักขระเป็ นตัวเริ่มต้น
             ั
 รูปแบบตัวอักษรพิมพ์ต่างกัน ถือเป็ นคนละตัว
  (case sensitive) เช่น myvar, myVar, MYVAR
  ถือเป็ นคนละตัว
 ห้ามตั้งชื่อตัวแปรซ้ากับคาสงวน




        ้
หลักการตังชื่อตัวแปร
                                               9
 ตัวอย่างการตั้งชื่อที่ถกต้อง
                         ู
   ◦ Num, myNum1, string4, Data
 ตัวอย่างการตั้งชื่อที่ไม่ถูกต้อง
   ◦ 9xx, @myWeb, Look@me




        ้
หลักการตังชื่อตัวแปร
                                     10
วิธี1 [ชนิดของข้อมูล] ชื่อตัวแปร;

วิธ2 [ชนิดของข้อมูล] ชื่อตัวแปร = [ค่าเริ่มต้นของตัวแปร];
   ี

   int x;     int y, z;int Y, Z = 3;
   Double d = 10.99;
   String s1 = “Visual", s2=“C#” , s3=“.Net”;


หมายเหตุ:     ไม่สามารถประกาศตัวแปรซ้้าภายในบล็อก {…} เดียวกัน
การประกาศตัวแปร (Variable)
                                                             11
ค่าคงที่เป็นตัวแปรที่ก้าหนดค่าตายตัว ไม่สามารถเปลี่ยนแปลงได้


 const [ชนิดของข้อมูล] ชื่อตัวแปร = ค่าคงที่;

 const int x = 1;
 const double pi = 3.14;



หมายเหตุ: ไม่สามารถเปลี่ยนแปลงค่าคงที่ได้
การประกาศค่าคงที่ (Constant)
                                                               12
 Global      Variable ตัวแปรที่ใช้ได้ท้งโปรแกรม
                                        ั
 Local Variable ตัวแปรที่เกิดขึ้ นเฉพาะที่ มีขอบเขต
  เฉพาะส่วนที่เกิดขึ้ น




ขอบเขตของตัวแปร
                                                       13
   ระดับ Public
    ◦ มีขอบเขตกว้างที่สุด สามารถเรียกใช้ ณ ตาแหน่ งใดก็ได้ที่อยูในโปรเจ็ค
                                                               ่
   ระดับ Procedure
    ◦ มีขอบเขตขนาดกลาง เป็ นระดับที่เหมาะสมกับการใช้งานมากที่สุด มีขอบเขตอยูในแต่ละ
                                                                           ่
      เหตุการณ์
   ระดับ Block
    ◦ มีขอบเขตขนาดเล็กที่สุด มักจะใช้เก็บค่าชัวคราว หรือตัวแปรที่วนลูปเป็ นส่วนใหญ่ เช่น ตัวแปรที่
                                              ่
      อยูในบล็อกของคาสังต่างๆ เช่น if…else เป็ นต้น
         ่             ่




มุมมองขอบเขตของตัวแปร
                                                                                                 14
   คือตัวแปรที่ใช้ในการส่งค่ามายังฟั งก์ชนหรือ เมทธอด สามารถส่งผ่าน
                                          ั
    ค่าตัวแปร ไปทางานในโปรแกรมย่อย ได้ 3 แบบ ได้แก่
   Pass By Value
   Pass By Reference
   Pass By Constant




Parameter
                                                                       15
   สาหรับภาษาC# สามารถแบ่งกลุ่มประเภท ได้ 3 กลุ่ม ดังนี้
    1. Value types
    2. References types
    3. Pointer types




ประเภทของข้อมูลในภาษา C#
                                                            16
 Value types ตัวแปรของกลุ่มนี้ เป็ นประเภทที่ใช้ขอมูลโดยตรง
                                                           ้
 จะเปลี่ยนแปลงค่าเมื่อมีค่าใหม่ไปเก็บทับค่าเดิม และจะถูกทาลายเมื่ออยูนอก
                                                                      ่
  ขอบเขต
 ชนิ ดข้อมูลในกลุ่มประเภทนี้ คือ sbyte, byte, short,
  ushort, int, uint, long, ulong, char, float,
  double, bool และ decimal




ประเภทของข้อมูลในภาษา C#
                                                                            17
 Numeric (เลขจานวนเต็ม และเลขทศนิ ยม)
 Char (ตัวอักษร)
 String (ข้อความ)
 Boolean (บูลีน)
 Object




ชนิดของข้อมูล
                                         18
เลขจานวนเต็ม

     Data type         ขนาด            ค่าของข้อมูล
sbyte (System.SByte)   1 byte    -128 ถึง 127
short (System.Int16)   2 bytes   -32,768 ถึง 32,767
int (System.Int32)     4 bytes   -2,147,483,648 ถึง
                                 2,147,483,647
long (System.Int64)    8 bytes   -263 ถึง (263 – 1)


                                                      19
เลขจานวนเต็มบวก

      Data type          ขนาด          ค่าของข้อมูล
byte (System.Byte)       1 byte   0 ถึง 255
ushort (System.UInt16)   2 bytes 0 ถึง 65,535
uint (System.UInt32)     4 bytes 0 ถึง 4,294,967,295
ulong (System.UInt64)    8 bytes 0 ถึง 264 -1




                                                       20
เลขทศนิยม
     Data type            ขนาด               ค่าของข้อมูล
float (System.Single)    4 bytes   ±1.5 x 10-45 ถึง ±3.4 x 1038
ความแม่นย้าของทศนิยมอยู่ที่ 7 ต้าแหน่ง
double                   8 bytes   ±5.0 x 10-324 ถึง ±1.7 x 10308
(System.Double)
ความแม่นย้าของทศนิยมอยู่ที่ 15 ต้าแหน่ง, มีช่วงของข้อมูลกว้างที่สุด
decimal                 16 bytes ±1.0 x 10-28 ถึง ±7.9 x 1028
(System.Decimal)
ความแม่นย้าของทศนิยมอยู่ที่ 28 ต้าแหน่ง, ช่วงข้อมูลแคบกว่า double
แต่ให้ค่าละเอียดมากในส่วนของทศนิยม เหมาะกับการค้านวณเรื่องเงิน
                                                                      21
ชนิดข้อมูลอักขระ
   Data type        ขนาด            ค่าของข้อมูล
char               2 bytes ตัวอักษรแบบ Unicode มี
(System.Char)              เครื่องหมาย ' (single quote)
                           คร่อมตัวอักษร เช่น 'A', '1„
                           char c = „A‟;
string               ไม่  ตัวอักษรแบบ Unicode หลายตัว
(System.String)    แน่นอน มารวมกัน มีเครื่องหมาย "
                          (double quote) คร่อม
                          เช่น "Hello“
                           string s = “Welcome”;
                                                          22
ข้อมูลชนิดบูลีน
   Data type       ขนาด                ค่าของข้อมูล
bool               1 bit   มีค่าที่เป็นไปได้ 2 ค่า คือ
(System.Boolean)           true และ false
                           น้ามาใช้กรณีเกี่ยวกับการเลือก
                           โดยพิจารณาเงื่อนไข
                           เช่น
                           bool bfact;
                           bfact = true; หรือ
                           bool bfact = true;
                                                           23
24

ภาษา C#

  • 1.
    รายวิชา ง40209 ภาคเรียนที่1 ปี การศึกษา 2554 บทที่ 1 หลักการเขียนโปรแกรมเบื้องต้น ภาษา C# ผูสอน : กวีภทร ภูสมศรี ้ ั
  • 2.
    วัตถุประสงค์หลักของภาษา C#  เป็ นภาษาใหม่ที่มีประสิทธิภาพการทางานเทียบเท่า หรือเหนื อกว่า C++ แต่ ไ ม่ ยุ่ ง ยากและซั บ ซ้อ นเท่ า โดยสามารถใช้ง านได้ง่ า ยเหมื อ นภาษา Visual Basic ทาให้สามารถพัฒนา แอพพลิเคชันในระดับสูงได้ ่ ดียิ่งกว่าการใช้ภาษา Visual Basic 2
  • 3.
    ส่วนประกอบโดยทัวไปของโปรแกรม ่ 1. ชื่อโปรแกรม (Program name) โดยทัวไปมักตั้งชื่อโปรแกรมให้ ่ สื่อความหมายกับการทางานหรือผลลัพธ์ของโปรแกรมเพื่อสะดวกในการใช้งาน นิ ยมใช้ คากริยานาหน้าตามด้วยคาขยาย 2. การกาหนดตัวแปร(Variables) หรือค่าคงที่(Constant)ที่ใช้ ในโปรแกรม โดยกาหนดชื่อในภาษาอังกฤษที่สื่อความหมายกับข้อมูลที่เก็บ 3. การกาหนดจุดเริ่มต้นของโปรแกรม (Beginning of Code) อาจ ใช้คาว่า BEGIN หรือ เครื่องหมาย { 4. ชุดคาสั ่ง (Statement) เป็ นคาสังในรูปแบบโปรแกรม ่ ภาษาคอมพิวเตอร์ ที่สงให้คอมพิวเตอร์ทางาน ั่ 5. การกาหนดจุดสิ้นสุดของโปรแกรม (End of Code) อาจใช้คาว่า END หรือ เครื่องหมาย } 3
  • 4.
    คาอธิบาย (Comment)  // comment ◦ สาหรับคาอธิบายเพียงบรรทัดเดียว  /* multiline comment */ ◦ กรณีที่คาอธิบายยาว หลายบรรทัด 4
  • 5.
    ตัวแบ่งแยก อาจเป็ นสัญลักษณ์หรือตัวอักษร ใช้สาหรับจัดกลุ่มคาหรือ แบ่งแยกคา  เช่น ในโปรแกรมภาษา C# ใช้  { } ใช้จดกลุ่มบล็อก ั  ( ) ต่อท้าย method ใช้สาหรับใส่พารามิเตอร์  [ ] ใช้ระบุอาร์เรย์  ; ใช้ระบุ จบคาสัง (end of statement) ่  , ใช้คนระหว่างตัวแปร ั่  . ใช้แยกชื่อออบเจ็กต์ Separators 5
  • 6.
    Keywords  คียเวิรด : ์ ์ เป็ นคาที่สงวนไว้ใช้เป็ นคาสังใน C# ่  ไม่สามารถนาคาเหล่านี้ ไปกาหนดเป็ นชื่ออย่างอื่นได้ 6
  • 7.
  • 8.
     ตัวแปร(Variable) หมายถึงสัญลักษณ์ที่เราใช้แทนข้อมูลชนิ ดต่างๆ โดยข้อมูลที่จะนามาเก็บในตัวแปรต้องตรงกับที่เราได้กาหนดไว้  และการจะนาข้อมูลไปใช้งานก็ตองกระทาผ่านตัวแปรนี้ ้  จาเป็ นต้องระบุลงไปด้วยว่าตัวแปรนั้นใช้เก็บข้อมูลชนิ ดใด การกาหนดตัวแปรและข้อมูล 8
  • 9.
     ขึ้ นต้นด้วยตัวอักษร ห้ามใช้ตวเลข หรืออักขระเป็ นตัวเริ่มต้น ั  รูปแบบตัวอักษรพิมพ์ต่างกัน ถือเป็ นคนละตัว (case sensitive) เช่น myvar, myVar, MYVAR ถือเป็ นคนละตัว  ห้ามตั้งชื่อตัวแปรซ้ากับคาสงวน ้ หลักการตังชื่อตัวแปร 9
  • 10.
     ตัวอย่างการตั้งชื่อที่ถกต้อง ู ◦ Num, myNum1, string4, Data  ตัวอย่างการตั้งชื่อที่ไม่ถูกต้อง ◦ 9xx, @myWeb, Look@me ้ หลักการตังชื่อตัวแปร 10
  • 11.
    วิธี1 [ชนิดของข้อมูล] ชื่อตัวแปร; วิธ2[ชนิดของข้อมูล] ชื่อตัวแปร = [ค่าเริ่มต้นของตัวแปร]; ี  int x; int y, z;int Y, Z = 3;  Double d = 10.99;  String s1 = “Visual", s2=“C#” , s3=“.Net”; หมายเหตุ: ไม่สามารถประกาศตัวแปรซ้้าภายในบล็อก {…} เดียวกัน การประกาศตัวแปร (Variable) 11
  • 12.
    ค่าคงที่เป็นตัวแปรที่ก้าหนดค่าตายตัว ไม่สามารถเปลี่ยนแปลงได้ const[ชนิดของข้อมูล] ชื่อตัวแปร = ค่าคงที่;  const int x = 1;  const double pi = 3.14; หมายเหตุ: ไม่สามารถเปลี่ยนแปลงค่าคงที่ได้ การประกาศค่าคงที่ (Constant) 12
  • 13.
     Global Variable ตัวแปรที่ใช้ได้ท้งโปรแกรม ั  Local Variable ตัวแปรที่เกิดขึ้ นเฉพาะที่ มีขอบเขต เฉพาะส่วนที่เกิดขึ้ น ขอบเขตของตัวแปร 13
  • 14.
    ระดับ Public ◦ มีขอบเขตกว้างที่สุด สามารถเรียกใช้ ณ ตาแหน่ งใดก็ได้ที่อยูในโปรเจ็ค ่  ระดับ Procedure ◦ มีขอบเขตขนาดกลาง เป็ นระดับที่เหมาะสมกับการใช้งานมากที่สุด มีขอบเขตอยูในแต่ละ ่ เหตุการณ์  ระดับ Block ◦ มีขอบเขตขนาดเล็กที่สุด มักจะใช้เก็บค่าชัวคราว หรือตัวแปรที่วนลูปเป็ นส่วนใหญ่ เช่น ตัวแปรที่ ่ อยูในบล็อกของคาสังต่างๆ เช่น if…else เป็ นต้น ่ ่ มุมมองขอบเขตของตัวแปร 14
  • 15.
    คือตัวแปรที่ใช้ในการส่งค่ามายังฟั งก์ชนหรือ เมทธอด สามารถส่งผ่าน ั ค่าตัวแปร ไปทางานในโปรแกรมย่อย ได้ 3 แบบ ได้แก่  Pass By Value  Pass By Reference  Pass By Constant Parameter 15
  • 16.
    สาหรับภาษาC# สามารถแบ่งกลุ่มประเภท ได้ 3 กลุ่ม ดังนี้ 1. Value types 2. References types 3. Pointer types ประเภทของข้อมูลในภาษา C# 16
  • 17.
     Value typesตัวแปรของกลุ่มนี้ เป็ นประเภทที่ใช้ขอมูลโดยตรง ้  จะเปลี่ยนแปลงค่าเมื่อมีค่าใหม่ไปเก็บทับค่าเดิม และจะถูกทาลายเมื่ออยูนอก ่ ขอบเขต  ชนิ ดข้อมูลในกลุ่มประเภทนี้ คือ sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, bool และ decimal ประเภทของข้อมูลในภาษา C# 17
  • 18.
     Numeric (เลขจานวนเต็มและเลขทศนิ ยม)  Char (ตัวอักษร)  String (ข้อความ)  Boolean (บูลีน)  Object ชนิดของข้อมูล 18
  • 19.
    เลขจานวนเต็ม Data type ขนาด ค่าของข้อมูล sbyte (System.SByte) 1 byte -128 ถึง 127 short (System.Int16) 2 bytes -32,768 ถึง 32,767 int (System.Int32) 4 bytes -2,147,483,648 ถึง 2,147,483,647 long (System.Int64) 8 bytes -263 ถึง (263 – 1) 19
  • 20.
    เลขจานวนเต็มบวก Data type ขนาด ค่าของข้อมูล byte (System.Byte) 1 byte 0 ถึง 255 ushort (System.UInt16) 2 bytes 0 ถึง 65,535 uint (System.UInt32) 4 bytes 0 ถึง 4,294,967,295 ulong (System.UInt64) 8 bytes 0 ถึง 264 -1 20
  • 21.
    เลขทศนิยม Data type ขนาด ค่าของข้อมูล float (System.Single) 4 bytes ±1.5 x 10-45 ถึง ±3.4 x 1038 ความแม่นย้าของทศนิยมอยู่ที่ 7 ต้าแหน่ง double 8 bytes ±5.0 x 10-324 ถึง ±1.7 x 10308 (System.Double) ความแม่นย้าของทศนิยมอยู่ที่ 15 ต้าแหน่ง, มีช่วงของข้อมูลกว้างที่สุด decimal 16 bytes ±1.0 x 10-28 ถึง ±7.9 x 1028 (System.Decimal) ความแม่นย้าของทศนิยมอยู่ที่ 28 ต้าแหน่ง, ช่วงข้อมูลแคบกว่า double แต่ให้ค่าละเอียดมากในส่วนของทศนิยม เหมาะกับการค้านวณเรื่องเงิน 21
  • 22.
    ชนิดข้อมูลอักขระ Data type ขนาด ค่าของข้อมูล char 2 bytes ตัวอักษรแบบ Unicode มี (System.Char) เครื่องหมาย ' (single quote) คร่อมตัวอักษร เช่น 'A', '1„ char c = „A‟; string ไม่ ตัวอักษรแบบ Unicode หลายตัว (System.String) แน่นอน มารวมกัน มีเครื่องหมาย " (double quote) คร่อม เช่น "Hello“ string s = “Welcome”; 22
  • 23.
    ข้อมูลชนิดบูลีน Data type ขนาด ค่าของข้อมูล bool 1 bit มีค่าที่เป็นไปได้ 2 ค่า คือ (System.Boolean) true และ false น้ามาใช้กรณีเกี่ยวกับการเลือก โดยพิจารณาเงื่อนไข เช่น bool bfact; bfact = true; หรือ bool bfact = true; 23
  • 24.