สรุปบทที่ 3
:องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล:
ภาษาซี ถูกพัฒนาขึ้นโดย เดนนิส ริตชี ที่ห้องปฏิบัติการเบลล์ ซึ่งมีต้นแบบมาจาก ภาษาบี ที่อยู่
บนรากฐานของ ภาษาบีซีพีแอล
ทางสถาบัน ANSI ได้รับรอง
มาตรฐานภาษาซีขึ้นมา ภายใต้ชื่อ
ANSI-C ปัจจุบันได้มีการพัฒนา
ภาษาซีให้มีประสิทธิภาพมากขึ้น
เป็นเวอร์ต่างๆ มากมาย ด้วยการ
นำมาพัฒนาต่อยอดเป็น C++ หรือ C# โดยไดเ้พิ่มชุดคำสั่งที่สนับสนุน
การโปรแกรมเชิงวัตถุ และยังคง
รับรองชุดคำสั่งมาตรฐานของภาษา
ซีดั้งเดิมอยู่ด้วย
บนรากฐานของ ภาษาบีซีพีแอล
ทางสถาบัน 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)
ตัวแปรชนิดนี้จะถูกกำหนดอยู่ภายในฟังก์ชั่น ถึงแม้แต่ละฟังก์ชั่นจะมีการกำหนดชื่อตัวแปรที่เหมือนกันก็ตาม แต่ก็ถือว่าเป็นตัวแปรคนละตัวกัน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น