Tuesday, November 4, 2008

นาย นัฐพล วงศ์อภัย เลขที่ 2 ม.6/1

การเขียนโปรแกรม (programming) หรือ การเขียนโค้ด (coding) เป็นขั้นตอนการเขียน ทดสอบ และดูแลซอร์สโค้ดของโปรแกรมคอมพิวเตอร์ ซึ่งซอร์สโค้ดนั้นจะเขียนด้วยภาษาโปรแกรม] ขั้นตอนการเขียนโปรแกรมต้องการความรู้ในหลายด้านด้วยกัน เกี่ยวกับโปรแกรมที่ต้องการจะเขียน และอัลกอริทึมที่จะใช้ ซึ่งในวิศวกรรมซอฟต์แวร์นั้น การเขียนโปรแกรมถือเป็นเพียงขั้นหนึ่งในวงจรชีวิตของการพัฒนาซอฟแวร์

การเขียนโปรแกรมจะได้มาซึ่งซอร์สโค้ดของโปรแกรมนั้นๆ โดยปกติแล้วจะอยู่ในรูปแบบของ plain text ซึ่งไม่สามารถนำไปใช้งานได้ จะต้องผ่านการคอมไพล์ตัวซอร์สโค้ดนั้นให้เป็นภาษาเครื่อง (Machine Language) เสียก่อนจึงจะได้เป็นโปรแกรมที่พร้อมใช้งาน

การเขียนโปรแกรมถือว่าเป็นการผสมผสานกันระหว่างศาสตร์ของ ศิลปะ วิทยาศาสตร์ คณิตศาสตร์ และ วิศวกรรม เข้าด้วยกัน [1]

ขั้นตอนการเขียนโปรแกรม

ขั้นตอนการเขียนโปรแกรมหรือพัฒนาโปรแกรม มีขั้นตอนโดยสังเขปดังนี้

·                         วิเคราะห์ปัญหาและความต้องการ (Problem Analysis and Requirement Analysis)

·                         กำหนดและคุณสมบัติของโปรแกรม (Specification)

·                         การออกแบบ (Design)

·                         การโค้ด (Coding)

·                         การคอมไพล์ (Compilation)

·                         การทดสอบ (Testing)

·                         การจัดทำเอกสาร (Documentation)

·                         การเชื่อมต่อ (Integration)

·                         การบำรุงรักษา (Maintenance)

 

โครงสร้างของภาษาปาสคาล

ภาษาปาสคาลเป็นภาษาที่นิยมการเขียนโปรแกรมเป็นโมดูลเป็นภาษาที่มีการเขียนเป็นแบบโครงสร้าง

(STRUCTURE PROGRAMMING) ภาษาปาสคาลแบ่งโปรแกรมเป็น 3 ส่วนคือ

- ส่วนหัว (HEADER)

- ส่วนข้อกำหนด (DECLARATION PART)

- ส่วนตัวโปรแกรม (STATEMENT PART) ภาษาปาสคาลเป็นภาษาที่ไม่ใช้หมายเลขบรรทัด

ดังนั้นการขึ้นบรรทัดใหม่หรือไม่นั้นไม่มัผลต่อความผิดพลาดของโปรแกรมแต่ละคำสั่งจะถูกแยกกันด้วยเครื่องหมาย ;

ขั้นตอนการสร้างโปรแกรม

1. เข้าสู่ โดยการเรียก ตามไดเร็กทอรีของเทคนิควิมล C:Tp7>turbo

2. เลือก File ——> New

3. หลังจากพิมพ์โปรแกรมเรียบร้อยแล้ว กดปุ่ม F2 เพื่อ Save ข้อมูลตั้งชื่อให้เรียบร้อยแล้วกด Enter

4. ทดลองโดยการกด Alt + F9 ถ้าโปรแกรมเขียนถูกต้องตามหลักเกณฑ์จะมีข้อความ Compile successful : Press any key

ถ้าพบที่ผิดพลาดจะแสดงข้อความที่บรรทัดบนสุดพร้อมกับกระพริบอยู่บริเวณที่ผิดหลังจากตรวจสอบและแก้ไขแล้วสั่งอีกครั้ง

5. เมื่อโปรแกรมผ่านให้ทดลองสั่งประมวลผลโดยกด Ctrl + F9

ในขั้นแรก ไปดูโครงสร้างของการเขียน pascal กัน

ส่วนหัว

มีข้อกำหนดดังต่อไปนี้

- ต้องขึ้นต้นด้วยคำว่า PROGRAM

- ตามด้วยชื่อโปรแกรมที่ผู้เขียนเป็นผู้กำหนดตามเงื่อนไขในการตั้งชื่อ

- ลงท้ายด้วย ;

เช่น PROGRAM TEST;

ชื่อของโปรแกรมว่า TEST จะต้องเป็นชื่อที่ถูกต้องตามกฎเกณฑ์การตั้งชื่อ

 

ข้อกำหนด

    มีข้อจำกัดดังต่อไปนี้

-    ขึ้นต้นด้วยประเภทตัวแปร

-    ถ้ามีตัวแปรมากว่า 1 ตัวแปรให้ใช้ , คั่นชนิดของตัวแปร

-    จบด้วย ;

-     ใน 1 โปรแกรมสามารถมีตัวแปรได้หลายชนิด

var   ส่วนนี้เป็นส่วนที่ใช้สำหรับประกาศตัวแปร

program  myprogram;

var

a : integer ;

b : string ;

c : char ;


begin

end.

ในเรื่องของตัวแปร ( variable )
จำเป็นต้องพูดให้ลึกซึ้งเสียหน่อย

การประกาศตัวแปรให้ เริ่มด้วย var

ตามด้วย

ชื่อของตัวแปร : ชนิดของตัวแปร ;

( ส่วนประกอบของตัวแปร )

ส่วนตัวโปรแกรม

มีข้อกำหนดดังต่อไปนี้

-     ขึ้นต้นด้วยคำว่า BEGIN

-     ตามด้วยชุดคำสั่ง

-    จบด้วย END.

ระหว่าง BEGIN และ END จะเป็นคำสั่งในภาษาปาสคาลกี่คำสั่งก็ได้ซึ่งแต่ละคำสั่งคั่นด้วยเครื่องหมาย ;

 

โครงสร้างขั้นพื้นฐาน
เป็นไปตามที่ได้กล่าวไว้ ได้แก่

1.        ส่วนหัวโปรแกรม

2.        ส่วนประกาศตัวแปร ( var .. )

3.        ส่วนการทำงาน ( begin .. ไปถึง end.)

 

 

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

·                         ภาษาเครื่อง (Machine Languages)

ภาษาเครื่อง (Machine Languages)เป็นภาษาหรือคำสั่งที่ใช
้ในการสั่งงานหรือติดต่อกับเครื่องโดยตรง ลักษณะสำคัญของ
ภาษาเครื่องจะประกอบด้วยรหัสของเลขฐานสองซึ่งเทียบ
ได้กับลักษณะของสัญญาณทางไฟฟ้าเข้ากับหลักการ
ทำงาานของเครื่องสามารถเข้าใจและพร้อมที่จะทำงานตาม
คำสั่งได้ทันที ภาษาเครื่องจะมีกฎเกณฑ์ทางไวยากรณ์ค่อนข้างจำกัด
โปรแกรมมีลักษณะค่อนข้างยุ่งยากซับซ้อน รหัสโครงสร้างของ
แต่ลำคำสั่งของภาษาเครื่องจะประกอบด้วยส่วนสำคัญ 2 ส่วนคือ

·                                         รหัสบอกประเภทของคำสั่ง (Operation Code
หรือ Op-Code) เป็นส่วนที่บอกคำสั่งให้เครื่องทำการ
ประมวลผล เช่น ให้ทำการบวก ลบ คูณ หาร หรือเปรียบเทียบ

·                                         รหัสบอกตำแหน่งข้อมูล (Operand) เป็นส่วนที่บอกว่า
ข้อมูลที่จะนำมาประมวลผลนั้นเก็บอยู่ในตำแหน่ง (Address)
ใดของหน่วยความจำ

ลักษณะของโปรแกรมจะประกอบด้วยกลุ่มของรหัสคำสั่งซึ่งประกอบ
ด้วยเลขฐานสองเรียงต่อกัน ซึ่งผู้เขียนโปรแกรมจะต้องทราบเทคนิคการ
ใช้รหัสคำสั่งและจะต้องจำตำแหน่งของคำสั่งและข้อมูลที่ถูกเก็บไว้ เพราะเนื่องจากเครื่องคอมพิวเตอร์แต่ละบริษัทจะใช้ภาษาเครื่องของตนเอง
และผู้เขียนโปรแกรมจะต้องเข้าใจระบบการทำงานของเครื่องเป็นอย่างดี
ดังนั้นการเขียนโปรแกรมเป็นภาษาเครื่องจึงมีผู้เขียนอยู่ในวงจำกัด
เพราะต้องมีความรู้ทางด้านเครื่องและรหัสของเครื่องจึงจะเขียน
โปรแกรมได้ ภาษาเครื่องของคอมพิวเตอร์แต่ละระบบจะแตกต่างกัน
ทำให้เกิดความไม่สะดวกเมื่อมีการเปลี่ยนเครื่องคอมพิวเตอร์ระบบใหม่
ก็จะต้องเขียนโปรแกรมใหม

่ข้อดี ของภาษาเครื่อง
1.เมื่อคำสั่งเข้าสู่เครื่องจะสามารถทำงานได้ทันที
2.สามารถสร้างคำสั่งใหม่ ๆ ได้ โดยที่ภาษาอื่นทำไม่ได้
3.ต้องการหน่วยความจำเพียงเล็กน้อย

ข้อเสียองภาษาเครื่อง
1.ต้องเขียนโปรแกรมคำสั่งยาวทำให้ผิดพลาดได้ง่าย
2.ผู้เขียนโปรแกรมจะต้องรู้ระบบการทำงานของเครื่องเป็นอย่างดีจึง
สามารถ เขียนโปรแกรมได้ และถ้าเครื่องที่มีฮาร์ดแวร์ต่างกัน
จะใช้โปรแกรมร่วมกัน ไม่ได้

 

·                         ภาษาระดับต่ำ (Low-level Languages)

ภาษาระดับต่ำ ในทางคอมพิวเตอร์ หมายถึง ภาษาที่อิงกับสถาปัตยกรรมคอมพิวเตอร์ใดสถาปัตยกรรมหนึ่ง ซึ่งไมโครโพรเซสเซอร์แต่ละรุ่น หรือ แต่ละตระกูล ก็มักมีภาษาระดับต่ำที่แตกต่างกัน และโดยปกติแล้ว หนึ่งคำสั่งในภาษาระดับต่ำ จะหมายถึงการสั่งงานคอมพิวเตอร์ให้ทำงานหนึ่งอย่าง (1 instruction = 1 operation) ภาษาระดับต่ำ มี 2 ภาษา คือ

·                         ภาษาเครื่อง เป็นภาษาเดียวที่ไมโครโพรเซสเซอร์สามารถเข้าใจ คำสั่งเป็นตัวเลขล้วน ๆ การอ่านและเขียนอาจต้องใช้เครื่องมือพิเศษ จึงไม่ค่อยมีการใช้ภาษาเครื่องโดยตรง

·                         ภาษาแอสเซมบลี เป็นการปรับภาษาเครื่องให้สามารถเขียนได้สะดวกขึ้นโดยการพิมพ์คำสั่งที่เป็นตัวอักษรแทนตัวเลข เวลาเขียนเสร็จ จะต้องใช้ตัวแปลโปรแกรมจึงจะใช้งานได้ และถึงแม้ว่าไม่ใช้ภาษาเครื่องโดยตรง ผู้เขียนโปรแกรมยังจำเป็นต้องเข้าใจโครงสร้างของไมโครโพรเซสเซอร์ที่กำลังเขียนเป็นอย่างดี

 

ภาษาแอสเซมบลี (Assembly Language) หมายถึง ภาษาที่ใช้ในการเขียนโปรแกรมภาษาหนึ่งซึ่งจะทำงานโดยขึ้นกับรุ่นของไมโครโพรเซสเซอร์ หรือ “หน่วยประมวลผล” (CPU) ของเครื่องคอมพิวเตอร์

การใช้ภาษาแอสเซมบลีจำเป็นต้องผ่านการแปลภาษาด้วยคอมไพเลอร์เฉพาะเรียกว่า แอสเซมเบลอร์ (assembler) ให้อยู่ในรูปของรหัสคำสั่งก่อน (เช่น .OBJ) โดยปกติ ภาษานี้ค่อนข้างมีความยุ่งยากในการใช้งาน และการเขียนโปรแกรมเป็นจำนวนบรรทัดมากมากกว่า เมื่อเปรียบเทียบกับการใช้ภาษาระดับสูง เช่น ภาษา C หรือภาษา BASIC แต่จะทำให้ได้ผลลัพธ์การทำงานของโปรแกรมเร็วกว่า และขนาดของตัวโปรแกรมมีขนาดเนื้อที่น้อยกว่าโปรแกรมที่สร้างจากภาษาอื่นมาก จึงนิยมใช้ภาษานี้เมื่อต้องการประหยัดเวลาทำงานของเครื่องคอมพิวเตอร์ และเพิ่มประสิทธิภาพของโปรแกรม

เนื่องจากตัวคำสั่งภายในภาษาอ้างอิงเฉพาะกับรุ่นของหน่วยประมวลผล ดังนั้นถ้ามีการเปลี่ยนแปลงไปใช้กับหน่วยประมวลผลอื่นหรือระบบอื่น (เช่น หน่วยประมวลผล x86 ไม่เหมือนกับ z80) จะต้องมีการปรับแก้ตัวคำสั่งภายในซึ่งบางครั้งอาจไม่สามารถปรับปรุงแก้ไขได้อย่างสมบูรณ์

 

·                         ภาษาระดับสูง (High-level Languages)

ภาษาซี (C programming language) เป็นภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับการพัฒนาขึ้นในช่วงทศวรรษ 1970 โดย เคน ธอมป์สัน (Ken Thompson) และ เดนนิส ริทชี่ (Dennis Ritchie) ขณะทำงานอยู่ที่ เบลล์เทเลโฟน เลบอราทอรี่ สำหรับใช้ในระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกนำไปใช้กับระบบปฏิบัติการอื่น ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่ใช้กันแพร่หลายมากที่สุด ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการทำงาน เนื่องจากมีความสามารถใกล้เคียงกับภาษาระดับต่ำ แต่เขียนแบบภาษาระดับสูง โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาซีจึงทำงานได้รวดเร็ว ภาษาซีเป็นภาษาโปรแกรมที่นิยมใช้กันมากสำหรับพัฒนาระบบปฏิบัติการ,ซอฟต์แวร์ระบบ , ควบคุมไมโครคอนโทรลเลอร์ และเป็นภาษาที่ใช้กันทั่วไปในหลักสูตรวิทยาการคอมพิวเตอร์

ตัวอย่างโปรแกรมที่เขียนด้วยภาษาซี

#include
int main(void)
{
printf(“hello, worldn”);
return 0;
}

 

ภาษาซีพลัสพลัส (C++ programming language) เป็นภาษาโปรแกรมคอมพิวเตอร์อเนกประสงค์ มีโครงสร้างภาษาที่มีการจัดชนิดข้อมูลแบบสแตติก (statically typed) และสนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่ การโปรแกรมเชิงกระบวนคำสั่ง, การนิยามข้อมูล, การโปรแกรมเชิงวัตถุ, และการโปรแกรมแบบเจเนริก (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์ที่นิยมมากภาษาหนึ่งนับตั้งแต่ช่วงทศวรรษ 1990Bjarne Stroustrup จากห้องวิจัยเบลล์ (Bell Labs) เป็นผู้พัฒนาภาษา C++ ขึ้น (เดิมใช้ชื่อ “C with classes”) ในปีค.ศ. 1983 เพื่อพัฒนาภาษาซีดั้งเดิม สิ่งที่พัฒนาขึ้นเพิ่มเติมนั้นเริ่มจากการเพิ่มเติมการสร้างคลาสจากนั้นก็เพิ่มคุณสมบัติต่าง ๆ ตามมา ได้แก่ เวอร์ชวลฟังก์ชัน การโอเวอร์โหลดโอเปอเรเตอร์ การสืบทอดหลายสาย เท็มเพลต และการจัดการเอ็กเซ็พชัน มาตรฐานของภาษาซีพลัสพลัสได้รับการรับรองในปีค.ศ. 1998 เป็นมาตรฐาน ISO/IEC 14882:1998 เวอร์ชันล่าสุดคือเวอร์ชันในปีค.ศ. 2003 ซึ่งเป็นมาตรฐาน ISO/IEC 14882:2003 ในปัจจุบันมาตรฐานของภาษาในเวอร์ชันใหม่ (รู้จักกันในชื่อ C++0x) กำลังอยู่ในขั้นพัฒนา


#include
int main()
{
std::cout << “hello, worldn”;
}

ภาษาซีชาร์ป (C# Programming Language) เป็นภาษาโปรแกรมเชิงวัตถุทำงานบนดอตเน็ตเฟรมเวิร์ก พัฒนาโดยบริษัทไมโครซอฟท์และมีAnders Hejlsbergเป็นหัวหน้าโครงการ โดยมีรากฐานมาจากภาษาซีพลัสพลัสและภาษาอื่นๆ โดยปัจจุบันภาษาซีซาร์ปเป็นภาษามาตรฐานรองรับโดย ECMA และ ISO

ตัวอย่าง Hello world
ตัวอย่างต่อไปนี้ คือตัวอย่างโปรแกรม Hello world ใน C#:

public class ExampleClass
{
public static void
Main()
{
System.Console.WriteLine(“Hello, world!”);
}
}
ผลของการทำงานคือการเขียนคำว่า Hello, world! บนเครื่อง (Console) ที่ใช้งาน. ในแต่ละบรรทัดมีความหมายดังนี้:

public class ExampleClass
บรรทัดนี้คือการประกาศ Class, public หมายถึงวัตถุที่สร้างในโครงการ (Project) อื่นๆ สามารถเข้าใช้งาน Class นี้ได้ ไม่จำกัด. ข้อมูลต่างๆ ที่อยู่ผ่านใต้หน่วยของบรรทัดนี้ จะใช้ในการทำงานของ Class นี้

public static void Main()
บรรทัดนี้เป็นจุดที่ใช้ในการเริ่มการทำงานของโปรแกรม เมื่อโปรแกรมทำงาน โดยสามารถเรียกใช้จากโปรแกรมอื่นได้โดยการใช้ไวยากรณ์ ExampleClass.Main(). (public static void เป็นส่วนที่ใช้ในการทำงาน ซึ่งต้องเรียนรู้ในการเขียนขั้นสูง)

System.Console.WriteLine(“Hello, world!”);
ในบรรทัดนี้ เป็นการทำงาน เพื่อแสดงผลออกมา Console คือโปรแกรมระบบ, ซึ่งก็คือ โปรแกรมระบบแบบสั่งคำสั่งที่ละบรรทัด (เช่น DOS) ที่สามารถรับข้อมูลและแสดงผลเป็นข้อความได้. จากที่เราเขียนโปรแกรมจะทำการเรียก Console โดยใช้คำสั่ง WriteLine, ซึ่งทำให้สามารถส่งค่าข้อความออกมาแดสงผลทางโปรแกรมระบบได้

ภาษาปาสกาล

ภาษาปาสกาล (Pascal programming language) เป็นภาษาโปรแกรมที่ใช้กันอย่างกว้างขวาง โดยเฉพาะในวงการศึกษา คิดค้นขึ้นโดย นิเคลาส์ แวร์ท (Niklaus Wirth) นักวิทยาศาสตร์คอมพิวเตอร์ชาวสวิตเซอร์แลนด์ ในปี ค.ศ. 1970 เพื่อช่วยในการเรียนการสอนการเขียนโปรแกรมโครงสร้าง (structured programming). ภาษาปาสกาลนั้นพัฒนาขึ้นมาจาก ภาษาอัลกอล (Algol), และชื่อปาสกาลนั้น ตั้งเพื่อเป็นเกียรติแก่ แบลส ปาสกาล (en:Blaise Pascal). นอกเหนือจากภาษาปาสกาลแล้ว, แวร์ทได้พัฒนา ภาษาโมดูลาทู (Modula-2) และ โอบีรอน (Oberon) ซึ่งมีโครงสร้างคล้ายกับภาษาปาสกาล แต่สามารถรองรับการเขียนโปรแกรมเชิงวัตถุ (object-oriented programming).

โครงสร้างอย่างง่าย
โปรแกรมภาษาปาสกาลทุกอัน จะเริ่มต้นด้วยคีย์เวิร์ด Program และส่วนของโค้ดจะอยู่ระหว่างคีย์เวิร์ด Begin และ End ภาษาปาสกาลนั้นไม่สนใจความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก (“end” มีผลเท่ากับ “End”). เซมิโคลอน ( ;) ใช้เมื่อจบคำสั่ง และ จุลภาค (.) ใช้เมื่อจบโปรแกรม (หรือยูนิต)

program HelloWorld(input, output);
begin
WriteLn(‘Hello, World!’);
end.

ภาษาเบสิก

ภาษาเบสิก (BASIC programming language) เป็นภาษาโปรแกรมที่ออกแบบมาให้ใช้งานได้ง่าย และยังได้รับความนิยมมาจนถึงทุกวันนี้ เบสิกออกแบบมาให้ใช้กับคอมพิวเตอร์ตามบ้าน

ชื่อภาษาเบสิก หรือ BASIC ย่อมาจาก Beginner’s All-purpose Symbolic Instruction Code ต้องเขียนด้วยตัวพิมพ์ใหญ่เสมอ

บริษัทไมโครซอฟท์ได้นำภาษาเบสิกมาปรับปรุงให้ทันสมัย และพัฒนาเครื่องมือพัฒนาโปรแกรม Visual Basic ทำให้เบสิกได้รับความนิยมในการพัฒนาโปรแกรมยุคใหม่ รุ่นล่าสุดของวิชวลเบสิกเรียกว่า VB.NE

ประวัติของภาษา Basic

ภาษา Basic ตัวแรก ถูกคิดค้นเมื่อปี 1963 โดย นาย John Kemery และ นาย Thomas Kurtz Dartmouth College และบรรดานักเรียนนักศึกษาในความดูแลของพวกเขา ซึ่งหลายปีต่อมา ภาษา Basic ฉบับนี้ได้ชื่อเรียกอีกอย่างหนึ่งว่า Dartmouth BASIC.

ท่านสามารถดูการพัฒนา จาก Basic สู่ VB.NET

ภาษา Basic พื้นฐาน

ภาษา Basic นั้นเป็นโปรแกรมที่เป็นพื้นฐานสำหรับหัดเขียนโปรแกรมก็ว่าได้ เนื่องจากเป็นภาษาที่เป็นคำพูดของคนเราทั่วไป เช่น ดังนี้

ตัวอย่างที่ 1.1 การใช้คำสั่ง Print

    PRINT “Hello World!”

         

เครื่องจะประมวลผลและแสดงผลออกมาเป็น

    Hello World!

ภาษาฟอร์แทรน (FORTRAN)

ภาษาฟอร์แทรน (FORTRAN – FORmula TRANslation) จัดได้ว่าเป็นภาษาระดับสูงภาษาแรกของโลก พัฒนาในปี ค.ศ. 1954 โดยทีมนักคอมพิวเตอร์ บริษัท ไอบีเอ็ม (IBM) นำทีมโดย จอห์น แบคคัส (John Backus) โดยแนะนำออกมาสองรุ่น คือ FORTRAN II และ FORTRAN IV ต่อมาได้พัฒนาภาษา เป็นมาตรฐานรุ่นแรก เรียกว่า FORTRAN-66 อย่างไรก็ตาม ยังมีข้อบกพร่อง อีกหลายประการ เช่น ไม่สามารถกำหนดชนิดข้อมูล ไม่สามารถทำงานกับ ข้อมูลประเภทสายอักขระ และไม่มีคำสั่งที่สามารถกำหนด โครงสร้างได้เหมาะสม จึงมีการปรับปรุงแก้ไข และออกมาเป็น FORTRAN-77 และ FORTRAN-88 ซึ่งยังมีใช้จนถึงปัจจุบัน

ตัวอย่างโปรแกรม
programme
cc
integer int
int = 12
write(*,*) ‘The value of int is’,
+ int
end
stop

 

ภาษาจาวา (Java programming language) เป็นภาษาโปรแกรมเชิงวัตถุ พัฒนาโดย เจมส์ กอสลิง และวิศวกรคนอื่นๆ ที่ ซัน ไมโครซิสเต็มส์ ภาษาจาวาถูกพัฒนาขึ้นในปี พ.ศ. 2534 (ค.ศ. 1991) โดยเป็นส่วนหนึ่งของ โครงการกรีน (the Green Project) และสำเร็จออกสู่สาธารณะในปี พ.ศ. 2538 (ค.ศ. 1995) ซึ่งภาษานี้มีจุดประสงค์เพื่อใช้แทนภาษาซีพลัสพลัส (C++) โดยรูปแบบที่เพิ่มเติมขึ้นคล้ายกับภาษาอ็อบเจกต์ทีฟซี (Objective-C) แต่เดิมภาษานี้เรียกว่า ภาษาโอ๊ก (Oak) ซึ่งตั้งชื่อตามต้นโอ๊กใกล้ที่ทำงานของ เจมส์ กอสลิง แต่ว่ามีปัญหาทางลิขสิทธิ์ จึงเปลี่ยนไปใช้ชื่อ “จาวา” ซึ่งเป็นชื่อกาแฟแทน

และแม้ว่าจะมีชื่อคล้ายกัน แต่ภาษาจาวาไม่มีความเกี่ยวข้องใด ๆ กับภาษาจาวาสคริปต์ (JavaScript) ปัจจุบันมาตรฐานของภาษาจาวาดูแลโดย Java Community Process ซึ่งเป็นกระบวนการอย่างเป็นทางการ ที่อนุญาตให้ผู้ที่สนใจเข้าร่วมกำหนดความสามารถในจาวาแพลตฟอร์มได้

ภาษาโปรล็อก (Prolog)

ภาษาโปรล็อก (Prolog) เป็นภาษาสำหรับการเขียนโปรแกรมเชิงตรรกะ ได้ชื่อมาจาก PROgrammation en LOGique (logic programming) สร้างขึ้นโดย Alain Colmerauer ราว ค.ศ. 1972 ภาษาโปรล็อกเกิดจากความพยายามที่จะสร้างภาษาที่อาศัยวิธีการทางตรรกศาสตร์ แทนที่จะกำหนดคำสั่งอย่างละเอียดให้กับคอมพิวเตอร์

ภาษาโปรล็อกถูกนำไปใช้ในโปรแกรมสำหรับปัญญาประดิษฐ์ และภาษาศาสตร์เชิงคำนวณ (computational linguistics) โดยเฉพาะการประมวลผลภาษาธรรมชาติ ไวยากรณ์และความหมายของภาษานั้นเรียบง่ายและชัดเจน (เป้าหมายแรกของภาษาคือเป็นเครื่องมือสำหรับนักภาษาศาสตร์ที่ไม่รู้คอมพิวเตอร์) งานวิจัยจำนวนมากที่ทำให้เกิดการพัฒนาภาษาโปรล็อกในปัจจุบันนั้น เป็นผลมาจากโครงการระบบคอมพิวเตอร์ยุคที่ห้า (fifth generation computer systems project – FGCS) ซึ่งเลือกรูปแบบหนึ่งของภาษาโปรล็อกเป็นภาษาแก่น (Kernel Language) ของระบบปฏิบัติการ

ภาษาโปรล็อกมีพื้นฐานมาจากแคลคูลัสภาคแสดง (predicate calculus) หรือเรียกเต็ม ๆ ว่า แคลคูลัสภาคแสดงอันดับที่หนึ่ง (first-order predicate calculus) โดยจำกัดให้ใช้เฉพาะอนุประโยคของฮอร์น (Horn clause) การดำเนินการของโปรแกรมโปรล็อก ก็คือการประยุกต์วิธีพิสูจน์ทฤษฎีบทโดยใช้รีโซลูชันอันดับหนึ่ง (first-order resolution) แนวคิดพื้นฐานที่เกี่ยวข้องได้แก่ การทำให้เท่ากัน (unification), การเรียกซ้ำจากส่วนท้าย (tail recursion), การย้อนรอย (backtracking)

แบบชนิดข้อมูล

ภาษาโปรล็อกไม่มีแบบชนิดข้อมูลเหมือนกับภาษาโปรแกรมทั่ว ๆ ไป หัวข้อนี้จะพูดถึงศัพท์ของส่วนย่อยของภาษาแทน

อะตอม

อะตอม (atom) คือ ค่าคงที่ซึ่งเขียนแทนด้วยข้อความ โดยอะตอมคือลำดับที่ประกอบด้วย ตัวอักษร ตัวเลข เส้นใต้อักขระ (underscores) และจะต้องขึ้นต้นด้วยตัวพิมพ์เล็ก โดยปกติแล้วถ้าต้องการอะตอมที่ใช้เครื่องหมายพิเศษ จะเขียนเครื่องหมายอัญประกาศเดี่ยว (‘) กำกับไว้ เช่น ‘+’ เป็น อะตอม แต่ + เป็นตัวดำเนินการ

ตัวเลข

ระบบภาษาโปรล็อกส่วนใหญ่จะไม่แบ่งแยกระหว่างเลขจำนวนเต็ม กับเลขจำนวนจริง

ตัวแปร

ตัวแปรจะแสดงด้วยสายอักขระที่ประกอบด้วย ตัวอักษร ตัวเลข และเส้นใต้อักษร โดยจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ ตัวแปรในภาษาโปรล็อกไม่ใช่ที่เก็บข้อมูล แต่จะมีลักษณะคล้ายรูปแบบ (pattern) ซึ่งกำหนดไว้ในเรื่องการทำให้เท่ากัน

ตัวแปรนิรนาม (anonymous variable) จะเขียนโดยใช้ เครื่องหมายเส้นใต้อักษรเพียงตัวเดียว (_)

พจน์

พจน์ (term) ใช้แทนข้อมูลที่มีความซับซ้อน ประกอบด้วย ส่วนหัว (head) เป็นอะตอม เรียกว่า ฟังก์เตอร์ (functor) และพารามิเตอร์ต่างๆ (ไม่กำหนดประเภท) จำนวนพารามิเตอร์จะเรียกว่า อะริดี (arity) พจน์สามารถเขียนแทนโดยใช้เพียงส่วนหัวและอะริดี โดยเขียนเป็น ฟังก์เตอร์/อะริตี

ลิสต์

ลิสต์ไม่ใช่ข้อมูลแบบเดี่ยว แต่เป็นโครงสร้างที่นิยามแบบเรียกซ้ำ (โดยใช้พจน์ ‘.’/2) คือ

1.        อะตอม [] ใช้แทนลิสต์ว่าง

2.        ถ้า T เป็นลิสต์ และ H เป็นส่วนย่อย จะใช้พจน์? ‘.’(H,T) แทนลิสต์

ส่วนย่อยแรก เรียกว่าส่วนหัว (H) จะตามด้วยส่วนที่เหลือของลิสต์ ที่เรียกว่าส่วนหาง (T หรือ tail) เช่น ลิสต์ [1,2,3] จะเขียนแทนด้วย ‘.’(1, ‘.’(2, 3)) ตามไวยากรณ์ของภาษาแล้วอาจจะเขียนลิสต์ว่า [H|T] วิธีนี้เป็นที่นิยมมากกว่าการใช้ ‘.’ การประมวลผลข้อมูลในลิสต์ จะทำโดยประมวลผลข้อมูลส่วนหัวก่อน แล้วค่อยทำส่วนที่เหลือ โดยใช้การเรียกซ้ำ

ลิสต์สามารถเขียนได้หลายแบบ ตามความสะดวกของโปรแกรมเมอร์

·                         เขียนส่วนย่อยทุกตัว: [abc, 1, f(x), Y, g(A,rst)]

·                         เขียนส่วนแรกตัวเดียว: [abc | L1]

·                         เขียนส่วนแรกหลายตัว: [abc, 1, f(x) | L2]

·                         เขียนเป็นการขยายของพจน์: ‘.’(abc, ‘.’(1, ‘.’(f(x), ‘.’(Y, ‘.’(g(A,rst), [])))))

สายอักขระ

สายอักขระจะเขียนอยู่ในเครื่องหมายอัญประกาศคู่ ซึ่งภายในจะแทนด้วยลิสต์ของรหัสแอสกี

          ผังงาน (Flowchart) คือ รูปภาพหรือสัญลักษณ์ ที่ใช้เขียนแทนคำอธิบาย ข้อความ
 หรือคำพูดที่ใช้ในอัลกอริทึม เพราะการที่จะเข้าใจขั้นตอนได้ง่ายและตรงกันนั้น  การใช้คำพูดหรือข้อความอาจทำได้ยากกว่าการใช้รูปภาพหรือสัญลักษณ์ ผังงานสามารถแบ่งได้เป็น 2  ประเภทใหญ่ ๆ คือ

 1. ผังงานระบบ (System Flowchart)
          เป็นผังงานที่แสดงขั้นตอนการทำงานในระบบงานหนึ่ง ๆ ในลักษณะของภาพกว้าง ๆ  แต่จะไม่เจาะลึกลงไปว่าในระบบงานย่อย ๆ นั้นจะมีการทำงานหรือวิธีการทำงานอย่างไร  ผังงานจะแสดงทิศทางการทำงานในระบบ ตั้งแต่เริ่มต้นว่าข้อมูลเกิดขึ้นครั้งแรกที่ใด เก็บอยู่ในรูปแบบใด  และผ่านขึ้นตอนการประมวลผลอย่างไร อะไรบ้าง (แต่จะไม่เน้นถึงวิธีการประมวลผล)  จนสุดท้ายผลลัพธ์ที่ได้เก็บอยู่ในรูปแบบใด
 ตัวอย่างเช่น ผังงานระบบบริหารโรงเรียนแห่งหนึ่ง  ข้อมูลทะเบียนประวัติของนักเรียนจะเริ่มขึ้นครั้งแรกเมื่อมีการับสมัครนักศึกษาใหม่ จากแผนกรับสมัคร  และถือว่าเป็นข้อมูลพื้นฐานไปยังแผนกต่าง ๆ ในโรงเรียน เช่น แผนกปกครอง แผนกวัดผล หรือแผนกทะเบียน  ซึ่งในส่วนของแผนกทะเบียนอาจจะมีการแก้ไขข้อมูลบางอย่าง เช่น มีการแก้ไขชื่อ ที่อยู่ของนักศึกษา ก็ได้
 
 2. ผังงานโปรแกรม (Program Flowchart)
  
        เป็นผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรมซึ่งจะแสดงการทำงานตั้งแต่เริ่มต้น  ในส่วนของการรับข้อมูล การคำนวณหรือการประมวลผล  จนถึงการแสดงผลลัพธ์  ผังงานนี้อาจสร้างจากผังงานระบบ  โดยผู้เขียนผังงานอาจดึงเอาแต่ละจุดที่เกี่ยวข้องกับการทำงานของคอมพิวเตอร์เพื่อนำมาวิเคราะห์ว่า  ถ้าใช้คอมพิวเตอร์ทำงานตรงจุดนั้นเพื่อให้ได้ผลลัพธ์ตามต้องการ ควรจะมีขั้นตอนในการเขียนผังงานอย่างไร  เพื่อให้คอมพิวเตอร์ทำงาน  ซึ่งการเขียนผังงานนี้จะช่วยเพิ่มความสะดวกในการเขียนโปรแกรมของผู้เขียนโปรแกรมได้มาก  เพราะสามารถดูได้ง่ายว่าในแต่ละขั้นตอนการทำงานควรใช้คำสั่งอย่างไร

   ประโยชน์ของผังงาน
 
1. ทำให้เข้าใจและแยกแยะปัญหาต่าง ๆ ได้ง่ายขึ้น
 2. ผู้เขียนโปรแกรมมองเห็นลำดับการทำงาน รู้ว่าสิ่งใดควรทำก่อน สิ่งใดควรทำหลัง
 3. สามารถหาข้อผิดพลาดของโปรแกรมได้ง่าย
 4. ทำให้ผู้อื่นเข้าใจการทำงานได้ง่ายกว่าการดูจาก source code
 5. ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ผู้อื่นสามารถเรียนรู้และเข้าใจได้ง่าย

 ข้อจำกัดของผังงาน
          ผู้เขียนโปรแกรมบางคนไม่นิยมเขียนผังงานก่อนการเขียนโปรแกรม เพราะเห็นว่าเสียเวลา นอกจากนี้แล้ว ยังมีข้อจำกัดอื่น ๆ อีก คือ
1. ผังงานเป็นการสื่อความหมายระหว่างบุคคลกับบุคคลมากกว่าที่สื่อความหมายระหว่างบุคคลกับเครื่อง เพราะผังงานไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทำให้เครื่องไม่สามารถรับและเข้าใจได้ว่าในผังงานนั้นต้องการให้ทำอะไร
2. ในบางครั้ง เมื่อพิจารณาจากผังงาน จะไม่สามารถทราบได้ว่า ขั้นตอนการทำงานใดสำคัญกว่ากัน เพราะทุก ๆ ขั้นตอนจะใช้รูปภาพหรือสัญลักษณ์ในลักษณะเดียวกัน
3. การเขียนผังงานเป็นการสิ้นเปลือง เพราะจะต้องใช้กระดาษและอุปกรณ์อื่น ๆ เพื่อประกอบการเขียนภาพ ซึ่งไม่สามารถเขียนด้วยมืออย่างเดียวได้ และในบางครั้ง การเขียนผังงานอาจจะต้องใช้กระดาษมากกว่า 1 แผ่น หรือ 1 หน้า ซึ่งถ้าเป็นข้อความอธิบายอาจะใช้เพียง 2-3 บรรทัดเท่านั้น

สัญลักษณ์ที่ใช้ในการเขียนผังงาน


หลักในการเขียนผังงาน


          
การเขียนผังงานนั้น ไม่มีวิธีการที่แน่ชัดว่าจะต้องใช้คำสั่งอะไรบ้าง ทั้งนี้ขึ้นอยู่กับลักษณะของงานที่จะทำ ซึ่งลักษณะงานจะมีอยู่ 3 ขั้นตอน คือ การรับข้อมูล (Input) การประมวลผล (Process) และการแสดงผลลัพธ์ (Output)
การศึกษาลำดับขั้นตอนในการทำงานของผังงาน ให้สังเกตจากลูกศรที่แสดงทิศทางการไหลของข้อมูลในผังงานเป็นหลักในการเขียนผังงาน จะต้องคำนึงถึงสิ่งต่าง ๆ ต่อไปนี้
1. ใช้สัญลักษณ์ที่มีรูปแบบเป็นมาตรฐาน
2. ขนาดของสัญลักษณ์ขึ้นอยู่กับความเหมาะสม
3. ควรเขียนทิศทางการไหลของข้อมูล เริ่มจากบนลงล่าง หรือจากซ้ายไปขวา     และควรทำหัวลูกศรกำกับทิศทางด้ว
4. การเขียนคำอธิบายให้เขียนภายในสัญลักษณ์ ใช้ข้อความที่เข้าใจง่าย สั้นและชัดเจน
5. พยายามให้เกิดจุดตัดน้อยที่สุด หรืออาจใช้สัญลักษณ์ที่เรียกว่า “ตัวเชื่อม” (Connector) แทน     เพื่อหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้น
6. หากเป็นไปได้ควรเขียนผังงานให้จบภายในหน้าเดียวกัน
7. ผังงานที่ดีควรเป็นระเบียบเรียบร้อย สะอาด ชัดเจน เข้าใจและติดตามขั้นตอนได้ง่าย
8. จุดเริ่มต้นและสิ้นสุดของงาน ควรมีเพียงจุดเดียว

 ประเภทของผังงาน
 เราสามารถแบ่งผังงานได้เป็น 2 ประเภทใหญ่ คือ
 1. ผังงานระบบ (System Flowchart)
ผังงานระบบจะเป็นการแสดงให้เราเห็นว่า ในระบบหนึ่ง ๆ นั้นมีขั้นตอนในการทำงานอย่างไร ซึ่งจะมองเห็นในลักษณะภาพกว้าง ๆ ของระบบ แต่จะไม่เจาะลึกลงไปว่าในระบบว่าในแต่ละงานนั้นมีการทำงานอย่างไร คือ จะให้เห็นว่าจุดเริ่มต้นของงานเริ่มจากส่วนใด เป็นข้อมูลแบบใด มีการประมวลผลอย่างไร และจะได้ผลลัพธ์เป็นอย่างไรและเก็บอยู่ที่ใด
 2. ผังงานโปรแกรม (Program Flowchart)
ผังงานโปรแกรม หรือ เรียกสั้น ๆ ว่า ผังงาน จะเป็นผังงานที่แสดงให้เห็นถึงลำดับขั้นตอนในการทำงานของโปรแกรม ตั้งแต่การรับข้อมูล การประมวลผล ตลอดจนผลลัพธ์ที่ได้ จะทำให้เขียนโปรแกรมได้สะดวกขึ้น ซึ่งผังงานชนิดนี้อาจสร้างมาจากผังงานระบบ โดยดึงเอาจุดที่เกี่ยวข้องกับคอมพิวเตอร์มาวิเคราห์ว่าจะใช้ทำงานส่วนใดเพื่อที่จะให้ได้มาซึ่งผลลัพธ์ที่ต้องการ
รูปแบบของผังงาน

 ผังงาน มีรูปแบบที่จำกัดอยู่ 3 แบบด้วยกัน คือ

1. รูปแบบเรียงลำดับ (Sequence Structure)
เป็นการทำงานแบบเรียงลำดับ ตั้งแต่ต้นจนจบ เป็นรูปแบบง่าย ๆ ไม่มีการเปรียบเทียบใด ๆ มีทิศทางการไหลของข้อมูลเพียงทางเดียว ซึ่งอาจจะเป็นแบบบนลงล่าง หรือ จากซ้ายไปขวาก็ได้ เช่น การให้คำนวณหาพื้นที่ของสี่เหลี่ยมผืนผ้า จะเขียนเป็นผังงานได้ดังรูป

จากผังงาน เราสามารถเขียนโปรแกรมได้ ตาม syntax ของภาษาที่ใช้ ตัวอย่างโปรแกรมข้างล่างนี้ จะเป็นการเขียนโปรแกรมด้วยภาษา C
#include
void main(void)
{
float a, b, c;
printf(“Enter Width : “);
scanf(“%f”,&a);
printf(“Enter Higth : “);
scanf(“%f”,&b);
c = a * b;
printf(“Area = %.2f”,c);
}

2. รูปแบบที่มีการกำหนดเงื่อนไขหรือให้เลือก (Decision Structure)

รูปแบบนี้จะยากกว่ารูปแบบแรก เพราะจะมีการสร้างเงื่อนไขเพื่อให้เลือกทำงาน ถ้าหากเลือกทางใดก็จะไปทำงานในเงื่อนไขที่เลือก ซึ่งเงื่อนไขที่กำหนดขึ้นนี้จะเขียนอยู่ในสัญลักษณ์ “การตัดสินใจ” เช่น การคำนวณว่าตัวเลขที่รับมานั้นเป็นจำนวนคี่หรือคู่ จะเขียนเป็นผังงานได้ดังรูป

และจากผังงานเราสามารถเขียนเป็นโปรแกรมได้ โดยใช้คำสั่งเกี่ยวกับการตัดสินใจ หรือการเปรียบเทียบ เช่น if – else , switch ตามภาษาที่ท่านใช้เขียนโปรแกรม ในที่นี้เป็นตัวอย่างการใช้ if – else ของภาษา C
#include
void main(void)
{
int a, b;
printf (“Enter Numeric (1 – N) : “);
scanf (“%d”,&a);
if ((a%2) == 1)
printf(“%d is Odd”,a);
else
printf(“%d is Even”,a);
}

3. รูปแบบที่มีการทำงานแบบวนรอบ หรือ loop (Iteration Structure)
การทำงานของรูปแบบนี่ จะเป็นการทำงานซ้ำ ๆ กัน หลาย ๆ ครั้งเท่าที่เราต้องการ (หรืออาจจะทำเพียงครั้งเดียว หรืออาจจะไม่มีการทำงานเลยก็ได้) ซึ่งการทำงานนี้จะขึ้นอยู่กับเงื่อนไขที่กำหนดให้ และจะมีการนำเอาลักษณะของการตัดสินใจมาช่วยว่าจะมีการทำงานซ้ำอีกหรือไม่ เช่น การหาผลบวกของตัวเลข ตั้งแต่ 1-10 จะเขียนเป็นผังงานได้ดังรูป

จากผังงานเราสามารถเขียนเป็นโปรแกรมได้ โดยใช้คำสั่งการวนลูป ในที่นี้จะเป็นตัวอย่างโปรแกรมการใช้ do… while ในภาษา C ซึ่งสามารถที่จะนำไปปรับให้เข้ากับภาษาที่ท่านใช้เขียนได้ ดังตัวอย่าง
ตัวอย่าง การใช้ do…. While
#include
void main(void)
{
int i;
int sum;
i = 1;
sum = 0;
do
{
sum = sum + i;
i++;
}
while (i <=10);
printf(“sum (1-10) = %d”,sum);
}

Posted by man in 10:41:19 | Permalink | No Comments »