วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2559

บทที่ 3 องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล

                                          สรุปบทที่ 3
:องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล:
    ภาษาซี ถูกพัฒนาขึ้นโดย เดนนิส ริตชี ที่ห้องปฏิบัติการเบลล์ ซึ่งมีต้นแบบมาจาก ภาษาบี ที่อยู่
บนรากฐานของ ภาษาบีซีพีแอล
    ทางสถาบัน ANSI ได้รับรอง
มาตรฐานภาษาซีขึ้นมา ภายใต้ชื่อ
ANSI-C ปัจจุบันได้มีการพัฒนา
ภาษาซีให้มีประสิทธิภาพมากขึ้น
เป็นเวอร์ต่างๆ มากมาย ด้วยการ
นำมาพัฒนาต่อยอดเป็น C++ หรือ C# โดยไดเ้พิ่มชุดคำสั่งที่สนับสนุน
การโปรแกรมเชิงวัตถุ และยังคง
รับรองชุดคำสั่งมาตรฐานของภาษา
ซีดั้งเดิมอยู่ด้วย
                     
          :คุณสมบัติที่โดดเด่นของภาษาซี:
 1. เป็นภาษาที่ไม่ขึ้นกับฮาร์ดแวร์และระบบ    ปฏิบัติการ                                                          :ภาษาซีสามารถรันใช้งานอยู่บนคอมพิวเตอร์  ตั้งแต่ระดับเมนเฟรมคอมพิวเตอร์ จนถึงระดับไมโครคอมพิวเตอร์ ซึ่งเมื่อเทียบกับภาษาอื่นๆแล้ว ยากที่จะหาภาษาใดเทียบเคียงได้ ดังนั้น ชุดคำสั่งที่ภาษาซีเขียนขึ้น จึงสามารถนำมาใช้งานบนคอมพิวเตอร์ต่างระดับได้ โดยแทบไม่ต้องเปลี่ยนชุดคำสั่งใดๆ
 2. เป็นภาษาที่มีความยืดหยุ่นสูงมาก                ภาษาซีถูกจัดให้อยู่ในภาษาคอมพิวเตอร์ระดับสูง แต่ภาษาซีก็ยังสมารถเขียนชุดคำสั่งเพื่อใช้งานร่วมกับภาษาระดับต่ำอย่างภาษาแอสเซมบลีได้เป็นอย่างดี จึงเป็นที่มาของภาษาระดับกลาง ที่อยู่กึ่งของภาษาระดับต่ำและภาษาระดับสูง
 3. มีประสิทธิภาพสูง                                           เปรียบเทียบระหว่างชุดตำสั่งภาษาซีกับภาษาระดับสูงอื่นๆ พบว่า ชุดคำสั่งภาษาซี กะทัดรัดและกระชับกว่า รวมไปถึงการประมวลผลที่รวดเร็วกว่าภาษาระดับสูงทั่วไป มีความรวดเร็วเทียบเคียงกับภาษาระดับต่ำ อีกทั้งยังมีระบบจัดการหน่วยความจำที่มีประสิทธิภาพที่สูงอีกด้วย
 4. ความสามารถในด้านการโปรแกรมแบบโมดูล                                                                 ภาษาซีอนุญาตให้มีการแบ่งโมดูลเพื่อแยกคอมไพล์ได้ ยังสามารถทำการลิงก์เชื่อมโยงเข้ากันได้อีก ซึ่งเป็นไปตามเทคนิคการโปรแกรมเชิงโครงสร้าง ภาษาซีนั้น เป็นภาษาที่ประกอบด้วยฟังก์ชั่นต่างๆ ที่นำมาประกอบรวมกัน โดยโมดูลต่างๆ จะเขียนอยู่ในรูปแบบของฟังก์ชั่นทั้งสิ้น
 5. มีตัวแปรชนิดพอยน์เตอร์                               ภาษาซีมี ตัวแปรพอยน์เตอร์ (Pointer) ที่สามรถเข้าถึงหรือชี้ไปยังที่อยู่ของหน่วยความจำที่ใช้จัดเก็บข้อมูลได้โดยตรง ซึ่งหาได้ยากในภาษาระดับสูงทั่วไป 
 6. ภาษาซีมองตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แตกต่างกัน (Case Sensitive)           การเขียนโปรแกรมบนภาษาระดับสูงทั่วไป ส่วนใหญ่มีความเคยชินกับการกำหนดชื่อตัวแปร รวมถึงการอ้างอิงตัวแปรที่อาจเป็นทั้งตัวอักษรพิมพ์ใหญ่หรือตัวอีกษรพิมพ์เล็กก็ได้ สำหรับภาษาซี ชื่อตัวแปรทั้งสองนั้น ถือเป็นคนละตัวแปรกัน ดังนั้น จัวอักษรพิมพ์ใหญ่ (Upper Case) และ ตัวอักษรพิมพ์เล็ก (Lower Case) จะมีความแตกต่างกันอย่างสิ้นเชิง เมื่อเขียนด้วยภาษาซี
              
                                 
         >>โครงสร้างโปรแกรมในภาษาซี<<
 การเขียนโปรแกรมภาษาระดับสูงทั่วไป จำเป็นต้องทำความเข้าใจกับโครงสร้างโปรแกรมภาษานั้นๆก่อน เมื่อต้องการฝึกหัดเขียนโปรแกรมภาษาซี จึงต้องเรียนรู้ถึงโครงสร้างโปรแกรมภาษาซี ซึ่งโครงสร้างโปรแกรมในภาษาซี สามารถแบ่งออกเป็นส่วนต่างๆ ได้ดังต่อไปนี้
  1. ตัวประมวลผลก่อน (Preprocessor Director) 
  2. ฟังก์ชั่นหลัก
  3. ชุดคำสั่ง
  4. คำอธิบายโปรแกรม
             
  1.  ตัวประมวลผลก่อน (Preprocessor Director)                                                           เป็นส่วนที่คอมไพเลอร์จะประมวลผลคำสั่งนี้ก่อนที่จะคอมไพเลอร์ตัวโปรแกรม ดังนั้น จึงเป็นที่มาของคำว่า Preprocessor ในส่วนนี้อาจเรียกว่าส่วนหัวของโปแกรมก็ได้
  >>เฮดเดอร์ไฟล์<< studio.h จัดเป็นเฮดเดอร์ไฟล์หนึ่งในไลบรารีใาตรฐานทั้งหมด ที่มักถูกเรียกใช้งานอยู่เสมอ เฮดเดอร์ไฟล์นี้จะเกี่ยวข้องกับอินพุตและเอาต์พุต เช่น
   >>ฟังก์ชั่น printf() ที่นำมาใช้สำหรับสั่งพิมพ์ข้อความหรือค่าตัวแปร                                        >>ฟังก์ชั่น scanf() ที่นำมาใช้สำหรับค่าผ่านทางแป้นพิมพ์ เพื่อจัดเก็บไว้ในตัวแปร
    
  2. ฟังชั่นหลัก (Main Function)                     ในภาษาซี จะมีอยู่ฟังก์ชั่นหนึ่ง ซึ่งถือเป็นโปรแกรมหลักที่ทำหน้าที่สั่งให้ชุดคำสั่งต่างๆ ทำงานเรียกว่า ฟังก์ชั่น main()
      
  3. ชุดคำสั่ง                                                      ชุดคำสั่งในภาษาซี จะถูกบรรจุอยู่ในเครื่องหมาย{ที่บอกถึงจุดเริ่มต้นการทำงานและเครื่องหมาย}เพื่อบอกจุดสิ้นสุดของการทำงาน นอกจากนี้ ภายในเครื่องหมาย{ยังสามารถมีบล็อก { } ซ้อนย่อยเข้าไปได้อีก และที่สำคัญ เมื่อสิ้นสุดประโยคคำสั่ง จะต้องลงท้ายด้วยเครื่องหมาย ; ( Semicolon) เสมอ
                 
  4. คำอธิบายโปรแกรม                                    เป็นส่วนที่โปรแกรมเมอร์สามารถนำมาใช้เพื่อประกอบคำอธิบายภายในโปรแกรม โดย คอมไพเลอร์จะไม่สนใจข้อความที่อยู่ภายใน
   >>กฎเกณฑ์การเขียนโปรแกรมภาษาซี<<
ในการเริ่มต้นฝึกหัดเขียนโปรแกรมภาษาซี จำเป็นต้องทำความเข้าใจกับกฎเกณฑ์ ต่อไปนี้
  1. ที่ส่วนหัวโปรแกรม จะต้องกำหนดค่าประมวลผลก่อนเสมอ
  2. ชุดคำสั่งในภาษาซี จะใช้อักษรตัวพิมพ์เล็กทั้งหมด
  3. ตัวแปรที่ใช้งาน จะถูกประกาศชนิดข้อมูลไว้เสมอ
  4. ภายในโปรแกรม จะต้องมีอย่างน้อยหนึ่งฟังก์ชั่นเสมอ ซึ่งก็คือ ฟังก์ชั่น main()นั้นเอง
  5. สามารถใช้เครื่องหมายปีกกาปิด { เพื่อบอกจุดเริ่มต้นของชุดคำสั่ง และเครื่องหมายปีกกาปิด }เพื่อบอกจุดสิ้นสุดของคำสั่ง
  6. เมื่อเขียนชุดคำสั่งเสร็จแล้ว ต้องจบด้วยเครื่องหมาย ;
  7. สามารถอธิบายโปรแกรมตามความจำเป็นด้วยการใช้เครื่องหมาย/*.....*/ หรือ //....
 >>ตัวแปร<< (Variables)
ตัวแปร จะนำมาใช้เพื่อจัดเก็บข้อมูล และเพื่อใช้งานในโปรแกรม โดยค่าข้อมูลที่บันทึกอยู่ในตัวแปรนั้น จะถูกจัดเก็บไว้ในหน่วยความจำหลักที่สามารถนำไปประมวลผล และอ้างอิงภายในโปรแกรมได้ ตัวแปรที่ใช้งานภาษาซี จำเป็นต้องได้รับการกำหนดชนิดข้อมูลว่าใช้จัดเก็บข้อมูลชนิดใด เช่น 
  >>ตัวแปรชื่อ char1 นำไปใช้จัดเก็บอักขระ 1 ตัว
  >>ตัวแปรชื่อ name นำไปใช้จัดเก็บข้อมูลชนิดข้อความ
  >>ตัวแปรชื่อ number นำไปใช้จัดเก็บข้อมูลเลขจำนวนเต็มบวก
  >>ตัวแปรชื่อ total นำไปใช้จัดเก็บข้อมูลเลขจำนวนจริงมีทศนิยม
                  
 การตั้งชื่อตัวแปรเพื่อใช้งานในโปรแกรม จะต้องเป็นไปตามกฎเกณ์การตั้งชื่อของภาษานั้นๆ สำหรับกฎการตั้งชื่อตัวแปรในภาษาซี ประกอบด้วย
  1. สามารถใช้ตัวอักษร A ถึง Z หรือ a ถึง z รวมทั้งตัวเลข 0 ถึง 9 และเครื่องหมาย_ (Underscore) มาใช้เพื่อการตั้งชื่อตัวแปรได้ แต่มีเงื่อนไขว่า ห้ามใช้ตัวเลขนำหน้าชื่อตัวแปร
  2. ชื่อตัวแปรสามารถมีความยาวได้ถึง 31 ตัวอักษร (กรณีเป็น ANSI-C)
  3. ชื่อตัวแปร จะต้องไม่ตรงกับคำสงวน (Reserved Words) ซึ่งก็คือ ชุดคำสั่งที่ใช้ภาษาซี
                         
               
                >>ค่าคงที่<< (Constant)
 ปกติค่าที่ถูกจัดเก็บไว้ใจตัวแปรนั้น สามารถเปลี่ยนแปลงได้เสมอในระหว่างการประมวลผล แต่สำหรับตัวแปรอีกประเภทหนึ่งที่เรียกว่า ค่าคงที่ จะเป็นตัวแปรที่ เมื่อถูกกำหนดขึ้นมาแล้ว ค่าดังกล่าวจะเป็นค่านั้นๆ ตลอดในโปรแกรม ไม่สามารถเปลี่ยนแปลงอะไรได้ โดยการกำหนดค่าคงที่ในภาษซี จะใช้ไดเรกทีฟ #define ซึ่งจะประกาศไว้ที่ส่วนหัวโปรแกรม
     

    >>ชนิดข้อมูลและการประกาศตัวแปร<<
  ภาษาซีจะมีชนิดข้อมูลต่างๆ ให้เลือกใช้งานตามความเหมาะสม โดยข้อมูลแต่ละชนิด นอกจากจะใช้จัดเก็บข้อมูลที่แตกต่างกันได้แล้ว ยังมีขนาดที่แตกต่างกันด้วย 
ในภาษาซี จะมีชนิดข้อมูลหลักๆ ต่อไปนี้ คือ
ชนิดข้อมูล                         ความหมาย
char                ข้อมูลชนิดตัวอักษร              
                         (Character)
into                  ข้อมูลชนิดเลขจำนวนเต็ม
                         (Integer)
float                 ข้อมูลชนิดเลขจำวนจริง
                         (Floating Point)
double             ข้อมูลชนิดเลขจำนวนจริง 2 
                 เท่า(Double Precision Float)
                 
     >>คำสั่งนำหน้า<< มีการใช้ดังนี้
  1. signed จะกำหนดให้ชนิดข้อมูลนั้นให้สามารถมีค่าทั้งบวกและลบ
  2. unsigned จะกำหนดให้ชนิดข้อมูลที่ระบุนั้น มีเฉพาะค่าบวกเท่านั้น
  3. long จะกำหนดให้ชนิดข้อมูลที่ระบุนั้นเป็นแบบขนาดยาว เพื่อรองรับช่วงข้อมูลกว้างมากขึ้น
  4. short จะกำหนดให้ชนิดข้อมูลที่ระบุนั้น เป็นแบบชนิดสั้น

   >>ชนิดข้อมูลตัวอักษร<<
เป็นชนิดข้อมูลที่จัดเก็บตัวอักษรหรือตัวอักขระเพียง 1 ตัวเท่านั้น แต่ถ้าต้องการจัดเก็บตัวอักขระหลายๆตัว หรือกลุ่มข้อความที่เรียกว่า สตริง (String) ก็สามารถกระทำได้
                 

  1. รูปแบบการประกาศชนิดข้อมูลแบบอักขระ 1 ตัวให้กับตัวแปร
  2. รูปแบบการประกาศชนิดข้อมูลแบบสตริง
   >>ชนิดข้อมูลเลขจำนวนเต็ม<<
  ชนิดข้อมูลแบบเลขจำนวนเต็ม หมายถึงค่าตัวเลขจำนวนเต็ม แบบไม่มีทศนิยม นอกจากนี้ยังสามารถใช้คำเพิ่มเติมนำหน้าชนิดข้อมูลอย่าง short หรือ long ก็ได้
  1. เลขจำนวนเต็มแบบสั้น ชนิดข้อมูลเลขจำนวนเต็มแบบสั้น อาจระบุ short นำหน้าหรือไม่ก็ได้ ซึ่งต่างก็มีความหมายเดียวกัน
  2. เลขจำนวนเต็มแบบยาว ชนิดข้อมูลเลขจำนวนเต็มแบบยาว จะใช้พื้นที่หน่วยความจำขนาด 4 ไบต์ หรือ 32 บิต
   >>ชนิดข้อมูลทศนิยม<<
  ชนิดข้อมูลทศนิยม หรือเลขจำนวนจริง คือค่าตัวเลขที่สามารถมีจุดทศนิยม ซึ่งสามารถประกาศใช้งานตามช่วงความกว้างของค่าตัวเลขแต่ละขนาด
  1. เลขทศนิยมแบบ float ( Single Precission Float)                                             ชนิดข้อมูลประเภทนี้ จะมีขนาด 4 ไบต์ หรือ 32 บิต 
  2. เลขทศนิยมแบบ double (Double Precision Floating Point)                              ชนิดข้อมูลประเภทนี้ จะมีขนาด 8 ไบต์ หรือ 64 บิต
  3. เลขทศนิยมแบบ long double (Long Double Precision Floating Point)                 ชนิดข้อมูลประเภทนี้ จะมีขนาด 10 ไบต์ หรือ 80 บิต
                 

  >>การแสดงค่าต่ำสุด และค่าสูงสุดของชนิดข้อมูลแต่ละประเภท<<
จากชนิดข้อมูลทักแบบตัวอักขระ เลขจำนวนเต็ม และเลขตำนวนจริงนั้น ชนิดข้อมูลแต่ละประเภทจะมีช่วงข้อมูลที่แตกต่างกันไป เราจะพิสูจน์ด้วยการทดสอบว่า ชนิดข้อมูลแต่ละประเภทนั้น จะมีช่วงข้อมูลหรือช่วงค่าตัวเลขตามที่ได้กล่าวอ้างไว้จริงหรือไม่

  >>ตัวแปรโปรแกรภายนอกและตัวแปรแบบภายใน
จากเนื้อหาข้างต้นที่ผ่านมาได้กล่าวถึงการประกาศตัวแปรมาบ้างแล้ว แต่ในภาษาซียังสามารถแบ่งรูปแบบของตัวแปรที่ประกาศใช้งานในโปรแกรมออกเป็น 2 ประเภทด้วยกัน คือ
 1. ตัวแปรแบบภายนอก (Global Vriables)
ตัวแปรชนิดนี้ จะประกาศอยู่ภายนอกฟังก์ชั่น และเป็นตัวแปรสาธารณะที่ทุกๆฟังก์ชั่นภายในโปรแกรมสามารถนำมาเรียกใช้งานได้
  2. ตัวแปรแบบภายใน (Local Variable s)
  ตัวแปรชนิดนี้จะถูกกำหนดอยู่ภายในฟังก์ชั่น ถึงแม้แต่ละฟังก์ชั่นจะมีการกำหนดชื่อตัวแปรที่เหมือนกันก็ตาม แต่ก็ถือว่าเป็นตัวแปรคนละตัวกัน
                   
  
                           

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

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