Make your own free website on Tripod.com

หน่้วยที่ 1
เรื่อง โครงสร้างของโปรแกรมภาษาปาสคาล



     ภาษาปาสคาลเป็นภาษาคอมพิวเตอร์ชั้นสูงที่พัฒนาขึ้นโดย 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 ที่ข้อมูลถูกเก็บอยู่


แบบฝึกหัด
เรื่องภาษาปาสคาล


1. โครงสร้างของภาษาปาสคาลแบ่งเป็นกี่ส่วน อะไรบ้าง
2. จงบอกกฎการตั้งชื่อในภาษาปาสคาล
3. จงตั้งชื่อตัวแปรต่อไปนี้
3.1 เก็บจำนวน น.ศ.ชาย, น.ศ.หญิง
3.2 เก็บยอดรวมสินค้า
3.3 เก็บราคาสินค้า
4. ให้กำหนดแบบข้อมูลแก่ตัวแปรในข้อ 3
5. ข้อมูลแบ่งเป็นกี่ประเภท อะไรบ้าง