ก่อนที่จะเริ่มต้นเขียนโปรแกรมไม่ว่าจะเป็นภาษาใดก็ตาม ควรจะต้องมีการศึกษาองค์ประกอบพื้นฐานซึ่งถือว่าเป็นหน่วยย่อยที่สุดของภาษาแต่ละภาษานั้น สำหรับภาษาปาสคาลมีองค์ประกอบพื้นฐานต่างๆที่ควรจะต้องรู้จักก่อนเขียนโปรแกรมดังนี้ 1 ตัวอักขระ(Character)2 ชื่อ(Identifiers)3 คำสงวน(Reserved Words)4 ชื่อมาตรฐาน(Standard Identifiers)5 ข้อมูลแบบพื้นฐาน(Simple Data Types)6 ค่าคงที่(Constans)7 ตัวแปร(Variables)8 นิพจน์(Expressions)9 ประโยคคำสั่ง(Statements)10 โพรซิเจอร์ละฟังก์ชัน(Procedures and Functions) ตัวอักขระ(Character) หมายถึง สัญลักษณ์ต่างๆที่ไม่สามารถนำไปใช้ในการคำนวณได้แบ่งออกได้เป็น 3 ประเภทคือ ตัวเลข(numeric) ได้แก่เลขฐานสิบ 0 ถึง 9 ตัวอักษร(Alphabetic) ได้แก่ ตัวอักษรภาษาอังกฤษ A ถึง Z สัญลักษณ์พิเศษ(Special Symbol)ได้แก่เครื่องหมายทางคณิตศาสตร์ และสัญลักษณ์ต่างๆเช่น + . < ( [- : < ) ]* ; > (* / , > *):= ‘ <> {= ^ .. } หมายเหตุ 1 ในบางระบบคอมพิวเตอร์ อาจใช้เครื่องหมาย (* และ *) และ { และ } ตามลำดับ หรือ อาจใช้ (. และ .) แทน [ และ ] ตามลำดับ2 สัญลักษณ์พิเศษบางตัวอาจประกอบขึ้นจากสัญลักษณ์พิเศษสองตัวมาประกอบกันเช่น := <= >= <> เป็นต้น ชื่อ(Identifiers) เป็นการกำหนดชื่อต่างๆเช่น ชื่อค่าคงที่ ชื่อตัวแปร ชื่อโปรแกรม ชื่อ ฟังก์ชัน ชื่อประเภทข้อมูล ชื่อฟิลด์ในเรคคอร์ด ชื่อยูนิต หรือชื่อมาตรฐาน เพื่อนำไปใช้งานในโปรแกรม ซึ่งเป็นชื่อที่ผู้เขียนโปรแกรมกำหนดขึ้นมาการกำหนดชื่อมีกฎเกณฑ์ดังต่อไปนี้ ประกอบด้วยตัวอักษรตั้งแต่ A ถึง Z หรือตัวเลขตั้งแต่ 0 ถึง 9 ที่ไม่มีสัญลักษณ์พิเศษอื่นๆอยู่ ขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ (ห้ามเป็นตัวเลข) และตัวถัดไปอาจเป็นตัวเลข ตัวอักษร หรือ เครื่องหมาย Underscore(_)ก็ได้ ตัวอักษรตัวใหญ่กับเล็กจะถือว่าเหมือนกัน เช่น Num กับ num จะถือว่าเป็นชื่อเดียวกัน ชื่อตัวแปรจะมีความยาวได้ไม่เกิน 255 ตัวอักขระ ชื่อจะต้องไม่เป็นคำสงวน(Reserve word)เช่น begin end if คำสงวน(Reserved Word) เป็นคำเฉพาะที่ภาษาปาสคาลได้สร้างหรือกำหนดขึ้นมา เพื่อใช้ในตัวภาษาโดยเฉพาะ ซึ่งผู้เขียนโปรแกรมไม่สามารถนำไปกำหนดเป็นชื่อ(Identifires) ได้เช่น begin ไม่สามารถนำไปกำหนดเป็นตัวแปร หรือชื่อโปรแกรมได้เป็นต้น ในภาษาปาสคาล ถ้าเป็นคำสงวน มักนิยมเขียนด้วยตัวอักษรใหญ่ เพื่อให้มีความแตกต่างจากชื่ออื่นๆตัวอย่างคำสงวน
And end nil set array file not then begin for ofTo case function or type const goto packed untilDiv if procedure var do in program while downto Label record with else mod repeat |
ชื่อมาตรฐาน(Standard Identifiers) เป็นชื่อที่ภาษาปาสคาลได้สร้างหรือกำหนดขึ้นมาให้มีคุณสมบัติเฉพาะอย่าง เพื่อให้ผู้เขียนโปรแกรมสามารถนำไปใช้งานได้ โดยชื่อมาตรฐานเหล่านี้อาจเป็นชนิดข้อมูลหรือโพรซีเจอร์หรือฟังก์ชัน เช่น integer คือชื่อมาตรฐานของภาษาปาสคาลที่มีคุณสมบัติคือเป็นชนิดข้อมูลเลขจำนวนเต็มตัวอย่างของชื่อมาตรฐาน
Abs false pack sin arctan get page sqr boolean inputPred sqrt char integer put succ cos maxint readln true disposeNew real trunc eof odd reset unpack eoln ord rewrite writeExp output round writeln |
ข้อมูลแบบพื้นฐาน(Simple Data types) ภาษาปาสคาลมีข้อมูลพื้นฐานหลายแบบด้วยกัน ได้แก่ integer real character string boolean จะได้กล่าวถึงข้อมูลพื้นฐานในแต่ละแบบพอสังเขปก่อนดังนี้ ข้อมูลแบบจำนวนเต็ม(integer)หมายถึงตัวเลขที่มีค่าเป็นเลขจำนวนเต็ม ไม่มีเศษเหลือทศนิยมซึ่งมีค่าได้ตั้งแต่ -32768 ถึง 32767 (สำหรับเครื่องไมโครคอมพิวเตอร์)ได้แก่ เลขจำนวนเต็มบวก เลขจำนวนเต็มลบ และเลขฐานเต็มศูนย์ ข้อมูลแบบเลขจำนวนจริง(real)หมายถึงชุดของตัวเลขที่ประกอบด้วยตัวเลข จุดทศนิยม ตัวเลขหลังจุดทศนิยม รวมทั้งเครื่องหมายบวกหรือลบขอบเขตของเลขจำนวนจริงนี้จะอยู่ที่ค่า ระหว่าง 1*10-38 และ 1*1038 ซึ่งจะสามารถเขียนเลขจำนวนจริงนี้ให้อยู่ในรูปแบบของเลขยกกำลัง(Exponent)โดยใช้ตัวอักษร E เป็นสัญลักษณ์ที่แสดงการคูณ ข้อมูลแบบอักขระ(Character)ได้แก่ตัวอักขระเพียง 1 ตัว ที่อยู่ภายในเครื่องหมาย Single Quote หรือ apostrophes(‘’) ซึ่งอาจเป็นตัวอักษร หรือตัวเลขหรือสัญลักษณ์พิเศษต่างๆและเป็นข้อมูลที่ไม่สามารถนำไปคำนวณไดๆได้ เช่น ‘A’ ‘2’ ‘*’ ‘*’ เป็นต้น ข้อมูลแบบสตริง(string)ได้แก่กลุ่มของตัวอักขระ(Character) ที่นำนาเขียนเรียงกันอยู่ภายในเครื่องหมาย ‘ ’ และไม่สามารถนำไปคำนวณใดๆได้ ข้อมูลชนิดนี้มีความยาวสูงสุดถึง 255 ตัวอักขระ หมายเหตุ ในกรณีที่ต้องการให้ข้อความสตริงมีเครื่องหมาย apostrophes(‘) อยู่ด้วยจะต้องใส่เครื่องหมาย apostrophes อีกหนึ่งตัว ติดกับเครื่องหมาย apostrophes ที่ต้องการนอกจากนี้สตริงที่ไม่มีตัวอักขระใดๆ อยู่เลย(‘’) จะเรียกว่า Null string ข้อมูลแบบตรรกศาสตร์(boolean)เป็นข้อมูลที่แสดงถึงการตัดสินใจ ว่าข้อความหรือนิพจน์(Expression)นั้นจริงหรือเท็จ (true or false)ข้อมูลแบบตรรกศาสตร์มีค่าข้อมูลอยู่ 2 แบบ คือ true กับ false ตัวอย่างเช่น เลขจำนวนเต็ม 10 เป็นเลขคู่ ใช่หรือไม่ คำตอบคือ true ค่าคงที่(constants) เป็นค่าคงที่ที่กำหนดข้นมาเพื่อนำไปประมวลผลในโปรแกรม เป็นค่าคงที่ที่ไม่สามารถเปลี่ยนแปลงค่าได้ ข้อมุลของค่าคงที่เป็นได้ทั้งข้อมุลชนิดตัวเลข ตัวอักขระ ตัวอักษร หรือข้อมูลทางตรรกศาสตร์ ประโยชน์ของค่าคงที่ ในกรณีที่ต้องการใช้ค่าคงที่เดียวกันหลายๆครั้งในโปรแกรม การใช้ค่าคงที่จะทำให้การเขียนโปรแกรมได้ดีและมีข้อผิดพลาดน้อย กะทัดรัดกว่าการเขียนโปรแกรมด้วยการแทนค่าค่าคงที่จริง ในโปรแกรม ทำให้ง่ายต่อการแก้ไข เปลี่ยนแปลงค่าคงที่การเรียกใช้งานค่าคงที่ ในภาษาปาสคาล การใช้ค่าคงที่ในโปรแกรม จะต้องมีการประกาศชื่อค่าคงที่นั้นไว้ก่อนจะเรียกเสมอการประกาศค่าคงที่ ทำได้โดยการใช้คำสั่งดังนี้ รูปแบบ
Const identifier = constant; |
Identifier หมายถึง ชื่อค่าคงที่ Constant หมายถึง ค่าคงที่ ตัวอย่างการประกาศค่าคงที่ Const fraction = 0.166667; Title = ’alaska’;จากตัวอย่างจะมีชื่อค่าคงที่ 2 ชื่อ fraction ซึ่งเก็บค่าคงที่ชนิดตัวเลขจำนวนจริง title เก็บค่าคงที่ชนิดสตริง ตัวแปร(Variables) เป็นชื่อ(identifier) ชนิดหนึ่งสำหรับใช้เก็บข้อมูลในการประมวลผลในโปรแกรมที่สามารถเปลี่ยนแปลงค่าได้ตลอดเวลา การประกาศชื่อตัวแปร เป็นการจองเนื้อที่ในหน่วยความจำของเครื่องสำหรับเก็บข้อมูลของตัวแปร การนำข้อมูลมาประมวลผลในการเขียนโปรแกรมจะอ้างถึงตัวแปร แทนการอ้างถึงตำแหน่งของข้อมูลเพื่อให้ได้ข้อมูลที่เก็บไว้ในหน่วยความจำ เกณฑ์การตั้งชื่อตัวแปร เป็นการตั้งชื่อ identifier ชนิดหนึ่งดุรายละเอียดจากการตั้งชื่อ identifierการเรียกใช้งานตัวแปร ก่อนการเรียนใช้ตัวแปร จะต้องทำการประกาศตัวแปรในส่วนการประกาศก่อนเสมอ โดยมีรูปแบบการประกาศตัวแปรดังนี้
Identifier หมายถึง ชื่อตัวแปร(Variable name) ที่ใช้สำหรับการเรียกใช้งานในโปรแกรม Type หมายถึง ชนิดข้อมูลของตัวแปร ซึ่งอาจเป็น integer real string character หรือ boolean ชนิดข้อมูลที่จะเก็บอยู่ในตัวแปรแต่ละตัว ต้องสัมพันธ์กับชนิดของตัวแปรที่ประกาศไว้ในส่วนของ var นี้ด้วยในกรณีที่มีตัวแปรหลายตัวที่มีชนิดของข้อมูลแบบเดียวกัน สามารถประกาศตัวแปร ได้อีกแบบดังนี้
Var identifier_1,identifier_2,identiier_3,…,identifier_n :type; |
ตัวแปรแต่ล่ะตัวจะถูกคั่นด้วยเครื่องหมาย comma(,)นิพจน์(Expression) นิพจน์คือกลุ่มของข้อมูล ซึ่งประกอบด้วยโอเปอแรนด์และโอเปอเรเตอร์ โดยโอเปอแรนด์(operand) ประกอบด้วยตัวแปร ค่าคงที่ 1 ตัวหรือมากกว่า ซึ่งเชื่อมกันโดยสัญลักษณ์ทางการคำนวณหรือเปรียบเทียบที่เรียกว่า โอเปอเรเตอร์(operator) นิพจน์ทางคณิตศาสตร์เป็นนิพจน์ที่ประกอบด้วยโอเปอเรเตอร์ ที่เป็นสัญลักษณ์แสดงความสัมพันธ์การเปรียบเทียบเช่น มากกว่า น้อยกว่า เท่ากับเป็นต้น หรือสัญลักษณ์ทางตรรกศาสตร์ได้แก่ and or not ประโยคคำสั่งปฏิบัติการ(Executable Statements) เป็นคำสั่งในโปรแกรมที่สั่งให้คอมพิวเตอร์ปฏิบัติการอย่างใดอย่างนึ่งสามารถแบ่งออกได้เป็นหลายกลุ่มด้วยกันเช่น คำสั่งการกำหนดค่า(Assignment Statement)การกำหนดค่าให้กับตัวแปรใช้เครื่องหมาย := ตัวอย่างเช่น Alas := 100.00;Alas2:=0.07*alas; ข้อสังเกตุ ในภาษาปาสคาลสัญลักษณ์ที่ใช้กำหนดค่าข้อมูลให้กับตัวแปร จะใช้เครื่องหมาย := ไม่ใช่เครื่องหมาย = เหมือนกับภาษาอื่น ยกเว้นส่วนของการกำหนดค่าในส่วนของการประกาศตัวแปร(Declaration) ที่สามารถใช้เครื่องหมาย = ได้เช่น Const alas=10;หรือการเปรียบเทียบนิพจน์ทางตรรกศาสตร์ ก็สามารถใช้เครื่องหมาย = ได้เช่นกัน คำสั่งการเปรียบเทียบเงื่อนไข(Condition statement)หมายถึงคำสั่งเปรียบเทียบเงื่อนไขทางตรรกศาสตร์ เพื่อตัดสินใจเลือกการปฏิบัติการอย่างใดอย่างหนึ่งตัวอย่างเช่นIf sex=’m’ then write(‘male’)Else write(‘female’);เป็นคำสั่งการเปรียบเทียบเงื่อนไขโดยถ้าค่าข้อมูลที่เก็บอยู่ในตัวแปร sex มีค่าเท่ากับ ‘M’ จะพิมพ์ข้อความ ว่า male แต่ถ้าค่าของข้อมูลเป็น sex มีค่าไม่เท่ากับ ‘M’ female คำสั่งการทำซ้ำหรือการวนลูป(Repetitive statement or looping)เป็นคำสั่งให้มีการทำงานซ้ำๆตามคำสั่งต่างๆภายในลูปตามเงื่อนไขที่กำหนด ตัวอย่างเช่นCount:=1;While(count<=100) doBeginWriteln(count);Count:=count+1;End; จากตัวอย่างข้างต้น เป็นการใช้คำสั่ง while….do โปรแกรมจะมีขั้นตอนการทำงานดังนี้ 1 ตรวจสอบเงื่อนไขเป็นจริงหรือไม่ ในที่นี้ค่าของ count มีค่าเริ่มต้นเท่ากับ 1 ดังนั้น count<=100 จึงจะเป็นจริง2 ทำงานตามคำสั่งที่อยู่ในลูป(ระหว่าง begin และ end) ซึ่งได้แก่การพิมพ์ค่าตัวแปร count ออกมาทางจอภาพและการเพิ่มค่าตัวแปร count อีก1 3 กลับไปตรวจสอบเงื่อนไข ถ้า count<=100 ก็จะทำงานตามขั้นที่2 จนกว่า count มีค่ามากกว่า 100 จึงสะออกจากลูป หรือ count:=1;RepeatWriteln(count);Count:=count+1;Until count>100;การใช้คำสั่ง repeat….until การทำงานรอยเหมือนกับ while….do ในตัวอย่างที่แล้ว คำสั่งกำหนดลำดับการทำงานของโปรแกรม(goto statement)เป็นคำสั่งให้เปลี่ยนลำดับการปฏิบัติการไปทำงานที่คำสั่งอื่น โดยไม่มีการตรวจสอบเงื่อนไขใดๆตัวย่างเช่นGoto loopaเป็นคำสั่งให้ไปทำคำสั่งถัดไป ณ คำสั่งที่มี label เป็น loopa ซึ่งต้องมีการประกาศ label ไว้ที่ต้นโปรแกรมด้วย โพรซีเจอร์และฟังก์ชัน เป็นโปรแกรมย่อยที่เขียนแยกไว้เป็นส่วนหนึ่งของโปรแกรมหลัก เพื่อทำหน้าที่อย่างใดอย่างหนึ่งโดยเฉพาะ ภาษาปาสคาลสามารถสร้างโปรแกรมย่อย 2 ลักษณะ คือ โพรซีเจอร์และฟังก์ชัน ทั้งโพรซีเจอร์และฟังก์ชันสามารถแบ่งอกเป็น 1 โพรซีเจอร์และฟังก์ชันมาตรฐาน(Standard Procedures and Function) และ 2 โพรซีเจอร์และฟังก์ชันที่สร้างขึ้นเอง(Users-defined procedures and functions) โพรซีเจอร์และฟังก์ชันมาตรฐาน(Standard procrdures and function)เป็นโพรซีเจอร์และฟังก์ชันที่ภาษาปาสคาลสร้างมาให้แล้ว ผู้เขียนโปรแกรมสามารถที่จะนำมาใช้ในโปรแกรมได้ทันที ซึ่งไม่สามารถทำการแก้ไขเปี่ยนแปลงได้เช่น readln(a,c,d); Writeln(a,b,c);คำสั่งแรกเป็นคำสั่งรับค่าข้อมูลจากแป้นพิมพ์โดยข้อมูลจะเก็บไว้ที่ตัวแปร a b c ตามลำดับคำสั่งที่สองเป็นคำสั่งการพิมพ์ค่าของข้อมูลในตัวแปร a b cตามลำดับ ตัวแปร a b c จะสามารถเรียกได้ว่าเป็นพารามิเตอร์(parameters) ที่ต้องการส่งค่า a b c ให้แก่ โพรซีเจอร์ มาตรฐานคือ readln และ writeln นั่งเอง โพรซีเจอร์และฟังก์ชันที่สร้างขึ้นเอง(user-defined Procedure and function)เป็นโพรซีเจอร์และฟังก์ชันที่ผู้เขียนโปรแกรมเป็นผู้สร้างขึ้นเอง เพื่ออำนวยความสะดวกในการทำงานบางอย่างซึ่งจะสามารถทำการแก้ไขหรือเปลี่ยนแปลงได้
แหล่งอ้างอิง:
http://std.kku.ac.th/4930503320/200101/%C0%D2%C9%D2%BB%D2%CA%A4%D2%C5.htm