โปรแกรมภาษาคอมพิวเตอร์
(C
Language)
มาทำความรู้จักกับโปรแกรมภาษาคอมพิวเตอร์กันก่อนดีกว่า..
ภาษาคอมพิวเตอร์
(Computer
Programming language)
ภาษาคอมพิวเตอร์
เป็นสื่อกลางระหว่างมนุษย์กับเครื่องคอมพิวเตอร์
เพื่อควบคุมและสั่งงานให้เครื่องทำงานตามคำสั่งเพื่อให้ผลลัพธ์ตามที่ผู้ใช้ต้องการ
ซึ่งในปัจจุบัน ภาษาคอมพิวเตอร์ได้มีผู้พัฒนาออกมาหลากหลายภาษา
ผู้เขียนโปรแกรมจะต้องทำความเข้าใจถึงหลักการเขียนรูปแบบโครงสร้างคำสั่งขอภาษานั้นๆ
โดยภาษาคอมพิวเตอร์แบ่งออกได้เป็น 5 ระดับ คือ
1. ภาษาเครื่อง (Machine
Language) จัดเป็นภาษาระดับต่ำสุด
มันเป็นภาษาเดียวที่เครื่องสามารถปฏิบัติงานตามคำสั่งได้ทันทีโดยไม่ต้องมีตัวแปลภาษาอื่นเข้ามาช่วย
คำสั่งของภาษาเครื่องจะใช้เลขฐานสองแทนข้อมูล และคำสั่งต่างๆ
ทั้งหมดจะขึ้นอยู่กับชนิดของเครื่องคอมพิวเตอร์ หรือหน่วยประมวลผลที่ใช้
นั่นคือแต่ละเครื่องก็จะมีรูปแบบของคำสั่งเฉพาะของตนเอง
ซึ่งนักคำนวณและนักเขียนโปรแกรมในสมัยก่อนต้องรู้จักวิธีที่จะรวมตัวเลขเพื่อแทนคำสั่งต่างๆ
ทำให้การเขียนโปรแกรมยุ่งยากมาก
2. ภาษาระดับต่ำ (Low level
language) เนื่องจากภาษาเครื่องยากแก่การทำความเข้าใจและประยุกต์ใช่งาน
จึงมีผู้พัฒนารหัสและสัญลักษณ์มาแทนตัวเลข 0 กับ 1 โดยใช้อักขระในภาษาอังกฤษมามีส่วนร่วมในการสั่งงาน ทำให้สั่งงานได้ง่ายขึ้นแต่ก็ยังยากสำหรับผู้เริ่มต้นศึกษาโปรแกรม
ซึ่งได้แก่ ภาษาแอสเซมบลี ( Assembly language ) โดยใช้รหัสเป็นคำแทนคำสั่งภาษาเครื่อง
ทำให้เขียนโปรแกรมได้ง่ายขึ้น
และแม้ว่าจะเป็นภาษาที่ใกล้เคียงภาษาเครื่องแต่ละโปรแกรมภาษาแอสเซมบลีต้องใช้
แอสเซมบลี ( Assembly ) แปลภาษาแอสเซมบลีให้เป็นภาษาเครื่อง
เพื่อให้คอมพิวเตอร์ทำงานตามต้องการอีกทอดหนึ่ง
3. ภาษาระดับสูง (High level
Language) จะใช้คำในภาษาอังกฤษแทนคำสั่งต่างๆ
ซึ่งผู้อ่านสามารถเข้าใจความหมายได้ทันที รวมทั้งสามารถใช้นิพจน์ทางคณิตศาสตร์ได้ด้วย
ภาษาระดับสูงมีหลายภาษา เช่น ภาษาฟอร์แทรน (FORTRAN) ภาษาโคบอล
(COBOL) ภาษาปาสคาล (Pascal) ภาษาเบสิก(BASIC)
ภาษาวิชวลเบสิก (Visual Basic) ภาษาซี (C)
และภาษาจาวา (Java) เป็นต้น
โปรแกรมที่เขียนด้วยภาษาระดับสูงแต่ละภาษาจะต้องมีโปรแกรมที่ทำหน้าที่แปลภาษาระดับสูงให้เป็นภาษาเครื่อง
คำสั่งหนึ่งคำสั่งในภาษาระดับสูงจะถูกแปลเป็นภาษาเครื่องหลายคำสั่ง
4. ภาษาระดับสูงมาก (Very
High-level Language) หรือ ภาษาโปรแกรมยุคที่ 4 เป็นภาษาที่ใช้เขียนโปรแกรมได้สั้นกว่าภาษายุคก่อนๆ
จัดเป็นภาษาไร้กระบวนคำสั่ง หมายความว่าผู้ใช้แค่บอกว่าให้คอมพิวเตอร์ทำอะไร
โดยไม่ต้องบอกคอมพิวเตอร์ว่าสิ่งนั้นทำอย่างไร เรียกว่าเป็นภาษาเชิงผลลัพธ์
คือเน้นว่าทำอะไร ไม่ใช่ทำอย่างไร
ดังนั้นจึงเป็นภาษาโปรแกรมที่เขียนได้ง่ายและรวดเร็ว
5.ภาษาธรรมชาติ (Nature language) หรือ ภาษาโปรแกรมยุคที่ 5 จะคล้ายกับภาษาพูดตามธรรมชาติของคน
การเขียนโปรแกรมง่ายที่สุด คือการเขียนคำพูดของเราเองว่าเราต้องการอะไร
ไม่ต้องใช้คำสั่งงานใดๆ เลย
ในทีนี่เราจะมากล่าวถึงโปรแกรมภาษาซี
...
ภาษาซี เป็นภาษาที่นิยมใช้ในการเขียนโปรแกรมมาก เป็นภาษาระดับสูงที่มีประสิทธิภาพในการทำงานใกล้เคียงกับภาษาแอสแซมเบลอร์ เริ่มแรกการพัฒนาภาษาซีใช้เพื่อเขียนซอฟต์แวร์ระบบ แต่ปัจจุบัน สามารถใช้ในงานด้านต่าง ๆ มากมาย เช่น ระบบการจัดการฐานข้อมูล โปรแกรมทางธุรกิจ โปรแกรมสำเร็จรูป และสามารถสร้างกราฟิกได้ ข้อดีของภาษานี้ คือ ทำงานได้เร็วมากเมื่อเทียบกับภาษาอื่นๆ สามารถทำงานได้บนเครื่องคอมพิวเตอร์ต่างประเภท โดยมีการคอมไพล์ใหม่ แต่ไม่ต้องแก้ไขโปรแกรมอย่างใด ส่วนข้อเสีย คือ ยากที่จะเรียนรู้มากกว่าภาษาอื่น เนื่องจากลักษณะคำสั่งไม่มีรูปแบบที่แน่นอน และตรวจสอบโปรแกรมได้ยาก ไม่เหมาะจะใช้สร้างโปรแกรมที่ต้องมีการออกรายงานที่มีรูปแบบที่ซับซ้อนมาก ๆ
ประวัติโดยย่อของภาษาซี
ภาษาซีพัฒนาขึ้นมาในปี ค.ศ. 1970
โดย เดนนิส ริชชี ( Dennis Ritchie ) แห่ง Bell
Telephone Laboratories, Inc. (ปัจจุบันคือ AT&T Bell
Laboratories ) ซึ่งภาษาซีนั้นมีต้นกำเนิดมาจากภาษา 2 ภาษาคือ ภาษา BCPL คิดค้นโดย มาร์ติน ริชาร์ด (Martin
Richard) และภาษา B คิดค้นโดย เคน ทอมป์สัน (Ken
Thompson) ซึ่งภาษาทั้งสองต่างก็เป็นภาษาที่พัฒนาขึ้นมาใน Bell
Laboratories เช่นกัน
เมื่อมีการศึกษาภาษาบีอย่างละเอียดได้พบข้อบกพร่องต่างๆ ของภาษาบี
จึงได้มีการพัฒนารูปแบบภาษาบีขึ้นใหม่ให้มีหลักการทำงานที่ดีกว่าเดิม และใช้ชื่อใหม่ว่า
ภาษาซี (C language)
ภาษาซีนั้นถูกใช้งานอยู่เพียงใน Bell
Laboratories จนกระทั่งปี ค.ศ. 1978 ไบรอัน
เคอร์นิแฮม ( Brian Kernigham ) และริชชี ( Ritchie )
ได้จัดพิมพ์หนังสือชื่อว่า “C Programming Language” ทำให้เป็นที่รู้จักกันในชื่อของ “K&R C” หลังจากที่ตีพิมพ์ข้อกำหนดของ
K&R นักคอมพิวเตอร์มืออาชีพรู้สึกประทับใจกับคุณสมบัติที่สนใจของภาษาซี
และเริ่มส่งเสริมการใช้งานภาษาซีมากขึ้นในกลางปี ค.ศ. 1980 ภาษาซีก็กลายเป็นภาษาที่ได้รับความนิยมโดยทั่วไปมีการพัฒนาตัวแปลโปรแกรมพัฒนาโปรแกรมเชิงพาณิชย์เป็นจำนวนมาก
ยิ่งไปกว่านั้นโปรแกรมเชิงพาณิชย์ที่เคยพัฒนาขึ้นมาโดยใช้ภาษาอื่น
ก็ถูกเขียนขึ้นใหม่โดยใช้ภาษาซี เนื่องจากความต้องการใช้
ความได้เปรียบทางด้านประสิทธิภาพและความสามารถในการเคลื่อนย้ายได้ของภาษาซี
ตัวแปลโปรแกรมภาษาซีที่ได้รับการพัฒนาขึ้นมาในเชิงพาณิชย์นั้น
จะมีความแตกต่างกับข้อกำหนดของ Kernigham และ Ritchie
อยู่บ้าง
จากจุดนี้เองทำให้เกิดความไม่เข้ากันระหว่างตัวแปลโปรแกรมภาษาซีซึ่งก็ทำให้สูญเสียคุณสมบัติการเคลื่อนย้ายได้ซึ่งเป็นคุณสมบัติที่สำคัญของภาษา
ดังนั้นสถาบันมาตรฐานแห่งชาติอเมริกา (American
National Standard Institute) หรือแอนซี ( ANSI ) จึงเริ่มจัดทำมาตรฐานนี้บรรจุไว้ในปี ค.ศ. 1990
คุณสมบัติของภาษาซี
- เป็นภาษาที่มีลักษณะเป็นโครสร้างจึงเขียนโปรแกรมง่าย
โปรแกรมที่เขียนขึ้นจะทำงานได้อย่างมีประสิทธิภาพสูง สั่งงานคอมพิวเตอร์ได้รวดเร็วกว่าภาษาระดับสูงอื่นๆ
- สั่งงานอุปกรณ์ในระดับคอมพิวเตอร์ได้เกือบทุกส่วนของฮาร์ดแวร์ซึ่งภาษาระดับสูงภาษาอื่นทำงานดังกล่าวได้น้อยกว่า
- คอมไพเลอร์ภาษาซีทุกโปรแกรมในท้องตลาดจะทำงานอ้างอิง
มาตรฐาน (ANSI = Ameri-can National Standard's Institute) เกือบทั้งหมด
จึงทำให้โปรแกรมที่เขียนขึ้นด้วยภาษาซีสามารถนำไปใช้กับคอมพิวเตอร์ได้ทุกรุ่นที่มาตรฐาน
ANSI รับรอง
-โปรแกรมที่เขียนขึ้นด้วยภาษาซีสามารถนำไปใช้กับเครื่องคอมพิวเตอร์ที่ใช้ซีพียูต่างต่างเบอร์กันได้หรือกล่าวได้ว่าโปรแกรมมีความยืดหยุด
(Provability) สูง
- สามารถนำภาษาซีไปใช้ในการเขียนโปรแกรมประยุกต์ได้หลายระดับ
เช่น เขียนโปรแกรมจัดระบบงาน (OS) คอมไพเลอร์ของภาษาอื่น
โปรแกรมสื่อสารข้อมูล โปรแกรมจัดฐานข้อมูลโปรแกรมปัญญาประดิษฐ์ (AI =
Artificial Intelligent) รวมทั้งโปรแกรมคำนวณงานทางด้านวิทยาศาสตร์และวิศวกรรมศาสตร์
เป็นต้น
- มีโปรแกรมช่วย (Tool Box) ที่ช่วยในการเขียนโปรแกรมมาก และราคาไม่แพงหาซื้อได้ง่าย เช่น Turbo
C, Borland C เป็นต้น
- สามารถประกาศข้อมูลได้หลายชนิดและหลายรูปแบบ
ทำให้สะดวกรวดเร็วต่อการพัฒนาโปรแกรมตามวัตถุประสงค์ของผู้ใช้
- ประยุกต์ใช้ในงานสื่อสารข้อมูลและงานควบคุมที่ต้องการความแม่นยำในเรื่องเวลา
(Real Time Application) ได้กล่าวว่าภาษาระดับสูงอื่นๆ หลายๆ
ภาษา
- สามารถเขียนโปรแกรมเชิงวัตถุ (OOP
= Object Oriented Programming) ได้ หากใช้ภาษาซีรุ่น Turbo
C++ ขึ้นไป
ทำให้สามารถพัฒนาโปรแกรมประยุกต์เพื่อใช้งานได้กว้างขวางมากยิ่งขึ้นกว่าเดิม
โครงสร้างภาษาซี
การเขียนโปรแกรมภาษาซีจะต้องเขียนด้วยอักษรภาษาอังกฤษตัวพิพม์เล็กเสมอ
และเมื่อจบประโยคคำสั่งแต่ละคำสั่ง จะใช้เครื่องหมายเซมิโคลอน ( ; ) ในการคั่นคำสั่งแต่ละคำสั่ง
มีโครงสร้าง
ส่วนประกอบของโปรแกรมภาษาซีอาจแบ่งออกได้ดังต่อไปนี้
1.ส่วนหัวโปรแกรม (Head File
) หรือคอมไพเลอร์ไดเรกทีฟ ( Compiler Directive) เป็นส่วนของโปรแกรมที่ใช้สำหรับเป็นตัวบอกคอมไพเลอร์ว่าให้รวมไฟล์ต่างๆ
ที่กำหนดไว้ในส่วนนี้กับตัวโปรแกรมที่เขียนขึ้น
โดยต้องเขียนตามรูปแบบที่กำหนดไว้ดังนี้
#include <library>
|
เช่น
#include <stdio.h>
#include <conio.h>
เป็นต้น
ซึ่งถ้าผู้เขียนโปรแกรมอยากรู้ว่าไลบรารี่ที่เรียกให้ใช้งานมีฟังก์ชั่นหรือโพซีเยอร์ใดๆ
ให้ใช้งานใดบ้าง เพียงแค่นำเคอร์เซอร์ไปกระพริบให้ตรงกับชื่อของไลบรารี่นั่นแล้ว
กด ctrl+f1 ก็จะสามารถดู Help ทั้งหมดไลบรารี่นั้นๆ
ได้
2.ฟังก์ชั่นหลัก ( main Function )
หรือโปรแกรมหลัก ( Main Program ) เป็นส่วนที่ผู้เขียนต้องเขียนขึ้นเองโดยนำเอาคำสั่งหรือฟังก์ชันมาตรฐานต่างๆ
มาเรียบเรียงกันขึ้นเป็นโปรแกรมเพื่อสั่งให้คอมพิวเตอร์ประมวลผล
โดยมีโครงสร้างดังนี้
Main()
{
…
}
|
Main
เป็นฟังก์ชันหลักของโปรแกรม
() ภายในวงเล็บจะเป็นการกำหนดค่าพารามิเตอร์ที่ต้องส่งผ่านไปทำงานยังฟังก์ชันอื่นๆ
ถ้าไม่มีการใส่ค่าแสดงว่าไม่ต้องการมีค่าพารามิเตอร์
{ -
} ซึ่งภายในเครื่องหมายปีกกาประกอบด้วยคำสั่งต่างๆ ดังนี้
•
ส่วนของการประกาศตัวแปร (Declaration)
•
ส่วนนำข้อมูล (Input)]
•
ส่วนกำหนดค่า / หรือคำนวณ (Assignment or Computation)
•
ส่วนแสดงผลลัพธ์ (Output)
การหมายเหตุ หรือ Comment เพื่อใช้หมายเหตุหรืออธิบายรายละเอียดของโปรแกรมสามารถเขียนได้ดังนี้
/*ข้อความ*/ คำอธิบายโปรแกรม
ใช้ในการอธิบายความหมายของคำสั่งหรือสิ่งที่ต้องการเขียนไว้กันลืมจะไม่มีผลใดๆ
กับโปรแกรม แต่การเขียนจะต้องเริ่มต้นด้วยเครื่องหมาย /* และจบด้วยด้วยเครื่องหมาย
*/
3. ฟังก์ชันย่อย (Sub Function) หรือโปรแกรมย่อย (Sub
Program) เป็นส่วนที่ผู้เขียนต้องเขียนขึ้นเอง
โดยเอาคำสั่งหรือฟังก์ชันมาตรฐานต่างๆ
มาเรียบเรียงกันเพื่อให้โปรแกรมหลักหรือฟังก์ชันอื่นๆ
สามารถเรียกเพื่อประมวลผลโดยสามารถส่งผ่านค่าพารามอเตอร์ (Pass by
Parameter) หรือไม่ผ่านค่าพารามิเตอร์ (Non-Parameter) โดยมีโครงสร้างดังนี้
ชื่อฟังก์ชัน()
{
…
}
|
แนะนำการเขียนโปรแกรมภาษาซี C Programming
อ้างอิง
http://www.tice.ac.th/division/website_c/about/page2.htm
https://sites.google.com/site/programcomputer56/home/phasa-khxmphiwtexr
https://umaponblog.files.wordpress.com/2012/09/c_programming_language12.jpg
https://kroobee.wordpress.com/2010/09/16/
ข้อมูลแน่นมากเลยค่ะ ขอบคุณสำหรับข้อมูลดีๆ
ตอบลบ