วันพฤหัสบดีที่ 29 สิงหาคม พ.ศ. 2556

โครงสร้างโปรแกรมภาษา

โครงสร้างโปรแกรมภาษา
1.ภาษา Pascal
ภาษาปาสคาลเป็นภาษาคอมพิวเตอร์ชั้นสูงที่พัฒนาขึ้นโดย Niklaus Wirth และได้ตั้งชื่อว่าปาสคาล (Pascal) เพื่อให้เกียรติแก่นักวิทยาศาสตร์ชาวฝรั่งเศส ชื่อ Blaise Pascal ภาษาปาสคาล พัฒนามาจากภาษา Algol โดยพัฒนาให้เป็นภาษาสำหรับฝึกหัดเขียนโปรแกรมคอมพิวเตอร์ ภาษาปาสคาลจะมีลักษณะเป็นภาษาคอมพิวเตอร์แบบประมวลความหรือคอมไพเลอร์ (Compiler) เมื่อเทียบกับภาษาคอมพิวเตอร์ชั้นสูงอื่น ๆ จะพบว่าภาษาปาสคาลเป็นภาษาที่มีการวางระบบและจัดรูปแบบที่มีโครงสร้างแน่นอนตายตัว จึงทำให้ภาษาปาสคาลเป็นภาษาที่เหมาะสำหรับการเขียนโปรแกรมโครงสร้าง (Structured Program) มากกว่าภาษาอื่น ๆ ที่ใช้กันอยู่จึงทำให้ได้รับความนิยมและนำมาประยุกต์ใช้งานต่าง ๆ อย่างแพร่หลาย
1.1 โครงสร้างของโปรแกรมภาษาปาสคาล
โปรแกรมในภาษาปาสคาล แบ่งเป็น 3 ส่วนคือ
1. ส่วนหัว (Heading) เป็นการประกาศชื่อของโปรแกรม ขึ้นต้นด้วยคำว่า PROGRAM ตามด้วยชื่อของโปรแกรม และจบบรรทัดด้วย ;
รูปแบบ

PROGRAM ชื่อโปรแกรม (รายชื่ออุปกรณ์);
ตัวอย่าง
PROGRAM EXAM1;
PROGRAM EXAM1(INPUT,OUTPUT);

ข้อสังเกต ชื่ออุปกรณ์ คือ INPUT, OUTPUT หรือชื่อของไฟล์ที่เกี่ยวข้องภายในโปรแกรมถ้าไม่ระบุจะถือว่า INPUT เข้าทาง keyboard และ OUTPUT ออกทางจอภาพ
2. ส่วนข้อกำหนด (Declaration part) คือส่วนตั้งแต่ส่วนหัวไปจนถึงคำว่า BEGIN ของโปรแกรมหลัก และเป็นส่วนที่เรากำหนดค่าต่าง ๆ ดังนี้
2.1 VAR เป็นการกำหนดแบบของข้อมูลให้แก่ตัวแปร
รูปแบบ
VAR รายชื่อตัวแปร : ประเภทของข้อมูล;




ตัวอย่าง

VAR I,J,K : INTEGER;
NAME : STRING;
SALARY : REAL;

2.2 TYPE เป็นการกำหนดแบบของข้อมูลขึ้นใหม่

รูปแบบ

TYPE ชื่อของแบบ = ประเภทหรือค่าของข้อมูล;

ตัวอย่าง

TYPE SCORE = INTEGER;
WEEK = (MON, TUE, WED, THU, FRI);
VAR TEST, MIDTERM, FINAL : SCORE;
DAY : WEEK;

จากตัวอย่างต้องประกาศชื่อแบบของตัวแปรก่อนแล้วจึงประกาศชื่อตัวแปรที่เป็นแบบ
2.3 CONST เป็นการกำหนดค่าคงที่ 

รูปแบบที่ 1

CONST รายชื่อค่าคงที่ = ค่าที่กำหนด;

รูปแบบที่ 2

CONST รายชื่อค่าคงที่ : ประเภทของข้อมูล = ค่าที่กำหนด;



ตัวอย่าง

CONST HEAD = ‘EXAMINATION’;
CONST A = 15;
CONST SALARY : REAL = 8000.00;

2.4 LABEL ใช้คู่กับคำสั่ง GOTO ภายในโปรแกรม

รูปแบบ

LABEL รายชื่อของ LABEL;

ตัวอย่าง

LABEL 256,XXX;

เช่น GOTO 256; GOTO XXX;

3. ส่วนคำสั่งต่าง ๆ (Statement Part) เป็นส่วนสุดท้ายของโปรแกรม ขึ้นต้นด้วย “BEGIN” และปิดท้ายด้วย “END.”

ตัวอย่าง

BEGIN
Statement หรือคำสั่งต่าง ๆ ;
END.





1.2 ชื่อ (Identifier)
ชื่อ คือคำที่ตั้งขึ้นเพื่อกำหนดใช้เป็นชื่อของโปรแกรม โปรแกรมย่อย ตัวแปร แบบของตัวแปร และค่าคงที่
การตั้งชื่อ
1. ตัวอักขระ (character) ที่นำมาใช้ คือ ตัวอักษร ตัวเลข และ (_) Underline
2. จะนำเครื่องหมายใด ๆ มาใช้เป็นชื่อไม่ได้
3. ขึ้นต้นด้วยตัวอักษร หรือขีดล่าง
4. ความยาวของชื่อไม่เกิน 30 ตัว แต่จะมีความหมายเพียง 8 ตัวแรกเท่านั้น
1.3 คำ (Word)
คำในภาษาปาสคาล แบ่งออกเป็น 2 พวก คือ
1. พวกที่เกี่ยวข้องกับข้อมูล ได้แก่ แบบของข้อมูล ตัวแปร และค่าคงที่
2. พวกที่เกี่ยวกับคำสั่ง ได้แก่ คำสงวน (Reserved word) คำมาตรฐาน (Standard word) คำใหม่ (User defined word)
1.4 ข้อมูล (Data)
ภาษาปาสคาล แบ่งประเภทของข้อมูลเป็น 4 แบบ คือ แบบมาตรฐาน แบบผู้เขียนโปรแกรมกำหนด แบบโครงสร้าง และแบบพอยน์เตอร์
แบบมาตรฐาน เป็นข้อมูลพื้นฐานที่ใช้ในโปรแกรมทั่ว ๆ ไป เป็นข้อมูลที่มีค่าเป็นลำดับที่มีค่ามากน้อยตามลำดับ แบ่งเป็น 5 ประเภท
1. Integer เป็นข้อมูลเลขจำนวนเต็ม
2. Real เป็นข้อมูลเลขจำนวนจริงมีทศนิยม
3. Character เป็นข้อมูลตัวอักษร
4. String เป็นข้อมูลของชุดตัวอักษร เช่น String [30] เป็นการะบุค่าของสตริงว่ามีขนาด 30 ตัวอักษร
5. Boolean เป็นข้อมูลที่มีค่าเป็นไปได้ 2 ค่า คือ เป็นจริง (true), เป็นเท็จ (false) ตัวดำเนินการ (operators) ที่ใช้ในภาษาปาสคาล ได้แก่
NOT ให้กลับค่าทางคณิตศาสตร์ของ Boolean เช่น Not true เป็น false
* ให้คูณเลขทางซ้ายกับเลขทางขวา
/ ให้หารโดยเลขทางซ้ายเป็นตัวตั้ง เลขทางขวาเป็นตัวหาร
DIV ให้หารแบบตัดเศษทิ้ง ใช้ได้เฉพาะเลขจำนวนเต็มคู่
MOD ให้หาเศษของการหาร ใช้ได้เฉพาะเลขจำนวนเต็มคู่
AND ให้ความเป็นจริง เมื่อทั้ง 2 กรณีเป็นจริงทั้งคู่
OR ให้ความเป็นจริง เมื่อกรณีใดกรณีหนึ่งเป็นจริง เช่น (X MOD Y = 0) 0R (x-y = 0) ข้อความนี้เป็นจริงเมื่อ X หารด้วย Y ลงตัว หรือเมื่อ X-Y เป็นศูนย์อย่างใดอย่างหนึ่ง หรือทั้ง 2 อย่าง
XOR ให้ความเป็นจริง เมื่อกรณีใดกรณีหนึ่งเป็นจริงเท่านั้น เช่น (X MOD Y Y= 0) XOR(X-Y=0) ข้อความนี้เป็นจริงเมื่อ X หารด้วย Y ลงตัว หรือเมื่อ X-Y เป็น 0 อย่างใดอย่างหนึ่งแต่ไม่ใช่ทั้ง 2 อย่างพร้อมกัน

     แบบผู้เขียนโปรแกรมกำหนดขึ้น ภาษาปาสคาลอนุญาตให้ผู้เขียนโปรแกรมกำหนดรูปแบบของข้อมูลขึ้นมาใช้งานเฉพาะภายในโปรแกรมได้เอง โดยการประกาศไว้ในคำสั่ง VAR หรือ TYPE แบ่งเป็น 2 แบบ
1. กำหนดแบบใหม่ เป็นการกำหนดรูปแบบใหม่ ๆ เพื่อใช้เฉพาะโปรแกรมนั้น ๆ 

ตัวอย่าง
TYPE color = (yellow,blue,red);
VAR dd = color;

ดังนั้น dd เป็นตัวแปรที่มีค่า 3 ค่า คือ yellow, blue, red

2. กำหนดช่วงของค่าข้อมูล เป็นการกำหนดช่วงของค่าของข้อมูลเฉพาะตัวแปรใดตัวแปรหนึ่งที่ใช้ภายในโปรแกรม

ตัวอย่าง
TYPE NUM = 0..50;
VAR X : NUM;

ดังนั้น X จะเป็นตัวแปรที่มีค่าในช่วง 0 ถึง 50
     แบบโครงสร้าง เป็นการนำเอาข้อมูลแบบมาตรฐานหรือข้อมูลที่ผู้เขียนโปรแกรมกำหนดขึ้นมาจัดให้มีระบบ มีโครงสร้างเพื่อใช้งานโดยเฉพาะ การจัดข้อมูลโครงสร้าง แบ่งเป็น 4 ประเภท คือ ข้อมูล Array, set, record และ file
     แบบพอยน์เตอร์ เป็นข้อมูลที่เป็นดัชนีสำหรับระบุข้อมูลอื่น ๆ อีกครั้งหนึ่ง ข้อมูลแบบนี้จะซับซ้อน ค่าของข้อมูลแบบพอยน์เตอร์จะไม่เป็นตัวเลข, ตัวอักษร แต่จะมีค่าเป็น address ในหน่วยความจำ RAM ที่ข้อมูลถูกเก็บอยู่



2. โครงสร้างโปรแกรมภาษา C


โครงสร้างของโปรแกรมภาษาซีแบ่งออกเป็น 3 ส่วน
1. ส่วนหัวของโปรแกรม
     ส่วนหัวของโปรแกรมนี้เรียกว่า Preprocessing Directive ใช้ระบุเพื่อบอกให้คอมไพเลอร์กระทำการ ใด ๆ ก่อนการแปลผลโปรแกรม ในที่นี่คำสั่ง #include <stdio.h> ใช้บอกกับคอมไพเลอร์ให้นำเฮดเดอร์ไฟล์ที่ระบุ คือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกำหนด preprocessing directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ

2. ส่วนของฟังก์ชั่นหลัก
     ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main() ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชั่นนี้อยู่ในโปรแกรมเสมอ จะเห็นได้จากชื่อฟังก์ชั่นคือ main แปลว่า หลักดังนั้น การเขียนโปรแกรมภาษซีจึงขาดฟังก์ชั่นนี้ไปไม่ได้ โดยขอบเขตของฟังก์ชั่นจะถูกกำหนดด้วยเครื่องหมาย { และ } กล่าวคือ การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชั่น main() สามารถเขียนในรูปแบบของ void main(void) ก็ได้ มีความหมายเหมือนกัน คือ หมายความว่า ฟังก์ชั่น main() จะไม่มีอาร์กิวเมนต์ (argument) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชั่น และจะไม่มีการคืนค่าใด ๆ กลับออกไปจากฟังก์ชั่นด้วย

 

 3. ส่วนรายละเอียดของโปรแกรม

เป็นส่วนของการเขียนคำสั่ง เพื่อให้โปรแกรมทำงานตามที่ได้ออกแบบไว้

3.โครงสร้างโปรแกรมภาษา Basic 
(BASIC programming language) เป็นภาษาโปรแกรมที่ออกแบบมาให้ใช้งานได้ง่าย และยังได้รับความนิยมมาจนถึงทุกวันนี้ เบสิกออกแบบมาให้ใช้กับคอมพิวเตอร์ตามบ้าน
ชื่อภาษาเบสิก หรือ BASIC ย่อมาจาก Beginner's All-purpose Symbolic Instruction Code ต้องเขียนด้วยตัวพิมพ์ใหญ่เสมอ
บริษัทไมโครซอฟท์ได้นำภาษาเบสิกมาปรับปรุงให้ทันสมัย และพัฒนาเครื่องมือพัฒนาโปรแกรม Visual Basic ทำให้เบสิกได้รับความนิยมในการพัฒนาโปรแกรมยุคใหม่ รุ่นล่าสุดของวิชวลเบสิกเรียกว่า VB.NET




4.โครงสร้างโปรแกรมภาษา Assembly
ภาษาแอสเซมบลีจริง ๆ แล้วก็คือภาษานีโนนิคที่มีการเพิ่มเติมคำสั่งพิเศษในการจัดการเรื่องการอ้างอิงหน่วยความจำนั่นเอง ภาษาแอสเซมบลีจัดเป็นภาษาระดับต่ำภาษาหนึ่ง ซึ่งสัญลักษณ์ที่ใช้มักจะถูกกำหนดโดยผู้ผลิต IC หน่วยประมวลผลกลาง ดังนั้นเมื่อมีการเปลี่ยนหน่วยประมวลผลกลาง ภาษาแอสเซมบลีที่ใช้ ก็จะต้องเปลี่ยนตามไปด้วย เมื่อเราพัฒนาโปรแกรมเป็นภาษาแอสเซมบลีแล้ว ก็ต้องนำไป Assembling ด้วยตัวแปลภาษาชื่อ Assembler ซึ่งจะแปลภาษาแอสเซมบลีให้เป็นภาษาเครื่องอีกทีหนึ่ง
aaaaaหน่วยควบคุมของคอมพิวเตอร์ที่อยู่ในซีพียู ทำการอ่านคำสั่งจากหน่วยความจำมาแปลความหมายและกระทำตาม คำสั่งคอมพิวเตอร์พื้นฐานที่สุดเรียกว่า ภาษาเครื่อง (machine langauge) ภาษาเครื่องมีลักษณะเป็นรหัสที่ใช้ตัวเลขฐานสอง ตัวเลขฐานสองเหล่านี้แทนชุดรหัสคำสั่ง คอมพิวเตอร์เครื่องหนึ่งมีคำสั่งที่ใช้ได้หลายร้อยคำสั่ง แต่ละคำสั่งจะมีความหมายเฉพาะ เช่น คำสั่งนำข้อมูลที่มีค่าเป็น 3 จากหน่วยความจำตำแหน่งที่ 8000 มาบวกกับข้อมูลที่มีค่าเป็น 5 ในตำแหน่งที่ 8001 ผลลัพธ์ที่ได้ให้เก็บไว้ในหน่วยความจำตำแหน่งที่ 8002 เมื่อเขียนคำสั่งเป็นภาษาเครื่องจะมีลักษณะเป็นตัวเลขฐานสองเรียงต่อกันเป็นจำนวนมาก ซึ่งเข้าใจได้ยาก จึงมักใช้ตัวอักษรแทนรหัสภาษาเครื่องเหล่านี้ ดังตัวอย่าง
แอสเซมบลี
ภาษาเครื่อง
LD A,(8000)
00111010,00000000,10000000
LD B,A
01000111
LD A,(8001)
00111010,00000001,10000000
ADD A,B
10000000
LD (8002),A
00110010,00000010,10000000
รูปที่ 2.9 แสดงตัวอย่างการแทนคำสั่งภาษาเครื่อง



aaaaaรหัสภาษาเครื่องเมื่อเก็บอยู่ในหน่วยความจำของคอมพิวเตอร์จะมีลักษณะเรียงต่อกันไป สมมติให้ส่วนของโปรแกรมเก็บในหน่วยความจำตำแหน่งเริ่มจาก 1000 และข้อมูลเก็บไว้ที่ตำแหน่งเริ่มจาก 8000 ดังรูปที่ 2.10
แอสแซมบลี
ตำแหน่ง
หน่วยความจำ
บิตพาริตี
LD A,(8000)
1000
00111010
0

1001
00000000
0

1002
10000000
1
LD B,A
1003
01000111
0
LD A,(8001)
1004
00111010
0

1005
00000001
1

1006
10000000
1
ADD A,B
1007
10000000
1
LD (8002),A
1008
00110010
1

1009
00000010
1

1010
10000000
1

.
.
.


5. โครงสร้างโปรแกรมภาษา  Java
     1. เครื่องหมาย ในการควบคุม Structure
          1.1 Comment คือข้อความที่แทรกเข้าไปในโปรแกรม แต่ไม่มีผลต่อการทำงานของโปรแกรม เช่นในกรณีที่เราต้องการอธิบาย Source code ไว้ใน โปรแกรม วิธีการคือ
- comment ทีละ บรรทัด ใช้เครื่องหมาย // ตามด้วยข้อความที่ต้องการ comment เช่น
//comment comment
- comment แบบครอบทั้งข้อความ ใช้เครื่องหมาย /* ข้อความที่ต้องการ comment */ เช่น
/*
Comment
Comment
*/
1.2 Keyword คือคำที่ถูกกำหนดไว้ใช้เองแล้วในภาษา Java ไม่สามารถนำมาใช้ในการตั้งชื่อภายใน โปรแกรมได้ ตัวอย่างเช่น class,boolean,char เป็นต้น

1.3 Identifiers คือชื่อที่ผู้เขียนตั้งขึ้นมา เพื่อใช้แทนอะไรก็ได้ไม่ว่าจะเป็น method ,ตัวแปร หรือ class ชื่อที่ถูกต้องควรประกอบด้วย ตัวอักษร ,ตัวเลข ,_,$ และจะต้องขึ้นต้นด้วย ตัวอักษรเท่านั้น

1.4 Separators คือ อักษร หรือ เครื่องหมายที่ใช้แบ่งแยกคำในภาษา มีดังต่อไปนี้
- เครื่องหมาย () ใช้สำหรับ
1. ต่อท้ายชื่อ method ไว้ให้ใส่ parameter
เช่น private void hello( );
2. ระบุเงื่อนไขของ if ,while,for ,do
เช่น if ( i=0 )
3. ระบุชื่อชนิดข้อมูลในการ ทำ casting
เช่น String a=( String )x;
- เครื่องหมาย{ }ใช้สำหรับ

กำหนดขอบเขตของ method แล class
เช่น class A{
}
Private void hello(){
} 
2. กำหนดค่าเริ่มต้นให้ กับตัวแปร Array
เช่น String a[]={"A","B","C"};

- เครื่องหมาย [ ] ใช้สำหรับ
1. กำหนดตัวแปรแบบ Array
เช่น String a[ ];
2. กำหนดค่า index ของตัวแปร array
เช่น a[ 0 ]=10;
- เครื่องหมาย ; ใช้เพื่อปิดประโยค
เช่น String a ;
- เครื่องหมาย , ใช้สำหรับ
1. แยกชื่อตัวแปรในประโยค
เช่น String a , b , c;
- เครื่อง หมาย . ใช้สำหรับ
1. แยกชื่อ package,subpackage และชื่อ class
เช่น package com.test.Test1;
2. ใช้เพื่อเรียกใช้ ตัวแปร หรือ method ของ Object
เช่น object.hello();



6. โครงสร้างโปรแกรมภาษา COBOL
ภาษาโคบอล (COBOL : Common Business Oriented Language) คือภาษาคอมพิวเตอร์สำหรับใช้ในงานธุรกิจภาษาแรกของโลก พัฒนาในปีค.ศ. 1962 โดยคณะกรรมการโคดาซิล (The Conference on Data Systems Languages - CODASYL) มีจุดเด่นคือ สามารถใช้งานแฟ้มข้อมูลได้หลายแบบ กำหนดโครงสร้างข้อมูลได้สะดวก มีลักษณะการเขียนโปรแกรม แบบเอกสารอธิบายโปรแกรม ช่วยให้นักพัฒนารุ่นถัดไปเข้าใจได้ง่าย
การเขียนโปรแกรมภาษา COBOL เป็นภาษาที่ง่ายมากภาษาหนึ่ง เพราะไม่มีลูกเล่นให้ใช้มาก ๆ เหมือนพวก VB, C, Pascal หรือ dBase หน้าที่หลักของ COBOL คืออ่านข้อมูลจากแฟ้มมาประมวลผลทางธุรกิจเป็นหลัก สำหรับ ผู้เรียนมือใหม่ อาจบอกว่าภาษานี้ยาก เพราะพวกเขาอาจไปยึดติดกับการจดจำ division ต่าง ๆ ว่ามีอะไรบ้าง ซึ่งสิ่งเหล่านั้นเป็นเพียงหน้ากาก มิใช่ concept ของภาษา ถ้ามีคู่มือสักเล่ม ก็จะเข้าใจ และแกะหน้ากากเหล่านั้นออกได้ แล้วก้าวให้ลึกเข้าไปสู่ตัวภาษาได้โดยง่าย

ตัวอย่าง : การแสดงผลอย่างง่าย
:: ให้เขียนโปรแกรมพิมพ์เลข 5 บนจอภาพ
:: print number 5 on screen
ใน COBOL รุ่นที่ผมใช้อยู่ไม่ต้องเขียนให้ครบทุก division ก็ compile แล้วสั่งประมวลผลได้
อย่างลืมว่า procedure เริ่มหลักที่ 8 และ display เริ่มหลักที่ 12 เพราะเป็นกฎเหล็กของภาษา 
รหัสต้นฉบับ
procedure division.
display 5.










ตัวอย่าง : ผ่าน หรือตก
:: รับค่าไปเปรียบเทียบ แล้วพิมพ์ pass หรือ fail
:: accept number and compare to display "pass" or "fail"
รหัสต้นฉบับ
working-storage section.
01 s   pic 99.
procedure division.
accept s.
if s > 50  display "pass".
if s <= 50 display "fail".
stop run.


working-storage section.
01 s   pic 99.
procedure division.
accept s.
if s > 50 
  display "pass"
else
  display "fail".
stop run.