วันพุธที่ 31 ธันวาคม พ.ศ. 2557

เว็บสำหรับดาวน์โหลดโปรแกรม

เว็บสำหรับดาวน์โหลดโปรแกรม Code Blocks


http://www.codeblocks.org/

สรุป

   สรุป
                ภาษาคอมพิวเตอร์ เป็นสื่อกลางระหว่างมนุษย์กับเครื่องคอมพิวเตอร์ เพื่อควบคุมและสั่งงานให้เครื่องทำงานตามคำสั่งเพื่อให้ได้ผลลัพธ์ตามที่ผู้ใช้ต้องการ ซึ่งในปัจจุบันภาษาคอมพิวเตอร์ได้มีผู้พัฒนาออกมามากมายหลานภาษา ผู้เขียนโปรแกรมจะต้องทำความเข้าใจถึงหลักการเขียน และรูปแบบโครงสร้างคำสั่งของภาษานั้นๆ โดยภาษาคอมพิวเตอร์ได้แบ่งออกเป็น 5 ระดับคือ
        1.ภาษาเครื่อง (Machine Languagr)
        2. ภาษาระดับต่ำ (Low Level Language)
        3.ภาษาระดับสูง (High level Language
        4 ภาษาระดับสูงมาก (Very High-level Language)
        5 ภาษาธรรมชาติ (Nature language)
        โปรแกรมแปลภาษา เป็นซอฟต์แวร์หรือชุดคำสั่งที่ทำหน้าที่แปลโคดโปรแกรม (Source Program) ให้เป็นคำสั่งปฏิบัติการ (Object Program) เนื่องจากภาษาระดับต่ำและภาษาระดับสูงเป็นภาษาที่เครื่องคอมพิวเตอร์ไม่สามารถรับรู้ได้ จำเป็นต้องมีชุดคำสั่งที่ใช้เป็นตัวแปลภาษาให้เป็นภาษาเครื่องโปรแกรมแปลภาษาแบ่งออกเป็น 2 ประเภท คือ
        1. ตัวแปลภาษาระดับต่ำ ได้แก่ แอสเซมเบลอร์ ( Assembler )
        2. ตัวแปลภาษาระดับสูง ได้แก่ คอมไพเลอร์ (Compiler) และอินเตอร์พรีตเตอร์ (Interpreter)
        ในการเขียนโปรแกรมจะต้องเลือกภาษาคอมพิวเตอร์ที่มีความสามารถตรงกับลักษณะงานที่จะนำไปใช้หรือพัฒนา อีกทั้งผู้เขียนจะต้องมีความรู้ในภาษานั้นๆ ซึ่งภาษาคอมพิวเตอร์อย่างมากมายให้เลือกใช้โดยแบ่งเป็น 3 ประเภท คือ
        1. ภาษาที่เหมาะสำหรับงานธุรกิจ (Business Language)
        2. ภาษาที่เหมาะสำหรับด้านวิทยาศาสตร์ (Scientific language)
        3. ภาษาที่สารถใช้งานได้อเนกประสงค์ (Multipurpose Language)
        ภาษาซีพัฒนาขึ้นมาในปี ค.ศ.1970 โดย เดนนิส ริชชี (Dennis Ritchie) แห่ง Bell Telephone Laboratories, Inc. ซึงภาษาซีนั้นมีต้นกำเนิดมาจากภาษา 2 ภาษา คือ ภาษา BCPL และภาษา B เมื่อมีการศึกษาภาษาบีอย่างละเอียดได้พบข้อบกพร่องต่างๆ ของภาษาบี จึงไดมีการพัฒนารูปแบบภาษาบีขึ้นใหม่ให้มีหลักการทำงานที่ดีกว่าเดิม และใช้ชื่อว่า ภาษาซี ( C language )

โครงสร้างภาษาซี

โครงสร้างภาษาซี
         การเขียนโปรแกรมภาษาซีจะต้องเขียนด้วยอักษรภาษาอังกฤษตัวพิพม์เล็กเสมอ และเมื่อจบประโยคคำสั่งแต่ละคำสั่ง จะใช้เครื่องหมายเซมิโคลอน ( ; ) ในการคั่นคำสั่งแต่ละคำสั่ง มีโครงสร้าง
ส่วนประกอบของโปรแกรมภาษาซีอาจแบ่งออกได้ดังต่อไปนี้
         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) โดยมีโครงสร้างดังนี้
ชื่อฟังก์ชัน()
{
}

คุณสมบัติของภาษาซี

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

ประวัติโดยย่อของภาษาซี

ประวัติโดยย่อของภาษาซี
         ภาษาซีพัฒนาขึ้นมาในปี ค.ศ. 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

การประยุกต์ใช้งานภาษาระดับสูง

การประยุกต์ใช้งานภาษาระดับสูง
         ในปัจจุบันภาษาคอมพิวเตอร์ได้มีการออกแบบและพัฒนาออกมาอย่างต่อเนื่อง ซึ่งการเรียกใช้ภาษาใดภาษาหนึ่งในการเขียนโปรแกรม จะต้องเลือกภาษาคอมพิวเตอร์ที่มีความสามารถตรงกับลักษณะงานที่นำไปใช้หรือพัฒนา อีกทั้งผู้เขียนจะต้องมีความรู้ในภาษานั้นๆ ซึ่งมีภาษาคอมพิวเตอร์อย่างมากมายให้เลือกใช้ เช่น COBOL, FORTRAN, Basic, Pascal, C, C++, JAVA, C# เป็นต้นโดยสามารถแบ่งประเภทของงานได้ดังนี้
         3.1 ภาษาที่เหมาะสำหรับงานธุรกิจ (Business Language) เป็นภาษาที่เหมาะสมกับงานทางด้านธุรกิจที่มีลักษณะของข้อมูลจำนวนมาก และมีการกำหนดรูปแบบผลลัพธ์ในการแสดงผล เช่น ภาษาโคบอล (Cobal), ภาษาอาร์พีจี (RPG) เป็นต้น
         3.2 ภาษาที่เหมาะสมสำหรับงานวิทยาศาสตร์ (Scientific Language) เป็นภาษาที่ออกแบบมาเพื่อใช้งานทางด้านวิทยาศาสตร์ คณิตศาสตร์ หรือวิศวกรรม เช่น ภาษาเอพีแอล (APL) ภาษาฟอร์แทรน (Fortran) เป็นต้น
         3.3 ภาษาที่สามารถใช้งานได้หลากหลาย ขึ้นอยู่กับความสามารถในการประยุกต์ใช้ของผู้เขียนโปรแกรม หรือในบางครั้งเหมาะสำหรับผู้ฝึกหัดเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์เริ่มต้น เช่น ภาษาเบสิก (Basic), ภาษาปาสคาล (Pascal), ภาษาซี (C) เป็นต้น

โปรแกรมแปลภาษา

โปรแกรมแปลภาษา (Translator)
         โปรแกรมแปลภาษาเป็นซอฟต์แวร์หรือชุดคำสั่งที่ทำหน้าที่แปลงโค้ดโปรแกรม (Source Program) เป็นคำสั่งปฏิบัติการ (Object Program) เนื่องจากภาษาระดับต่ำและภาษาระดับสูงเป็นภาษาเครื่องคอมพิวเตอร์ไม่สามารถรับรู้ได้ จำเป็นต้องมีชุดคำสั่งที่ใช้เป็นตัวแปลภาษาเครื่องเสียก่อนซึ่งโปรแกรมแปลภาษาแบ่งออกเป็น 2 ประเภท คือ
         2.1 ตัวแปลภาษาระดับต่ำ ภาษาระดับต่ำแม้ว่าจะเป็นภาษาที่ใกล้เคียงกับภาษาเครื่องแต่ลักษณะของภาษานี้ใช้ตัวอักษรแทนชุดคำสั่งของเลขฐานสอง (0,1) ในภาษาเครื่อง จึงจำเป็นชุดคำสั่งที่ใช้แปลภาษาระดับต่ำให้เป็นภาษาเครื่อง ซึ่งชุดคำสั่งที่ใช้แปลภาษาระดับนี้ ได้แก่ โปรแกรมภาษาแอสเซมเบลอร์ ( Assembler ) ที่ใช้ตัวแปลที่มีชื่อว่า แอสเซทบลี (Assembly)
         2.2 ตัวแปลภาษาระดับสูง ภาษาระดับสูงเป็นภาษาที่เขียนขึ้นมาเพื่อให้เครื่องคอมพิวเตอร์ทำงาน โดยมีรูปแบบคำสั่งที่มนุษย์อ่านและวามารถเข้าใจได้เพราะใช้อักขระในภาษาอังกฤษเป็นองค์ประกอบ แต่คอมพิวเตอร์ไม่สามารถเข้าใจคำสั่งนั้นๆ จึงจำเป็นต้องมีชุดคำสั่งที่ใช้แปลภาษาระดับสูงให้เป็นภาษาเครื่องอีกที ซึ่งโปรแกรมภาษาระดับสูง แบ่งออกเป็น 2 ประเภท คือ
                  2.2.1 คอมไพเลอร์ (Compiler) เป็นโปรแกรมที่ใช้แปลภาษาระดับสูงให้เป็นภาษาเครื่องลักษณะการแปลภาษาระดับสูงของคอมไพเลอร์นั้น เป็นลักษณะการตรวจสอบคำสั่งที่ได้รับเข้ามาว่าการเขียนคำสั่งนั้นถูกต้องตามหลักไวยากรณ์ของภาษาหรือไม่ถ้ายังไม่ถูกต้องก็จะแจ้งข้อผิดพลาดให้ผู้ใช้ทราบเพื่อจะทำการแก้ไขให้ถูกต้อง ถ้าหากตรวจสอบแล้วถูกต้องจะแปลจาก Source Program ให้เป็น Object program เก็บไว้ในหน่วยความจำ และถ้ามีการแก้ไขเปลี่ยนแปลงชุดคำสั่งใหม่ จะต้องมีการแปลชุดคำสั่งใหม่ทั้งโปรแกรม เพื่อเก็บ Object program อีกครั้งนี้ การใช้คอมไพเลอร์ถ้าเป็นชุดคำสั่งที่ต้องการทำการประมวลผลต่อเนื่องกันหลายๆ ครั้งจะทำให้การประมวลผลเร็ว เพราะไม่ต้องแปลใหม่อีกสามารถเรียกใช้ Object program ได้เลย ภาษาที่ใช้ตัวแปลประเภทนี้ เช่น Fortran,Cobol เป็นต้น

                  2.2.2 อินเตอร์พรีตเตอร์ (Interpreter) เป็นโปรแกรมที่ใช้แปลภาษาระดับสูงให้เป็นภาษาเครื่อง โดยการแปลชุดคำสั่งที่นำเข้าสู่เครื่องคอมพิวเตอร์ทีละคำสั่ง และทำการประมวลผลทันทีโดยไม่ต้องทำให้เป็น Object program ถ้าหากพบข้อความผิดพลาดโปรแกรมจะหยุดทำงานทันที เมื่อทำการแก้ไขชุดคำสั่งก็ต้องแปลค่าคำสั่งที่แก้ไขเพิ่มเติมอีกครั้งหนึ่ง จึงจะทำงานการประมวลผลโดยไม่ต้องแปลใหม่หมดทั้งโปรแกรม ครั้งจะทำการประมวลผลช้าลง เพราะต้องแปลใหม่ทุกครั้งที่มีการประมวลผล ภาษาที่ใช้ตัวแปลประเภทนี้ เช่น pascal, Basic เป็นต้น