วันศุกร์ที่ 26 พฤศจิกายน พ.ศ. 2553

Pop_C++

องค์ประกอบของภาษาc

บทนำ

ในบทนี้จะกล่าวถึงองค์ประกอบของภาษาซีที่ใช้ในการสร้างประโยคคำสั่งในภาษาซี อันได้แก่อักษรในภาษาซี คำหลัก ข้อมูล ค่าคงที่ ตัวแปร และตัวประกาศ ซึ่งองค์ประกอบต่าง  ๆ เหล่านี้จะนำมาสร้างเป็นองค์ประกอบที่ซับซ้อ

อักขระในภาษาซี(KEYWORD)

อักขระที่ใช้ในภาษาซี ประกอบด้วย ตัวอักษร A-Z ทั้งตัวเล็กและตัวใหญ่  ตัวเลข 0-9 และตัวอักขระพิเศษต่าง ๆ  ได้แก่

   !     #     %      ^  &   *   (      )      (       _         +    =      [     ]

\        ;          :     ‘      “     {      }    ‘      .     <       >    /       ?             blank

โดยเฉพาะใช้ในการผสมตัวอักขระเพื่อแทนเงื่อนไขพิเศษบางอย่าง  เช่น

\n    หมายถึง ขึ้นบรรทัดใหม่

\t     หมายถึง   การขยับตำแหน่งตามแนวนอน

ซึ่งลักษณะด้านข้างต้นเรียกว่า  ลำดับหลีก (Escape  Sequence) ซึ่งลำดับหลีกแต่ละตัวจะใช้แทนตัวอักขระเพียงตัวเดียว  แม้จะต้องเขียนอักขระ 2  ตัวหรือหลายตัวก็ตาม

คำหลัก  (Keyword)

 ในภาษาซีมีอยู่กลุ่มหนึ่ง  เรียกว่า  คำหลัก  บางทีอาจเรียกว่า  คำสงวน  (Reserve  Word) คำหลักเหล่านี้เป็นคำมาตรฐานซึ่งกำหนดความหมายไว้แล้ว  คำหลักเหล่านี้จะใช้เพื่อวัตถุประสงค์ตามที่กำหนดไว้เท่านั้น  ไม่สามารถนำไปใช้เป็นตัวแปรชุดได้  คำหลักที่เป็นมาตรฐานในภาษาซี  ได้แก่

Auto   double   int    struct     break   else      long     switch

Casa   enum register   typedef    char    extern    union

Const  float    unsigned   continult   goto    sizeof   volatile

Do      if       static   while

ประเภทข้อมูล(Data  Type)

    ภาษาซีสามารถใช้งานกับข้อมูลได้หลายประเภท  ข้อมูลแต่ละประเภทก็จะเก็บในหน่วยความจำโดยใช้ขนาดเนื้อที่ที่ต่างกัน  ดังนี้


ประเภทข้อมูล

ความหมาย

ขนาดเนื้อที่หน่วยความจำที่ใช้เก็บ

Char

อักขระ 1  ตัว

1ไบต์

nit

เลขจำนวนเต็ม

2ไบต์

float

เลขทศนิยม

4ไบต์

double

เลขทศนิยมความละเอียดสูง

8ไบต์



  จะเห็นได้ว่า  ขนาดของหน่วยความจำสำหรับข้อมูลที่เป็นตัวเลข    จะเป็นตัวกำหนดช่วงของค่าที่เป็นไปได้สำหรับข้อมูลประเภทนั้น     ๆ



ค่าคงที่  (Constant)

  ค่าคงที่ในภาษาซีมีอยู่   4ประเภท   คือ  ค่าคงที่จำนวนเต็ม  ค่าคงที่ทศนิยม   ค่าคงที่อักขระและค่าคงที่สตริง  โดยที่ค่าคงที่จำนวนเต็มละค่าคงที่ทศนิยมอาจเรียกรวม  ๆ   กันว่า  ค่าคงที่จำนวนเลข

  ค่าคงที่จำนวนเลข     มีจำนวนดังนี้

-           ห้ามมีเครื่องหมายจุลภาค     หรือมีช่องว่างอยู่ภายใต้ค่า

-         ตังเลขสามารถมีเครื่องหมายลบนำหน้าได้  จะทำให้ค่าคงที่นั้นมีค่าเป็นลบ

-         ค่าคงทีจำนวนเลขต้องมีค่าไม่ใหญ่เกินค่าไม่เกินค่าสูงสุด  และไม่เล็กกว่าค่าต่ำสุดของช่วงค่าที่เป็นไปได้

สามารถอธิบายถึงค่าคงที่แต่ละประเภทได้ดังนี้

1.               ค่าคงที่จำนวนเต็ม (Integer  Constant)

ค่าคงที่จำนวนเต็มใช้เก็บค่าตังเลขที่เป็นจำนวนเต็ม  สามารถเขียนค่าตัวเลขได้โดยใช้ระบบจำนวน(Number  System) 3   ระบบ  คือ  ระบบเลขฐานสิบ  ระบบเลขฐานแปด  และระบบเลขฐานสิบหก    ซึ่งจะอธิบายค่าตัวเลขในแต่ละระบบได้ดังนี้

ค่าคงที่จำนวนเต็มฐานสิบ     ตัวเลขแต่ละหลักสามารถเป็นตัวเลขใดก็ได้ในจำนวนตัวเลข0ถึง9และถ้าเป็นเลขหมายหลัก  ในหลักแรกจะต้องไม่เป็นศูนย์

ตัวอย่าง   ค่าคงที่จำนวนเต็มที่เป็นเลขฐานสิบที่ผิด

3,462      ผิด   เนื่องจากมีเครื่องหมายจุลภาคปนอยู่ในค่าตัวเลขไม่ได้

34  62  81   ผิด  เนื่องจากมีช่องว่างปนอยู่ในค่าคงตัวเลขไม่ได้

673.05    ผิด   เนื่องจากมีจุดทศนิยมปนอยู่ในค่าตัวเลขจำนวนเต็มไม่ได้

0835    ผิด เนื่องจากตัวเลขในหลักแรกต้องไม่เป็นศูนย์

963-12-308 ผิด เนื่องจากมีเครื่องหมายลบปนอยู่ภายในค่าตัวเลขไม่ได้  และถ้าจะใส่เครื่องหมายลบ  ต้องใส่นำหน้าค่าตังเลขเท่านั้น



    ค่าคงที่จำนวนเต็มฐานแปด     ตัวเลขแต่ละหลักสามารถเป็นตัวเลขใดก็ได้ในจำนวนตัวเลข 0 ถึง 7 ในการเขียนค่าคงที่จำนวนเต็มที่เป็นตัวเลขฐานแปดให้เขียนเลขศูนย์นำหน้าค่านั้น ๆ

ตัวอย่าง  ค่าคงที่จำนวนเต็มที่เป็นเลขฐานแปดที่ถูกต้อง เช่น

045 มีค่าเท่ากับ (45)8

0136 มีค่าเท่ากับ (136)8

ตัวอย่าง  ค่าคงที่จำนวนเต็มที่เป็นเลขฐานแปดที่ผิด  เช่น

41 ผิด   เนื่องจากไม่ได้นำหน้าด้วยเลข 0

0362.41 ผิด   เนื่องจากมีจุดทศนิยมปนอยู่ในค่าตัวเลขจำนวนเต็มไม่ได้

02459 ผิด   เนื่องจากมีตัวเลข 9 ซึ่งไม่ได้อยู่ในช่วง 0-7 ของเลขฐานแปดปนอยู่

ค่าคงที่จำนวนเต็มฐานสิบหก  ตัวเลขแต่ละหลักสามารถเป็นตัวเลขใดก็ได้ในจำนวนตัวเลข 0 ถึง 9 และตัวอักษร A ถึง F หรือ a ถึง f ซึ่งใช้แทนค่าตัวเลข 10 ถึง 15 ตามลำดับ ในการเขียนค่าคงที่จำนวนเต็มที่เป็นเลขฐานสิบหก ให้เขียนเลขศูนย์กับตัวอักษรเอ็กซ์  (X หรือ x )  นำหน้าค่านั้น ๆ

ตัวอย่าง  ค่าคงที่จำนวนเต็มที่เป็นเลขฐานสิบหกที่ถูกต้อง  เช่น

0X428 มีค่าเท่ากับ (428)16

0X71 มีค่าเท่ากับ (71)16

0x6AC4 มีค่าเท่ากับ (6AC4)16

0Xbca มีค่าเท่ากับ (BCA) 16

0xffff มีค่าเท่ากับ (FFFF) 16

ตัวอย่าง  ค่าคงที่จำนวนเต็มที่เป็นเลขฐานสิบหกที่ผิด  เช่น

0X36.5 ผิด เนื่องจากมีจุดทศนิยมปนอยู่ในค่าตัวเลขจำนวนเต็มไม่ได้

0XDFGA ผิด เนื่องจากในเลขฐานสิบหกไม่มีตัว G

012A4 ผิด เนื่องจากไม่ได้นำหน้าค่าด้วย 0X หรือ 0x

X508F ผิด เนื่องจากไม่ได้นำหน้าค่าด้วย 0X หรือ 0x

ABCD ผิด  เนื่องจากไม่ได้นำหน้าค่าด้วย 0X หรือ 0x

ทั้งนี้ ในไมโครคอมพิวเตอร์โดยทั่วไปค่าสูงสุดของเลขจำนวนเต็มจะมีค่าเป็น 32767 หรือเท่ากับ (77777)8 หรือเท่ากับ (7FFF) 16 หรือเท่ากับ 215 – 1

ค่าคงที่จำนวนเต็มแบบ Unsigned และแบบ Long ค่าคงที่จำนวนเต็มแบบ Unsigned จะเก็บค่าได้มากกว่าค่าคงที่จำนวนเต็มธรรมดาถึง 2 เท่า  แต่จะไม่สามารถเก็บค่าที่เป็นลบได้  ถ้าต้องการใช้ค่าที่จำนวนเต็มแบบ Unsigned จะทำโดยใส่ตัวอักษร U หรือ u ไว้ท้าค่าคงที่นั้น ๆ ส่วนค่าคงที่แบบ Long จะเก็บค่าได้มากกว่าค่าคงที่จำนวนเต็มธรรมดา  ถ้าต้องการการกำหนดค่าคงที่แบบ Long จะทำโดยใส่ตัวอักษร L หรือ l ไว้ท้ายค่าคงที่นั้น ๆ ดังนั้นถ้าต้องการการกำหนดค่าคงที่แบบ Unsigned Long จะทำโดยใส่ตัวอักษร UL ไว้ท้ายค่าคงที่นั้น ๆ โดยเขียน U ก่อน L เสมอ

                ตัวอย่าง  ค่าคงที่แบบ Unsigned และแบบ Long  เช่น

                4500U   เป็นจำนวนเต็มฐานสิบแบบ Unsigned

67248159L   เป็นจำนวนเต็มฐานสิบแบบ Long

67248159UL   เป็นจำนวนเต็มฐานสิบแบบ Unsigned  Long

04500U   เป็นจำนวนเต็มฐานสิบแบบ Unsigned

0312456L   เป็นจำนวนเต็มฐานสิบแบบ Long

0312456UL   เป็นจำนวนเต็มฐานสิบแบบ Unsigned  Long

0X4500U   เป็นจำนวนเต็มฐานสิบแบบ Unsigned

0X467CL   เป็นจำนวนเต็มฐานสิบแบบ Long

0X467CUL   เป็นจำนวนเต็มฐานสิบแบบ Unsigned  Long

2.ค่าคงที่ทศนิยม ( Floating  Point  Constant )

                ค่าคงที่ทศนิยมใช้เก็บค่าตัวเลขที่มีจุดทศนิยมทั้งสองจุดทศนิยมธรรมดา และชนิดที่มีตัวเลขชี้กำลังในรูปของ E ยกกำลัง หรือมีทั้งสองชนิดอยู่ด้วยกัน

ตัวอย่าง  ค่าคงที่ทศนิยมที่ถูกต้อง  เช่น

1.0                          0.48                        267.015                 4005.

2E + 5                    0.14E+ 3               1.22e5                                   .1544e-3

                จากตัวอย่างข้างต้น  ตัวเลขที่อยู่หน้า E อาจเป็นเลขจำนวนเต็ม  หรือเป็นเลขทศนิยมก็ได้  กรณีเลขชี้กำลังที่อยู่หลัง E เป็นบวก  จะเป็นการเลื่อนตำแหน่งของจุดทศนิยมไปทางขวา  แต่ถ้าเลขชี้กำลังเป็นลบจะเป็นการเลื่อนตำแหน่งของจุดทศนิยมไปทางซ้าย  เลขทศนิยมที่มีเลขชี้กำลังจะมีความหมายเหมือนกับความหมายทางคณิตศาสตร์  โดยเลขฐาน 10 จะแทนด้วย Eหรือ e เช่น 1.22e5 จะมีความหมายเป็น 1.22x105 และ 0.67E-2 จะมีความหมายเป็น  0.67x10-2 เป็นต้น







3.        ค่าคงที่ตัวอักขระ (Character Constant)

ค่าคงที่ตัวอักขระใช้เก็บตัวอักขระเพียง  1ตัว โดยจะกำหนดอยู่ภายใต้เครื่องหมาย’ ‘อักขระที่อยู่ภายในอาจเป็นตัวเลข   หรืออักษร หรืออักขระพิเศษอย่างใดอย่างหนึ่ง ค่าที่เก็บในหน่วยความจำจะเก็บเป็นหรัสตามชนิดเครื่องใช้  เช่น  เก็บเป็นรหัสแอสกี (ASCII) รหัสเอ็บซีดิก(EBCDIC)  ดังนั้น   ถ้าเป็นไม่โครคอมพิวเตอร์ก็จะเก็บข้อมูลด้วยรหัสแอสกี





ตัวอย่าง      ค่าคงที่อักขระและค่าคงที่เก็บเป็นรหัสแอสกี  เช่น

               

    ’ A‘      มีค่าเป็น                           65

      1‘       มีค่าเป็น                           49

    ’ Z‘        มีค่าเป็น                           122





4.        ค่าคงที่สตริง(String   Constant)9

         ค่าคงที่สตริงประกอบไปด้วยตัวอักขระที่นำมาเรียงกัน    เรียกว่า  สายวลี  เป็นค่าคงที่ที่ไม่สามารถนำไปคำนวณได้   โดยจะกำหนดอยู่ภายในเครื่องหมายคำพูด(“    ’’)  อักขระที่อยู่ภายใต้ในอาจเป็นตัวเลข   หรืออักษร   หรือตัวอักษรพิเศษใด  ๆ      หรืออาจไม่มีตัวอักษรอยู่เลยก็ได้





ตัวอย่าง    ค่าคงที่สตริง   เช่น

            “University    ’’                               “ 954-7000   ’’    “book.com   ’’   

            “a+b*c/d    ’’                                  “    ’’   (เรียกว่า   Null  String)





                  ปกติตัวแปลโปรแกรมภาษาซีเดิม   Null  String                 คือ\o   ให้เป็นอักขระตัวสุดท้ายของค่าคงที่สตริงโดยอัตโนมัติโดยจะเติมไว้หน้าเครื่องหมายคำพูดตัวที่ปิดท้ายค่าคงที่สตริง และค่านี้เราจะไม่สามารถมองเห็น  ไม่แสดงออกมาเมื่อมีการแสดงค่าสตริงนั้น  ๆ  และค่า  \o    นี้จะใช้เป็นตัวบอกจุดสิ้นสุดของข้อความในสตริงด้วย

                  ดังนั้น  ค่าคงที่ตัวอักขระ ’A ‘  กับค่าคงที่สตริง  “  A  ’’   จึงแตกต่างกัน  นอกจากนี้ค่าคงที่ตัวอักขระจะมีค่าจำนวนเต็มที่ใช้แทนตัวมัน    แต่ค่าคงที่สตริงที่มีตัวอักขระ    1   ตัวนั้น    จริง  ๆ  แล้วจะประกอบด้วยอักขระ     2    ตัว   คือ  ตัวอักขระที่มองเห็นนั้นแหละตัวอักขระที่เป็น   Null อีก   1   ตัว  ค่าคงที่สตริงที่มีอักขระ   1   ตัว   จึงไม่มีค่าจำนวนเต็มที่ใช้แทนมันได้







ตัวแปร  (Variable)

             ตัวแปร   คือ   ชื่อที่ผู้เขียนโปรแกรมตั้งขึ้น  เพื่อใช้เป็นชื่อหน่วยความจำที่ใช้เก็บค่าแล้วหลังจากนั้นจะสามารถนำค่าที่เก็บอยู่ออกมาใช้งานในโปรแกรมได้  โดยอ้างถึงชื่อตัวแปรนั้น  ๆ  ค่าที่เก็บอยู่ในตัวแปรจะสามารถเปลี่ยนแปลงได้ขณะที่โปรแกรมทำงาน  แต่จะไม่สามารถเปลี่ยนประเภทของข้อมูลในตัวแปรนั้นได้

                  ในการตั้งชื่อตัวแปรจะมีกฎในการตั้งชื่อ

1.       ชื่อตัวแปรจะประกอบขึ้นจากตัวอักษรหรือตัวเลข  หรือเครื่องหมาย  underscore (-) ก็ได้แต่ตัวอักขระตัวแรกในชื่อตัวแปรจะต้องเป็นตัวอักษรเสมอ

2.       โดยทั่วไปจะสามารถตั้งชื่อตัวแปรได้ยาวไม่เกิน   32   ตัวอักขระ

3.       ชื่อตัวแปรที่ใช้อักษรตัวเล็ก  ตัวใหญ่ต่างกัน   จะถือเป็นคนละชื่อตัวแปร  เช่น  maxima และ Max ทั้ง  3  ตัวแปรนี้ถือเป็นตัวแปรคนละชื่อกัน

4.       ในชื่อตัวแปรห้ามมีอักษรพิเศษอื่นใดปะปน  ยกเว้น  $  

5.       ชื่อตัวแปรที่ตั้งขึ้นต้นต้องไม่ซ้ำกับคำหลัก (Keyword)   หรือคำสงวน (Reserve  word)     ในภาษาซี

ตัวอย่าง    ชื่อตัวแปรในภาษาซีที่ถูกต้อง   เช่น  

    Max     sum_student         score123

ตัวอย่าง    ชื่อตัวแปรในภาษาซีถูกต้อง     เช่น

    1max      ผิด   เนื่องจากตัวอักขระตัวแรกในชื่อตัวแปรต้องเป็นตัวอักษรเสมอ

    Score-123   ผิด เนื่องจากชื่อตัวแปรห้ามมีอักขระพิเศษปะปนอยู่ในชื่อ   ยกเว้น $

    Break      ผิดเนื่องจากเป็นคำหลักในภาษาซี

ชนิดของตัวแปรและการประกาศตัวแปร

                          ในภาษาซีเมื่อจะมีการใช้ตัวแปรจะต้องการประกาศ  (Declaration)  ชนิดของตัวแปร( Type of  Variable)  ก่อน การประกาศตัวแปรเป็นการกำหนดว่าตัวแปรต่างๆ    เหล่านั้นมีประเภทของข้อมูลเป็นแบบใด  เราจึงต้องมีการประกาศตัวแปรทุกตัวก่อนที่จะมีการใช้งานในโปรแกรม  โดยมีรูปแบบคำสั่ง  ดังนี้




Type  variable – list ;
 


             รูปแบบ                                     



โดย  variable-list      เป็นชื่อของตัวแปรที่ต้องการประกาศ     ถ้ามีหลายตัวแปรให้คั่นแต่ละชื่อตัวแปรด้วยเครื่องหมายจุลภาค (    ,    )    

          Type         เป็นชนิดของตัวแปรซึ่งมีหลายชนิด    ได้แก่




ชนิดของตัวแปร   

ความหมาย

Char

เป็นตัวแปรเก็บค่าที่เป็นตัวอักขระใด  ๆ   1   ตัว


int

เป็นตัวแปรเก็บค่าเลขจำนวนเต็ม

float

เป็นตัวแปรเก็บค่าทศนิยม

short

เป็นตัวแปรเก็บค่าเลขจำนวนเต็มที่มีค่าที่ประกาศเป็นชนิด int

long

เป็นตัวแปรเก็บค่าเลขจำนวนเต็มที่มีจำนวนบิตเป็น  2    เท่าของชนิดที่ประกาศไว้

double

เป็นตัวแปรเก็บค่าเลขทศนิยมที่มีจำนวนบิตเป็น  2    เท่าของชนิดที่ประกาศไว้

unsigned

เป็นตัวแปรเก็บค่าเลขจำนวนเต็มที่มีค่าเป็นบวกเท่านั้น





    ตัวอย่าง    การประกาศตัวแปรในภาษาซี

                               int     X,Y,Z;

                                   Float andl,ans2;

                                  Char   c ;

                     จากตัวอย่างข้างต้น เป็นการประกาศตัวแปร   X,Y,Z;     เป็นตัวแปรจำนวนเต็ม   ประกาศตัวแปร  ans1และ ans2  เป็นตัวแปรทศนิยม และประกาศตัวแปร  c           เป็นตัวแปรอักขระ

                     จากตัวอย่างการประกาศตัวแปรข้างต้น  อาจเขียนได้ในลักษณะต่อไปนี้

                                                Int   x;

                                                Int   y;

                                                Int   z;

                                                Float   ans1;

                                                Float   ans2;

                                                Char    c;

                แต่ปกติแล้ว มักจะประกาศตัวแปรชนิดเดียวกันไว้ในบรรทัดเดียวกัน

ตัวอย่าง   การประกาศตัวแปรแบบจำนวนเต็มให้แบบ short    และแบบ  long

                Short   int    X,Y,Z;                               อาจเขียนได้ว่า  Short    X,Y,Z;   

                Long     int   a,b,c;                                อาจเขียนได้ว่า     long   a,b,c;

                จากตัวอย่างข้างต้นอธิบายได้ดังนี้  Short  ชื่อ x,y  และz   จะใช้เนื้อที่น้อยกว่าตัวแปรจำนวนเต็ม   m  และn  คือ  ตัวแปรแบบ Short  จะใช้เนื้อที่ 1 ไบต์  (8บิต)    ส่วนตัวแปรจำนวนเต็มธรรมดาจะใช้เน้อที่  2  ไบต์  (16 บิต)ในขณะที่ตัวแปรแบบ  long    ชื่อ  a,b  และc    จะใช้เนื้อที่มากกว่าตัวแปรจำนวนเต็ม  และn    คือ  ตัวแปรแบบ long  จะใช้เนื้อที่  4  ไบต์ (32 บิต)

                ดังนั้น   ค่าสูงสุดตัวแปร x,y  และz  เก็บได้จะน้อยกว่าค่าที่ตัวแปร m  และn  เก็บได้ส่วนค่าสูงสุด             

ที่ตัวแปร  a,b  และc   เก็บได้จะมากกว่าค่าที่ตัวแปร m  และ  n   เก็บได้

ตัวอย่าง    การประกาศค่าตัวแปรจำนวนให้เป็นแบบ     unsigned

                Int  m, n;

                Unsigned    p,q;

                จากตัวอย่างข้างต้น  ตัวแปรแบบ   Unsigned    ชื่อ p,q  จะเก็บค่าได้มากว่าตัวแปร m,n ประมาณ  2 เท่า  โดยตัวแปร pและ q    จะไม่เก็บค่าที่เป็นลบได้  ในขณะที่ตัวแปร  m  และn   สามารถเก็บค่าได้ในช่วง-32768ถึง+32767   แต่ตัวแปร   p   และ   q   จะเก็บได้ในช่วง  0 ถึง +65535


ตัวอย่าง   การประกาศตัวแปรที่มีการกำหนดค่าเริ่มต้นให้ตัวแปร



                                int a = 25;

                        char aster = ‘*’ ;

                        float totai = 0. ;

                        double tax = 0.123e-3 ;





            จากตัวอย่างข้างต้น  ตัวแปรจำนวนเต็ม a จะมีค่าเริ่มต้นเป็น 25 ตัวแปรอักขระ aster  มีค่าเริ่มต้นเป็น ‘*’ ตัวแปรทศนิยม total มีค่าเริ่มต้นเริ่มเป็น 0. และตัวแปรทศนิยมแบบ double precision ชื่อ tax มีค่าเริ่มต้นเป็น 0.123 × 10³







ต่อไปนี้จะเป็นตารางสรุปชนิดของตัวแปรต่าง ๆ สำหรับมาตรฐาน ANSI





ชนิดข้อมูล
ขนาดเนื้อที่ที่ใช้เก็บค่า (บิต)
ช่วงของค่า

char
signed char
unsigned char
int
signed int
unsigned
short int
signed short int
unsigned short int
long ing
signed long int
unsigned long int
float
double
long double

8
8
8
16
16
16
8
8
8
32
32
32
32
64
128

ตัวอักขระที่เป็นรหัสแอสกี
-128 ถึง 127
0 ถึง 255
-32768 ถึง 32767
-32768 ถึง 32767
0 ถึง 65535
-128 ถึง 127
-128 ถึง 127
0 ถึง 255
-2147483648 ถึง 2147683649
-2147483648 ถึง 2147683649
0 ถึง 4294967296
เลขทศนิยม 6 หลัก
เลขทศนิยม 12 หลัก
เลขทศนิยม 24 หลัก















ตัวแปรชุด (Array Variable)



            เนื่องจากการเก็บค่าในหน่วยความจำหลาย ๆ ค่า จะต้องตั้งชื่อตัวแปรหลาย ตัวทำให้เกิดความยุ่งยาก

และเพื่อให้การตั้งชื่อตัวแปรหลาย ๆ ตัวทำได้สะดวกมากขึ้น จึงอาจใช้วิธีตั้งชื่อตัวแปรเพียงชื่อเดียว แล้วใช้ตัวเลขบอกว่าเป็นตัวแปรตัวที่เท่าไร การตั้งชื่อตัวแปรแบบนี้เรียกว่าตัวแปรชุด

                จึงอาจกล่าวได้ว่า ตัวแปรชุดเป็นชื่อที่ใช้อ้างถึงกลุ่มข้อมูล โดยใช้เป็นชื่อเดียวกัน ข้อมูลทั้งหมดก็จะต้องเป็นข้อมูลชนิดเดียวกัน เช่น เป็นอักขระทั้งหมด เป็นจำนวนเต็มทั้งหมด ข้อมูลแต่ละตัวเก็บอยู่ในตัวแปรชุด ถือเป็นสมาชิกของตัวแปรชุดนั้น ๆ (Array Elements) สมาชิกแต่ละตัวในตัวแปรชุดจะแยกกันโดยการระบุตัวดรรชนีกำกับ (Subscript)



ตัวอย่าง         x   เป็นตัวแปรชุดที่มีสมาชิก 10 ตัว ได้แก่   x[0], x[1],x[2], x[3], x[4], x[5], x[6], x[7],x[8] และ  x[9]   ตัวดรรชนีกำกับของสมาชิกแต่ละตัวจะอยู่ในเครื่องหมาย [ ] ดังนั้น ตัวแปรชุดที่มีสมาชิก  ตัว  ค่าดรรชนีกำกับก็จะมีค่าตั้งแต่  0  ถึง  n-1  นั่นเอง

                ตัวแปรชุดมีอยู่หลายประเภท ได้แก่ ตัวแปรชุดหนึ่งมิติ ตัวแปรชุดสองมิติ ตัวแปรชุดหลายมิติ เป็นต้น

จะได้กล่าวถึงตัวแปรชุดแต่ละประเภท  ดังนี้



1.     ตัวแปรชุด 1 มิติ (One-Dimension)

เป็นตัวแปรชุดที่มีตัวดรรชนีกำกับเพียงตัวเดียว  การประกาศตัวแปรชุดทำได้ดังนี้



            รูปแบบ                                  type array-variable-name[X];



            โดย         type                                       เป็นชนิดของตัวแปร

                                array-variable-name      เป็นชื่อตัวแปรชุดที่ต้องการประกาศชนิด

                                X                                 เป็นตัวเลขจำนวนเต็มที่บอกขนาดของตัวแปรชุดนั้น ๆ เริ่มจาก      ศูนย์และถ้าไม่กำหนดขนาด เครื่องก็จะเตรียมเนื้อที่ในหน่วยความจำเท่ากับขนาดของข้อมูลจริง



ตัวอย่าง                 char n[5];

                เป็นการประกาศตัวแปรชุดชื่อ  เริ่มตั้งแต่  n[0], n[1], … n[49]  โดยทุกตัวแปรจะเก็บข้อมูลที่เป็นอักขระ  1  ไบต์



ตัวอย่าง                 int i[10];

                        เป็นการประกาศตัวแปรชุด  เก็บค่าเลขจำนวนเต็มชนิด  1  มิติ  มีขนาดสมาชิก  10  ตัว  คือ i[0], i[1], i[2], … i[9]  ซึ่งเป็นการจองเนื้อที่หน่วยความจำ  2  ไบต์ต่อ  1  ชื่อตัวแปร



ตัวอย่าง                 foat f[5];

                        เป็นการประกาศตัวแปรชุด  เก็บค่าเลขทศนิยมชนิด  1  มิติ  มีขนาดสมาชิก  5  ตัว  คือ  f[0], f[1], f[2], f[3], และ f[4]  ซึ่งเป็นการจองเนื้อที่หน่วยความจำ  4  ไบต์ต่อ  1  ชื่อตัวแปร



2.     ตัวแปรชุด  2  มิติ (Tow-Dimension)

เป็นตัวแปรที่เก็บข้อมูลในลักษณะของตารางซึ่งมี  2  มิติ  คือ  ในแนวนอน (Row) และในแนว

ตั้ง  (Column) ตัวแปรชุด  2  มิติ จึงต้องมีตัวเลขดรรชนีกำกับ 2 ตัว  คือ  ตัวแรกบอกตำแหน่งข้อมูลในแถว  หรือแนวนอน  และตัวที่สองบอกตำแหน่งข้อมูลในสดมภ์หรือแนวตั้ง



                รูปแบบ                                  type array-variable-name[X][Y] ;



            โดย         type                       เป็นชนิดของตัวแปร

                                arrat-variable-name     เป็นชื่อตัวแปรชุดที่ต้องการประกาศชนิด

                                X                                 เป็นเลขจำนวนเต็มบอกขนาดของแถว เริ่มจากศูนย์

                                Y                          เป็นเลขจำนวนเต็มบอกขนาดของคอลัมน์ เริ่มจากศูนย์
1.      องค์คำสั่งก่อนการประมวลผล หรือ ส่วนหัวของโปรแกรม (Header  File)
 รูปแบบ      # include <header_name>     อธิบาย  header_name  
ชื่อเฮดเดอร์ไฟล์ที่ควบคุมฟังก์ชันมาตรฐาน  เช่น ฟังก์ชัน printf ใช้ควบคุมการแสดงผล   
จัดเก็บในไลบรารีชื่อ        # include <stdio.h>  ตัวอย่าง  # include <stdio.h>
 อธิบายให้คอมไพเลอร์ค้นหาไลบรารีไฟล์ชื่อ stdio.h จากไดเรกทอรี include



2.      ส่วนฟังก์ชันหลัก (Main Function)             
การเขียนโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชันหลักชื่อ  main  เสมอโดยมีรูปแบบฟังก์เป็นดังนี้

Int  main(void)
{
            Executable  statement;
                        .
                        ‘
            return(0);
}



3.      การพิมพ์คำสั่งควบคุมงานในโครงสร้างภาษาซี
            คำแนะนำในการพิมพ์คำสั่งงาน  ซึ่งภาษาซีเรียกว่า ฟังก์ชัน (ต่อไปนี้จะเรียกว่า  คำสั่ง  ตามที่นิยมทั่วไป)  ในส่วนประกอบภายในโครงสร้างภาษาซีมีแนวทางปฏิบัติดังนี้
             คำสั่งที่ใช้ควบคุมการประมวลผลตามลำดับที่ได้วิเคราะห์ไว้  ต้องเขียนภายในเครื่องหมาย {  }  ที่อยู่ภายใต้การควบคุมของ ) ฟังก์ชันหลักชื่อ  main ( )

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

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