โปรแกรมภาษาซี
โปรแกรมภาษาซีบทนา ส่ิงสาคญั ท่ีทาใหค้ อมพิวเตอร์มีชีวติ ชีวาข้ึนก็คือ โปรแกรมคอมพิวเตอร์ โปรแกรมคอมพิวเตอร์สร้างสรรคข์ ้ึนมาโดยอาศยั สมองมนุษย์ โปรแกรมคอมพิวเตอร์ตอ้ งเขียนดว้ ยภาษาคอมพวิ เตอร์ ซ่ึงมีดว้ ยกนั หลายภาษา สาหรับในท่ีน้ีจะกล่าวถึงการเขียนโปรแกรมภาษาซี โดยมุ่งหวงั ใหท้ ่านเขา้ ใจภาษาซี สามารถเขียนโปรแกรมโดยใชภ้ าษาซี และมีศกั ยภาพที่จะพฒั นาตนเองเขา้ ไปสู่ผพู้ ฒั นา (Developer) อนั เป็นทรัพยากรบุคคลท่ีสาคญั สาหรับผสู้ ร้างที่เกิดข้ึนไดย้ ากกวา่ ผใู้ ช้ (User) ข้นั ตอนวธิ ี (Algorithm) ของการแกป้ ัญหาเพ่อื ให้เกิดผลตามจุดมุง่ หมายหรือสร้างงานทางคอมพวิ เตอร์สักชิ้นหน่ึง เราตอ้ งใชค้ วามสามารถของคาสัง่ ต่างๆ ของภาษาคอมพิวเตอร์มาเรียบเรียงใหไ้ ดต้ ามข้นั ตอนวธิ ีที่คิดไว้ทาไมต้องเป็ นภาษาซี ซี เป็นภาษาคอมพิวเตอร์ ที่มีการพฒั นาข้ึนใชง้ านเพื่อให้เป็นภาษามาตรฐานที่ไมข่ ้ึนกบัโปรแกรมจดั ระบบงาน หรือข้ึนกบั ฮาร์ดแวร์ จึงทาใหซ้ ี เป็นภาษาคอมพวิ เตอร์ตามอุดมการณ์ของนกัคอมพิวเตอร์ ซี เป็นภาษาคอมพิวเตอร์ท่ีอาศยั หลกั การทางวธิ ีการโปรแกรมสมยั ใหม่ ที่เรียกวา่ โปรแกรมโครงสร้าง การออกแบบซอฟตแ์ วร์จึงมีรูปแบบการออกแบบที่ง่ายเป็นโมดูล และสามารถนาไปใช้ไดง้ ่าย ในการคอมไพลด์ ว้ ย ซี คอมไพเลอร์น้นั ปรากฏวา่ ซีใหป้ ระสิทธิภาพท่ีเหนือกวา่ ภาษาช้นั สูงอ่ืนๆ ภาษาซีมีความคล่องตวั ท่ีจะไดร้ ับการประยกุ ตเ์ ขา้ กบั งานต่างๆ ไดอ้ ยา่ งดี เราสามารถนาภาษาซีมาใชใ้ นงานพฒั นาโปรแกรมต่างๆ ได้ เช่น โปรแกรมเวริ ์ดโปรเซสซ่ิง โปรแกรมสเปรดชีตโปรแกรมสาเร็จรูปอื่นๆ ปัจจุบนั บริษทั ผพู้ ฒั นาโปรแกรมสาเร็จรูปมกั ใชซ้ ีเป็นเคร่ืองมือในการพฒั นาโปรแกรม จากรูปโครงที่ทนั สมยั ของภาษาซี ภาษาซีจึงเป็นภาษาที่เหมาะสมสาหรับผสู้ นใจที่จะศึกษาหลกั การทางดา้ นวธิ ีการโปรแกรมเป็นอยา่ งดี การศึกษาภาษาซี จะทาใหผ้ ศู้ ึกษาไดเ้ รียนรู้รูปแบบของวธิ ีการเขียนโปรแกรมที่ถูกตอ้ ง เป็นการฝึกนิสัยในเร่ืองการเขียนโปรแกรมและกา้ วหนา้ ตอ่ ไปในอนาคตไดเ้ ป็นอยา่ งดี (บุญเลิศ : 2532)
ความเป็ นมาของภาษาซี ภาษาซี เป็นภาษาคอมพิวเตอร์ในสายตระกลู ของภาษาอลั กอล (ALGOL – AlgorithmicLanguage) มีความคลา้ ยคลึงกบั ภาษา PL/L, ปาสกาลและเอดา เป็นตน้ และจะแตกตา่ งหรือมีความคลา้ ยคลึงนอ้ ยกบั ภาษาเบสิก, ฟอร์แทรน ภาษาซี ออกแบบโดย Dennis Ritchie ท่ีเบลล์ แลปบอราทอรี เม่ือประมาณปี 2515 ถา้ จะไล่สายบรรพบุรุษของภาษาซี กจ็ ะตอ้ งเร่ิมจาก Algol 60 ในปี 2503 (1960) มาถึง CPL ของCambridge ในปี 2506 มาเป็ น BCPL โดย มาติน ริชาร์ด ในปี 2510 และมาถึงภาษา B โดย เคนทอมป์ สนั ที่เบลลแ์ ลบส์ ในปี 2513 จนมาเป็นภาษา C ในปี 2515 ( สาโรจ : 2534) สรุปพฒั นาการของภาษาซี ไดด้ งั น้ี Algol 60 คิดคน้ โดยองคก์ าร International Committee ในปี พ.ศ.2503 CPL (Comined Programming Language) พฒั นาโดยมหาวทิ ยาลยั Cambridge ในปี 2506 BCPL (Basic Combined Programming Language) พฒั นาโดย Matin Richards มหาวทิ ยาลยั Cambridge ในปี 2510 B พฒั นาโดย Ken Thompson แห่ง Bell Laboratory ในปี 2513 C พฒั นาโดย Dennis Richie แห่ง Bell Laboratory ในปี 2515 ภาษาซี จึงมีที่มาจากแนวความคิดเดียวกนั กบั ภาษาบี ช่ือของภาษาซีจึงน่าจะมาจากตวั ที่สองของภาษา BCPL เช่นเดียวกบั ภาษาบี ที่ใชต้ วั อกั ษรตวั แรกมาต้งั ช่ือ (มนตช์ ยั : 2535)
ทาไมภาษาซี จึงเป็ นทนี่ ิยม ภาษาซี เป็นที่นิยมดว้ ยสาเหตุหลายประการ ดงั น้ี - ภาษาซี เป็นภาษาสมยั ใหม่ท่ีมีสิ่งอานวยความสะดวกในการประยกุ ตไ์ ดอ้ ยา่ งกวา้ งขวางตรงตามความตอ้ งการของทฤษฏีทางศาสตร์คอมพวิ เตอร์ ภาษาซี มีรูปแบบขอ้ มลู ให้เลือกอยา่ งสมบรู ณ์กบั การประยกุ ตต์ ่างๆ มีตวั ดาเนินการครบถว้ ย ตลอดจนมีการควบคุมโครงสร้างไดแ้ บบสมยั ใหม่ Run-time Library มากมายสาหรับการจดั การกบั อินพุต/เอาตพ์ ุต, Storage Allocation,String Manipulation เหล่าน้ีทาใหก้ ารประยกุ ตด์ ว้ ยภาษาซี เป็นธรรมชาติท่ีจะใชใ้ นการออกแบบสมยั ใหม่ เช่น Top-down Planning, Structured Programming และ Modulat Design - ภาษาซี ออกแบบมาเพื่อใชป้ ระโยชนจ์ ากความสามารถของเคร่ืองคอมพวิ เตอร์ในปัจจุบนัอยา่ งมาก รวมท้งั มีช่องวา่ งระหวา่ งภาษาซีกบั เครื่องคอมพิวเตอร์ (Hardware) นอ้ ยมาก ดงั น้นัโปรแกรมประยกุ ตข์ องภาษาซี จึงมีขนาดเล็กและมีความเร็วสูงกวา่ - ภาษาซี เคลื่อนยา้ ยง่าย (Portable) โปรแกรมภาษาซีท่ีเขียนในระบบหน่ึง จะสามารถนาไปรันในอีกระบบหน่ึงไดโ้ ดยไมต่ อ้ งมีการดดั แปลง หรือหากมีกน็ อ้ ยมาก - ภาษาซี มีความสามารถสูง (Powerful) และความอ่อนตวั (Flexible) สามารถปรับไปเป็นระบบปฎิบตั ิการของเคร่ืองไดห้ ลายยหี่ อ้ - ภาษาซี มีความสามารถในการปรับแต่งไดอ้ ยา่ งละเอียด เช่นเดียวกบั ภาษาแอสเซมบลีรวมท้งั สามารถประสานสมั พนั ธ์ไดเ้ ป็นอยา่ งดีกบั ภาษาแอสเซมบลี จึงทาใหส้ ามารถปรับแต่งโปรแกรมประยกุ ตใ์ หม้ ีประสิทธิภาพสูงสุดได้ (สาโรจ : 2534)จุดเด่นของภาษาซี ในภาษาโปรแกรมทุกภาษามีจุดเด่นในการประมวลของภาษาแตกต่างกนั จุดเด่นของภาษาซีมีดงั น้ี เป็นภาษาคอมพวิ เตอร์ที่มีแนวคิดในการพฒั นาแบบ “โปรแกรมเชิงโครงสร้าง (Structure Program)” ทาใหภ้ าษาซี เป็ นภาษาท่ีเหมาะสาหรับนามาพฒั นาระบบ เป็นภาษาคอมพิวเตอร์ท่ีเป็นภาษามาตรฐาน ซ้ึงการทางานของภาษาไมข่ ้ึนกบั ฮาร์ดแวร์ ทาใหส้ ามารถนาไปใชใ้ น CPU รุ่นตา่ งๆ ได้ เป็นภาษาระดบั สูงที่ทางานเหมือนภาษาระดบั ต่า สามารถทางานแทนภาษาแอดแซมบลี (Assembly) ได้ ความสามารถของคอมไพเลอร์ในภาษาซี มีประสิทธิภาพสูง ทางานไดร้ วดเร็ว โดยใช้ รหสั ออบเจก็ ต์ (Object) ที่ส้ัน จึงทาใหเ้ หมาะสาหรับงานท่ีตอ้ งการความรวดเร็ว(ไกรสร : 2554)
โครงสร้างโปรแกรมภาษาซี ภาษาซีเป็นภาษาโครงสร้างท่ีมีรูปแบบไวยากรณ์แน่นอน มีคาสัง่ ใหเ้ ลือกใชง้ านตามลกั ษณะงานตา่ งๆ มากมาย โครงสร้างของภาษาซีจะพจิ ารณาโปรแกรมเป็นส่วนยอ่ ยหลายๆ ส่วนมาประกอบกนั เขา้ เป็นโปรแกรม โดยเรียกส่วนยอ่ ยๆ น้นั วา่ “ฟังกช์ นั ” ดงั น้นั ในโปรแกรมภาษาซีจึงประกอบดว้ ยฟังกช์ นั หลายฟังกช์ นั่ ท่ีถูกกาหนดใหท้ าหนา้ ที่ใดหนา้ ท่ีหน่ึงในลกั ษณะของโมดูลยอ่ ย(มนตช์ ยั : 2535)พจิ ารณาโปรแกรมแรก #include “stdio.h” main () { printf (“Hi I can write C Program.\n”); return 0; } เมื่อ Run โปรแกรม (โดยการกดแป้ น Ctrl+F9 เครื่องจะทาการ Compile โปรแกรมจากSource File ใหเ้ ป็น Object File จากน้นั จะทาการ Link กบั ไฟล์ Library โดยอตั โนมตั ิ ผลลพั ธ์จะเป็น Executable File ที่เรียกดูผลลพั ธ์ได้ โดยการกดแป้ น Alt+F5) ผลลพั ธ์จะปรากฏดงั น้ี Hi I can write C Program. #include “stdio.h” เป็นส่วนท่ีบอกส่วนประมวลผลก่อน (Preprocessor) ของ โปรแกรม เป็ นการสงั่ ให้ C Compiler นาไฟลอ์ ินพุตและเอาทพ์ ุต มาตรฐาน (Standard Input Output) นามารวมกบั ฟังกช์ นั่ หรือคาสง่ั ในโปรแกรมที่เขียนข้ึน main () เป็นฟังกช์ นั่ แรกของภาษาซีที่จะตอ้ งเริ่มตน้ ดว้ ยฟังกช์ นั่ main () ทุกโปรแกรม โดยมี () เพื่อบอกวา่ คา่ ตวั แปรหรือ Parameter ภายในที่จะส่งผา่ นเขา้ ออกไปยงั ฟังกช์ น่ั อ่ืนๆ ในที่น้ีไม่มีการ ส่งผา่ นคา่ พารามิเตอร์ไปยงั ฟังกช์ น่ั ใดๆ printf (“Hi I can write C Program.\n”); เป็นคาส่ังในภาษาซีที่เขียนอยใู่ นบลอ็ ก โดยมีวงเล็บปี กกา { } เป็น ตวั กาหนดขนาดของบล็อก ส่วน printf หมายถึง ใหพ้ มิ พข์ อ้ ความ ที่กาหนดในวงเล็บเป็น Argument ที่จะผา่ นค่าไปยงั คาสงั่ printf ()
return 0; แฟล็กท่ีใชร้ ีเทิร์นค่าไปยงั ระบบปฏิบตั ิการวา่ เสร็จสมบูรณ์จากโปรแกรม จะเห็นวา่ โปรแกรมประกอบดว้ ย 3 ส่วนดว้ ยกนั คือ#Header #include “stdio.h”main () main ()Function () { printf (“Hi I can write C Program.\n”); } โปรแกรมภาษาซีจะประกอบไปดว้ ยฟังกช์ นั่ อยา่ งนอ้ ยท่ีสุดหน่ึงฟังกช์ นั่ ฟังกช์ นั่ จะทาหนา้ ที่ดาเนินการใดๆ ใหบ้ รรลุจุดประสงค์ โดยบรรจุคาสัง่ ต่างๆ ของภาษาซี ไวภ้ ายในฟังกช์ นั่ สัญลกั ษณ์ท่ีใชแ้ สดงขอบเขตของฟังกช์ นั่ คือ เครื่องหมาย ปี กกาเปิ ด { และปี กกาปิ ด } โดยมีชื่อฟังกช์ นั่ กากบัอยู่ ดงั ตวั อยา่ งคือ main แตล่ ะฟังกช์ น่ั สามารถส่งผา่ นขอ้ มลู เขา้ ไปในฟังกช์ น่ั ไดเ้ รียกวา่ อาร์กิวเมนต์ (Argument)โดยสามารถเขียนรายการอาร์กิวเมนตล์ งในระหวา่ งเครื่องหมายวงเลบ็ เปิ ดและปิ ดที่อยตู่ ่อจากฟังกช์ นั่สาหรับกรณีท่ีไมม่ ีอาร์กิวเมนต์ คือไมม่ ีการส่งผา่ นขอ้ มูลเขา้ ไปในฟังกช์ นั่ ก็จะเป็นวงเล็บเปิ ดและปิ ดเปล่าๆ ดงั ตวั อยา่ ง ในแต่ละฟังกช์ น่ั จะประกอบดว้ ยคาสั่งดาเนินการต่างๆ ซ่ึงอาจเป็ นการเรียกใชฟ้ ังกช์ นั่ อ่ืนมาดาเนินการ โดยการเรียกช่ือของฟังกช์ น่ั น้นั ๆ เช่นบรรทดั ตอ่ ไปน้ี printf (“Hi I can write C Program.\n”); เป็นการเรียกใชฟ้ ังกช์ น่ั ชื่อวา่ printf โดยฟังกช์ น่ั printf มีอาร์กิวเมนตค์ ือ “Hi I can write CProgram.\n” ฟังกช์ น่ั printf จะทาหนา้ ที่พมิ พส์ ายของตวั อกั ษรท่ีส่งเป็นอาร์กิวเมนตเ์ ขา้ มา ตวั อกั ษรที่อยภู่ ายในเคร่ืองหมาย “....” น้ีเรียกวา่ สายของตวั อกั ษร (Charater String) หรือเรียกกนั ส้ันๆ วา่ String \n ที่อยใู่ นสตริงจะเป็นสัญลกั ษณ์พเิ ศษ ถือเป็นหน่ึงตวั อกั ษร เพือ่ ทาหนา้ ที่ใหพ้ ิมพข์ ้ึบรรทดั ใหม่ ซ่ึงตวั อกั ษรน้ีเรียกวา่ New line Charater
บรรณานุกรม ไกรสร ต้งั โอภากลุ คู่มือเรียนเขียนโปรแกรมภาษา C นนทบุรี : ไอดีซี พรีเมียร์, 2554. สาโรจ เมาลานนท์ โลกของภาษา C Computer Today ฉบบั ที่ 5 ตุลาคม 2534 หนา้ 53-58. มนตช์ ยั เทียนทอง, ผศ การโปรแกรมภาษาซี กรุงเทพมหานคร : สถาบนั เทคโนโลยพี ระจอมเกลา้ พระนครเหนือ 2535. บุญเลิศ เอ่ียมทศั นา และคณะ โปรแกรมคอมพวิ เตอร์ภาษาซี กรุงเทพมหานคร : บริษทั ซีเอด็ ยเู คชนั่ จากดั 2532.
Search
Read the Text Version
- 1 - 7
Pages: