วันเสาร์ที่ 20 มิถุนายน พ.ศ. 2558

week 4 : โปรแกรมภาษาคอมพิวเตอร์ (C Language)


     โปรแกรมภาษาคอมพิวเตอร์ (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/







1 ความคิดเห็น: