วันจันทร์ที่ 19 กันยายน พ.ศ. 2554

องค์ประกอบพื้นฐานของภาษา Pascal

องค์ประกอบพื้นฐานของภาษา Pascal
แบ่งออกได้เป็น 10 ประเภท ดังนี้
                1. ตัวอักษร (Character Set)
                2. ชื่อ (Identifiers)
                3. คำสงวน (Reserved Words)
                4. ชื่อมาตรฐาน (Standard Identifier)
                5. ข้อมูลแบบพื้นฐาน (Simple Types Data)
                6. ค่าคงที่ (Constants)
                7. ตัวแปร (Variables)
                8. นิพจน์ (Expressions)
                9. ประโยคคำสั่ง (Statements)
                            10. โพรซิเจอร์และฟังก์ชัน (Procedure and Function)
1. ตัวอักษร (Character Set) หมายถึง สัญลักษณ์ต่าง ๆ ที่ไม่สามารถนำไปคำนวณได้ แบ่งออกเป็น              3 ประเภท ได้แก่
1.1       ตัวเลข (Numeric) ได้แก่ เลขฐาน 10 คือ 0 - 9
1.2       ตัวอักษร (Alphabetic) ได้แก่ ตัวอักษรภาษาอังกฤษ A - Z (ทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) และตัวอักษรภาษาอื่น ๆ
1.3       สัญลักษณ์พิเศษ (Special Symbol) ได้แก่สัญลักษณ์พิเศษต่าง ๆ เช่น + , - เป็นต้น
2. ชื่อ (Identifiers)
ประกอบไปด้วย รายการดังต่อไปนี้
·        ค่าคงที่ (Constants)
·        ฟิลด์ใน Record (Field in Record)
·        ตัวแปร (Variable)
·        ฟังก์ชัน (Function)
·        ชื่อโปรแกรม (Program Name)
·        ประเภทข้อมูล (Types)
·        ยูนิต (Units)
·        ชื่อมาตรฐาน (Standard Identifier)
การกำหนดชื่อ (Identifier) มีกฎเกณฑ์ดังนี้
1.              ประกอบไปด้วยตัวอักษร A-Z ทั้งตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และตัวเลข 0-9
2.              เริ่มต้นด้วยภาษา English (ห้ามเป็นตัวเลข) ส่วนตัวอักษรถัดไปจะเป็นตัวเลขหรือตัวอักษรก็ได้
3.              ห้ามเว้นวรรค
4.              ห้ามมีสัญลักษณ์พิเศษอื่นใด ยกเว้น Underscore (_)
5.              ตัวอักษรตัวพิมพ์ใหญ่หรือว่าตัวพิมพ์เล็ก ถือว่าเป็นตัวอักษรตัวเดียวกัน
6.              ห้ามซ้ำกับคำสงวน
7.              คำสงวน (Reserved Words)
8.              เป็นคำเฉพาะที่ภาษา Pascal กำหนดขึ้น เพื่อใช้ในภาษาโดยเฉพาะ ซึ่งผู้เขียนโปรแกรมไม่สามารถนำไปตั้งเป็นชื่อ (Identifier) ได้ ตัวอย่างเช่น AND END BEGIN เป็นต้น
3. คำสงวน (Reserved Words) คำสงวนเป็นตัว ระบุ (identifier) ได้แก่ PROGRAM WHILE หรือ PROCEDURE ซึ่งมีความหมายพิเศษในปาสกาล ดังนั้นโปรแกรมเมอร์จึงไม่สามารถใช้ตัวระบุเหล่านี้ ไปตั้งชื่อสิ่งอื่นๆ ได้แก่ ชื่อตัวแปร ตัวคงที่ ชื่อโปรแกรมหรือชื่อฟังก์ชันในโปรแกรม รายชื่อของตัวระบุมี ดังนี้
ABSOLUTE
END
INLINE
PROCEDURE
TYPE
AND
EXTERNAL
INTERFACE
PROGRAM
UNIT
ARRAY
FILE
INTERRUPT
RECORD
UNTIL
BEGIN
FOR
LABEL
REPEAT
USES
CASE
FORWORD
MOD
SET
VAR
CONST
FUNCTION

NIL

SHL
WHILE
DIV
GOTO
NOT
SHR
WITH
DO
IF
OF
STRING
XOR
DOWNTO
IMPLEMENTATION
OR
THEN
FAR INTERRUPT
ELSE
IN
PACKED
TO
PRIVATE
CONSTRUCTOR
DESTUCTOR
OBJECT
VIRTUAL

ASSEMBLER
EXTERNAL
FORWARD
NEAR

4. ชื่อมาตรฐาน (Standard Identifier) เป็นคำเฉพาะที่ภาษา Pascal ใช้สร้างขึ้นมา เพื่อใช้ในภาษาเฉพาะ หรืออาจเป็นฟังก์ชันย่อยที่ภาษา Pascal สร้างขึ้นมา และสามารถเรียกใช้ได้เลย ตัวอย่างเช่น read write integer เป็นต้น
*** Standard Identifier สามารถกำหนดความหมายใหม่ได้ โดยนักเขียนโปรแกรม ซึ่งแตกต่างจาก Reserved Words ที่ไม่สามารถกำหนดขึ้นมาใหม่ได้ แต่ว่าในความเป็นจริง Standard Identifier ควรใช้งานเหมือนกับ Reserved Words
5. ข้อมูลแบบพื้นฐาน (Simple Types Data) ซึ่งประกอบไปด้วยข้อมูลพื้นฐานดังต่อไปนี้
·        ข้อมูลเลขจำนวนเต็ม (Integer)
·        ข้อมูลเลขจำนวนจริง (Real)
·        ข้อมูลตัวอักขระ (Character)
·        ข้อมูลแบบสตริง (String)
·        ข้อมูลแบบตรรกศาสตร์ (Boolean)
ข้อมูลเลขจำนวนเต็ม (Integer) หมายถึง จำนวนตัวเลขที่ไม่มีจุดทศนิยม มีค่าเป็นเลขจำนวนเต็ม ประกอบไปด้วย จำนวนเต็มบวก จำนวนเต็มลบ และจำนวนเต็มศูนย์ ซึ่งมีค่าตั้งแต่ -32768 ถึง 32767 ยกตัวอย่างเช่น 0, 1, -5, 119
ข้อมูลเลขจำนวนจริง (Real) หมายถึง จำนวนตัวเลขที่มีจุดศนิยมหรือเลขชี้กำลัง ซึ่งจะต้องประกอบไปด้วย ตัวเลขหน้าจุดทศนิยม จุดทศนิยม และตัวเลขหลังจุดทศนิยม เช่น 0.01 หรือ 1.19 เป็นต้น โดยมีค่าอยู่ระหว่าง 1*10-38 ถึง 1*1038 ในการเขียนเลขยกกำลัง (Exponent) จะใช้สัญลักษณ์ตัว E แสดงดังนี้ 2.5*1015 เขียนเป็น 2.5E+15 เป็นต้น
ข้อมูลตัวอักขระ (Character) หมายถึง ตัวอักษรเพียง 1 ตัว ที่อยู่ภายใต้เครื่องหมาย Single Quote หรือ Apostrophes (' ') ซึ่งประกอบไปด้วย
ตัวอักษร (Letter)
ตัวเลข (Digit)
สัญลักษณ์พิเศษต่าง ๆ (Special Symbols) ซึ่งสิ่งต่าง ๆ ที่กล่าวถึงนี้ ไม่สามารถนำไปคำนวณได้
ตัวอย่างเช่น ‘A’, ‘2’,'%' เป็นต้น
ข้อมูลแบบสตริง (String) หมายถึง กลุ่มของตัวอักขระที่นำมาเขียนอยู่ภายใต้เครื่องหมาย Single Quote (' ') ไม่สามารถนำไปคำนวณได้ ซึ่งจะมีความยาวถึง 255 ตัวอักขระ เช่น 'THIS IS MY PASCAL'
หมายเหตุ String ที่ไม่มีอักขระใด อยู่เลย (' ') เรียกว่า Null String
ข้อมูลแบบตรรกศาสตร์ (Boolean) หมายถึง ข้อมูลที่แสดงการตัดสินใจ ว่าข้อความหรือนิพจน์ (Expression) นั้นจริงหรือเท็จ (True or False) โดยปกติข้อมูลแบบ Boolean จะมีค่าความจริงอยู่ 2 แบบ ได้แก่ True และ False
6. ค่าคงที่ (Constants) หมายถึง ค่าที่ไม่มีการเปลี่ยนแปลงอีก ในระหว่างปฏิบัติการของโปรแกรม อาจจะเป็นค่า Number, Character, String หรือ Boolean ก็ได้ประโยชน์ของค่าคงที่
ð ในกรณีที่ต้องมีการใช้ค่าคงที่  บ่อย ๆ การประกาศใช้ชื่อค่าคงที่ จะสั้นและกะทัดรัดกว่าการเขียนด้วยค่าคงที่จริง ๆ ในโปรแกรม
ð ทำให้ง่ายต่อการแก้ไข และมีข้อผิดพลาดน้อย เพราะต้องแก้ไขเพียงจุดเดียวของโปรแกรม และเรียกใช้ได้ตลอด
การเรียกใช้งานค่าคงที่
รูปแบบ          CONST identifier = Constant;
Identifier       หมายถึง ชื่อค่าคงที่
Constant        หมายถึง ค่าคงที่ที่กำหนด ตัวอย่าง
Constant
Pi = 3.14159;
Title = 'Pascal'
Flag = true;
7. ตัวแปร (Variables) เป็น Identifier สำหรับใช้เก็บ ค่าที่ไม่คงที่ ที่สามารถเปลี่ยนแปลงได้ตลอดเวลาในระหว่างการทำงานของโปรแกรม การเรียกใช้ตัวแปร จะเป็นการจองเนื้อที่ในหน่วยความจำของเครื่อง เพื่อเป็นตัวบอกตำแหน่งที่อยู่ของข้อมูลนั่นเองการเรียกใช้งานตัวแปร ก่อนการเรียกใช้งานตัวแปร ต้องมีการประกาศตัวแปรทุกตัว และกำหนดประเภทของตัวแปรไว้ ซึ่งแตกต่างจากการนิยามค่าคงที่ และประเภทของข้อมูลค่าคงที่ ขึ้นอยู่กับรายการข้อมูลที่กำหนดให้ค่าคงที่นั้นมีรูปแบบการประกาศดังนี้
รูปแบบ
VAR identifier = type;
ð Identifier       หมายถึง ชื่อตัวแปร (Variable name) ที่มีการเรียกใช้งานในโปรแกรม
ð Type               หมายถึง ชนิดของข้อมูลตัวแปรนั้น อาจจะเป็น integer, real หรือ string ก็ได้
หมายเหตุ ชนิดของข้อมูลที่เก็บอยู่ในตัวแปรแต่ละตัว ต้องสัมพันธ์กับชนิดของตัวแปรที่ประกาศไว้ในส่วนของ VAR ด้วย
ในกรณีที่มีตัวแปรหลายตัว ที่มีชนิดของข้อมูลแบบเดียวกัน สามารถประกาศตัวแปรได้อีกแบบดังนี้
VAR indentifier1, indentifier2, indentifier3,... : type ;
ตัวอย่าง
VAR
Radius, high: real;
Value : integer;
title : string;
flag : char;
answer : char;

8. นิพจน์ (Expressions)
คือกลุ่มของข้อมูล ซึ่งประกอบไปด้วยค่าคงที่ 1 ตัว หรือมากกว่า และตัวแปร 1 ตัวหรือมากกว่า ซึ่งเชื่อมกันด้วยสัญลักษณ์ทางคำนวณ หรือเปรียบเทียบ สามารถเรียกกลุ่มของข้อมูลอันได้แก่ ค่าคงที่ หรือตัวแปรว่า โอเปอแรนด์(Operand) และเรียกสัญลักษณ์ทางการคำนวณหรือการเปรียบเทียบว่า โอเปอเรเตอร์ (Operator)>br> สามารถแบ่งออกได้เป็นดังนี้
q  นิพจน์ทางคณิตศาสตร์
q  นิพจน์ทางตรรกศาสตร์
นิพจน์ทางคณิตศาสตร์ เป็นนิพจน์ที่ประกอบด้วย Operand ที่เป็นตัวแปร หรือค่าคงที่ ที่เป็นตัวเลข ซึ่งเชื่อมกันด้วย Operator อันได้แก่สัญลักษณ์ทางการคำนวณทางคณิตศาสตร์ + , - , * , /
ตัวอย่างนิพจน์ทางคณิตศาสตร์
(b*b-4*a*c)/(2*a) เรียก a , b, c, 4 ว่า Operand เรียก * , - , / ว่า Operator
นิพจน์ทางตรรกศาสตร์ (Boolean or Logical Expression) เป็นนิพจน์ที่ประกอบด้วย Operand ที่เป็นตัวแปร หรือค่าคงที่ที่เป็นตัวเลข หรือนิพจน์ทางคณิตศาสตร์หรือตรรกศาสตร์ ซึ่งเชื่อมกันด้วย Operator อันได้แก่สัญลักษณ์แสดงความสัมพันธ์ ได้แก่ การเปรียบเทียบ มากกว่า, น้อยกว่า, หรือเท่ากับ เป็นต้น ส่วนสัญลักษณ์ทางตรรกศาสตร์ ได้แก่ AND, OR หรือ NOT เป็นต้น ซึ่งเงื่อนไขทางตรรกะ มีค่าเป็นจริงหรือเท็จเท่านั้น
ตัวอย่างนิพจน์ทางตรรกศาสตร์
Pay < 100.00
นิพจน์ทุกนิพจน์จะต้องปฏิบัติตามกฎเกณฑ์ต่อไปนี้
q  ตัวกระทำ 2 ตัว อยู่ติดกันไม่ได้ ถ้าจำเป็นต้องมี ให้ใช้วงเล็บ
q  นิพจน์อาจจะประกอบไปด้วย Identifier เดี่ยว หรือใช้แทนค่าคงที่หรือตัวแปรได้
q  ชื่อฟังก์ชัน สามารถเขียนแทนที่ Identifier ค่าคงที่ หรือตัวแปรภายในนิพจน์ได้
9. ประโยคคำสั่ง (Statements)
เป็นคำสั่งในโปรแกรมคอมพิวเตอร์ ที่สั่งให้คอมพิวเตอร์ปฏิบัติการอย่างใดอย่างหนึ่ง สามารถแบ่งออกได้ ดังนี้
q  คำสั่งกำหนดค่าให้กับตัวแปร (Assignment Statement)
q  คำสั่งการเปรียบเทียบเงื่อนไข (Conditional Statement)
q  คำสั่งการทำซ้ำหรือวนลูป (Repetitive Statement or Looping)
q  คำสั่งลำดับการทำงานของโปรแกรม (GOTO Statement)
คำสั่งกำหนดค่าให้กับตัวแปร (Assignment Statement)
ตัวอย่าง เช่น
itemcost := 100.00;
tax := 0.7 * itemcost;


คำสั่งการเปรียบเทียบเงื่อนไข (Conditional Statement)
หมายถึงคำสั่งเปรียบเทียบเงื่อนไขทางตรรกศาสตร์ เพื่อตัดสินใจเลือกการปฏิบัติอย่างใดอย่างหนึ่ง
ตัวอย่างเช่น
IF pay < 100.00 THEN a := 100 ELSE b := 200;
คำสั่งการทำซ้ำหรือวนลูป (Repetitive Statement or Looping)
เป็นคำสั่งที่ให้มีการปฏิบัติซ้ำกับคำสั่งต่าง ๆ ภายในลูป ตามเงื่อนไขหรือตามจำนวนที่ระบุ
ตัวอย่างเช่น
count := 0;
WHILE count <= 100 DO
BEGIN
count := count + 1;
writeln(count)
END;
หรือสามารถใช้ลูป FOR เขียนได้ดังนี้
FOR count := 1 to 100 DO writeln(count)
คำสั่งลำดับการทำงานของโปรแกรม (GOTO Statement)
เป็นคำสั่งให้เปลี่ยนลำดับการปฏิบัติการไปทำงานที่คำสั่งอื่น โดยไม่มีการตรวจสอบเงื่อนไขใด ๆ
ตัวอย่างเช่น
GOTO 100
เป็นคำสั่งที่ให้ไปทำคำสั่งถัดไป ณ คำสั่งที่มี label เป็น 100 ซึ่งจะต้องมีการประกาศ label ไว้ที่ต้นโปรแกรมด้วย
10. โพรซีเจอร์และฟังก์ชัน (Procedure and Function)
เรียกได้อีกอย่างหนึ่งว่า โมดูล (Module) เป็นโปรแกรมที่มีการเขียนแยกไว้ต่างหากจากโปรแกรมหลัก ซึ่งโปรแกรมอื่น สามารถที่จะเรียกใช้งานได้อย่างอิสระ แบ่งออกได้เป็น 2 ประเภท คือ
q  โพรซีเจอร์และฟังก์ชันมาตรฐาน (Standard Procedure and Function)
q  โพรซีเจอร์และฟังก์ชันที่สร้างขึ้นเอง (Users-Defined Procedure and Function)
โพรซีเจอร์และฟังก์ชันมาตรฐาน (Standard Procedure and Function) เป็น Procedure หรือ Function ที่ภาษาปาสคาลสร้างขึ้นมาให้แล้ว ผู้เขียนโปรแกรมสามารถที่จะนำไปใช้ในโปรแกรมได้ทันที แต่ไม่สามารถทำการแก้ไขหรือเปลี่ยนแปลงได้
ตัวอย่าง Standard Procedure เช่น
read (a,b,c);
writeln(a,b,c);
ตัวอย่าง Standard Function เช่น
area := 3.14159 * sqr(radius)
sqr() ย่อมาจาก Squared คือค่ายกกำลังสอง
โพรซีเจอร์และฟังก์ชันที่สร้างขึ้นเอง (Users-Defined Procedure and Function) เป็นโพรซีเจอร์หรือฟังก์ชันมาตรฐานที่ผู้เขียนโปรแกรมสร้างขึ้นมาเอง เพื่ออำนวยความสะดวกในการทำงานบางอย่าง ซึ่งจะสามารถทำการแก้ไขหรือเปลี่ยนแปลงได้เองตามต้องการ

ชนิดของข้อมูลพื้นฐาน แบ่งออกได้เป็น 5 ประเภท ได้แก่
·        ข้อมูลชนิดจำนวนเต็ม (Integer - Type Data)
·        ข้อมูลเลขจำนวนจริง (Real - Type Data)
·        ข้อมูลชนิด String (String - Type Data)
·        ข้อมูลชนิดอักขระ (Character -Type Data)
·        ข้อมูลชนิดตรรกศาสตร์ (Boolean - Type Data)
1. ข้อมูลชนิดจำนวนเต็ม (Integer - Type Data)
เป็นข้อมูลตัวเลขที่ไม่มีจุดทศนิยม สามารถนำมาใช้เป็นส่วนประกอบของค่าคงที่ (Constant) ตัวแปร (Variable) ฟังก์ชันและนิพจน์ได้
สัญลักษณ์ทางคณิตศาสตร์ของเลขจำนวนเต็ม
การคำนวณ
สัญลักษณ์
ตัวอย่าง
ชนิดข้อมูล Operand
ชนิดข้อมูล-ผลลัพธ์
บวก
+
A + B
Integer
Integer
ลบ
-
A - B
Integer
Integer
คูณ
*
A * B
Integer
Integer
หาร
/
A / B
Integer
Real
เศษ
MOD
A MOD B
Integer
Integer
หารตัดเศษ
DIV
A DIV B
Integer
Integer
ข้อสังเกต ตัวกระทำหาร (/) จะให้ผลลัพธ์เป็นจำนวนจริง แม้ว่าตัวถูกกระทำจะเป็นจำนวนเต็ม แต่ไม่มีตัวกระทำที่เป็นการยกกำลัง
ข้อกำหนด
(1)                ชนิดข้อมูล Operand หมายถึง ชนิดของข้อมูลตัวแปร A และ B ซึ่งในที่นี้เป็น Integer ทั้งคู่
(2)                ตัวแปรที่ใช้เก็บผลลัพธ์ที่ได้จากการคำนวณ จะต้องมีการประกาศชนิดของตัวแปรให้สัมพันธ์กับรูปแบบของผลลัพธ์ที่ได้ด้วย
หมายเหตุ
(1)         การหารแบบตัดเศษ (DIV) เป็นการหารที่เก็บค่าผลลัพธ์เฉพาะจำนวนเต็มไว้ โดยไม่สนใจเศษที่ได้ ซึ่งทั้งตัวตั้งและตัวหารจะต้องเป็นเลขจำนวนเต็มเท่านั้น เช่น    15 DIV 2 = 7, 26 DIV 8 = 3
(2)         การหาเศษจากการหาร (MOD) จะแสดงค่าเศษที่เหลือจากการหาร โดยที่ทั้งตัวตั้งและตัวหาร ต้องเป็นเลขจำนวนเต็ม เช่น 15 MOD 2 = 1,  26 MOD 7 = 5
(3)         ปาสคาลจะไม่มีสัญลักษณ์การยกกำลัง (Exponentiation) แต่จะสามารถเรียกใช้ฟังก์ชันมาตรฐาน คือ SQR เพื่อคำนวณการยกกำลังสอง ได้ เช่น
a := sqr(4)                                              a = 16 นั่นเอง (a:= 4*4)
(4)         คำสั่งการหาร เช่น / ,DIV ,และ MOD ค่าของ Operand ตัวที่สอง หรือตัวหารต้องไม่มีค่าเป็น 0
2. ข้อมูลเลขจำนวนจริง (Real - Type Data)
เป็นข้อมูลตัวเลขที่มีทศนิยม (Decimal Number) จะต้องมีตัวเลขอยู่หน้าจุดทศนิยม และหลังจุดทศนิยมด้วย นอกจากนี้ยังสามารถเขียนอยู่ในรูปของเลขยกกำลัง ได้อีกด้วย
สัญลักษณ์ทางคณิตศาสตร์ของเลขจำนวนจริง
การคำนวณ
สัญลักษณ์
ตัวอย่าง
ชนิดข้อมูล Operand
ชนิดข้อมูล-ผลลัพธ์
บวก
+
A + B
Real
real
ลบ
-
A - B
Real
real
คูณ
*
A * B
Real
real
หาร
/
A / B
Real
real
ข้อกำหนด
(1)             ชนิดข้อมูล operand หมายถึง ชนิดของข้อมูลและตัวแปร A และ B ซึ่งในที่นี้เป็น real ทั้งคู่
(2)             ตัวแปรที่จะเก็บผลลัพธ์จากการคำนวณ ต้องมีชนิดของตัวแปรที่สัมพันธ์กับรูปแบบของผลลัพธ์ที่ได้ด้วย
(3)             ไม่สามารถใช้สัญลักษณ์ DIV และ MOD สำหรับตัวแปรชนิด real ได้
(4)             ในการหาร (/) ข้อมูล real ใด ๆ operand ตัวที่ 2 หรือตัวหาร จะต้องไม่เป็น 0
3. ข้อมูลชนิด String (String - Type Data)
หมายถึง กลุ่มของตัวอักขระที่นำมาเขียนอยู่ภายใต้เครื่องหมาย Single Quote (' ') ไม่สามารถนำไปคำนวณได้ ซึ่งจะมีความยาวถึง 255 ตัวอักขระ เช่น 'THIS IS MY PASCAL'
หมายเหตุ String ที่ไม่มีอักขระใด อยู่เลย (' ') เรียกว่า Null String
4. ข้อมูลชนิดอักขระ (Character -Type Data)
ได้แก่ตัวอักษรเพียง 1 ตัว ที่อยู่ภายใต้เครื่องหมาย Single Quote หรือ Apostrophes (' ') ซึ่งอาจเป็นตัวอักษร ตัวเลข หรือสัญลักษณ์พิเศษต่าง ๆ และไม่สามารถนำมาคำนวณได้
ตัวอย่างเช่น 'A' , '2' , '%' เป็นต้น
5. ข้อมูลชนิดตรรกศาสตร์ (Boolean - Type Data)
เป็นข้อมูลที่แสดงค่าความจริงอย่างใดอย่างหนึ่ง จะมีค่าความจริงของข้อมูล 2 แบบ ได้แก่ ข้อมูลจริง (true) และ    ข้อมูลเท็จ (false) ซึ่งโดยทั่วไป จะใช้ในการเปรียบเทียบนิพจน์ทางตรรกศาสตร์ สามารถแบ่งนิพจน์ทางตรรกศาสตร์ออกเป็น 2 แบบ ดังนี้
·        นิพจน์ทางตรรกศาสตร์ที่ใช้สัญลักษณ์แสดงความสัมพันธ์เป็นตัวเชื่อม
·        นิพจน์ทางตรรกศาสตร์ที่ใช้สัญลักษณ์ทางตรรกศาสตร์เป็นตัวเชื่อม
5.1 นิพจน์ทางตรรกศาสตร์ที่ใช้สัญลักษณ์แสดงความสัมพันธ์เป็นตัวเชื่อม
เป็นนิพจน์ที่ประกอบด้วยส่วนของ Operand เชื่อมกันด้วย Operator ซึ่งเป็นเครื่องหมายที่แสดงความสัมพันธ์ (Relational Operators) หรือการเปรียบเทียบ
ตารางแสดงความสัมพันธ์
ความหมาย
สัญลักษณ์
เท่ากับ
=
มากกว่า
> 
น้อยกว่า
< 
มากกว่าหรือเท่ากับ
>=
น้อยกว่าหรือเท่ากับ
<=
ไม่เท่ากับ
<> 
ตัวอย่างเช่น 2>3 ค่าเป็น false
5.2 นิพจน์ทางตรรกศาสตร์ที่ใช้สัญลักษณ์ทางตรรกศาสตร์เป็นตัวเชื่อม
     เป็นนิพจน์ที่ประกอบด้วยส่วนของ Operand ทาง ตรรกศาสตร์ และ Operator หรือสัญลักษณ์ทางตรรกศาสตร์ (logical Operator)
ตารางแสดงสัญลักษณ์ทางตรรกศาสตร์ (Logic Operator)
สัญลักษณ์
ความหมาย
AND
ใช้เชื่อม Operand ตั้งแต่ 2 ตัวขึ้นไป ซึ่งนิพจน์จะเป็นจริงก็ต่อเมื่อทุก Operand จะต้องเป็นจริง
OR
ใช้เชื่อม Operand ตั้งแต่ 2 Operand ขึ้นไป ซึ่งนิพจน์จะเป็นจริงก็ต่อเมื่อ Operand ตัวใดตัวหนึ่งหรือทุกตัวเป็นจริง
NOT
ใช้นำหน้า Operand ถ้านำหน้า Operand ที่เป็นจริงจะทำให้นิพจน์เป็นเท็จ แต่ถ้านำหน้า Operand ที่เป็นเท็จ จะทำให้นิพจน์เป็นจริง
ตัวอย่างการใช้งาน
(n > 0) AND (n < 20 ) ค่านิพจน์เป็น true
(n < 0) OR (n > 20 ) ค่านิพจน์เป็น false
นิพจน์ของคณิตศาสตร์ในภาษาปาสคาล
ในการเขียนนิพจน์ทางคณิตศาสตร์ โดยทั่วไปจะประกอบไปด้วยส่วนของ Operands ซึ่งได้แก่ตัวเลขหรือตัวแปร ซึ่งอาจมีหลายตัว และเชื่อมกันด้วย Operators อันได้แก่สัญลักษณ์ทางคณิตศาสตร์ ซึ่งก็อาจจะมีหลายตัวด้วยเช่นกัน
ในการเขียนโปรแกรมเพื่อให้คอมพิวเตอร์คำนวณหานิพจน์ทางคณิตศาสตร์ใด ๆ ออกมา จะต้องมีการเขียนนิพจน์ให้อยู่ในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจได้ โดยมีการใช้สัญลักษณ์ทางคณิตศาสตร์ ตามรูปแบบที่กำหนดเท่านั้น ได้แก่ + , - , * , / , MOD , DIV เป็นต้น ตัวอย่างนิพจน์ทางคณิตศาสตร์
a+b*c/d                         sqr(x)+2*x-5                         x := b+sqr(sqr(b)-4*a*c)/2*a
ลำดับการคำนวณทางคณิตศาสตร์ของนิพจน์ทางคณิตศาสตร์
ในการสั่งให้คอมพิวเตอร์คำนวณหาค่านิพจน์ทางเลขคณิตใด ๆ ก็ตาม คอมพิวเตอร์จะมีการคำนวณตามลำดับขั้นตอน โดยการพิจารณาดูว่า จะคำนวณอะไรก่อนหลัง นั่นคือดูจากลำดับของ Operators นั่นเอง
ลำดับขั้นตอนการคำนวณมีดังนี้
(1) ทำในวงเล็บก่อน
(2) ทำเลขยกกำลัง
(3) ทำคูณหรือหาร ขึ้นอยู่กับว่าตัวใดมาก่อน ตัวใดมาหลัง
(5)             ทำบวกหรือลบ ขึ้นอยู่กับว่า ตัวใดมาก่อนหลัง
ตัวอย่างการคำนวณ
(1) x := 5+6*3 คำตอบ x = 23
(2) x := (5+6)*3 คำตอบ x = 33
ข้อมูลตัวเลข
ข้อมูลแบบเลขจำนวนเต็ม
ชนิดข้อมูล
เนื้อที่ในหน่วยความจำ (Byte)
ช่วงการเก็บข้อมูล
ชนิดตัวแปรที่ใช้
ไบต์ (Byte)
1
0 ถึง 256
Byte
จำนวนเต็มสั้น
(Short Integer)
1
-128 ถึง 127
ShortInt
เวิร์ด (Word)
2
-0 ถึง 65535
Word
จำนวนเต็ม (Integer)
2
-32768 ถึง 32767
Integer
จำนวนเต็มยาว
(Long Integer)
4
-2,147,483,648 ถึง
2,147,483,647
LongInt
ข้อมูลแบบเลขจำนวนจริง
ชนิดข้อมูล
เนื้อที่ในหน่วยความจำ (Byte)
จำนวนหลัก
ช่วงการเก็บข้อมูล
Single
4
7 - 8
1.5*10-45 ถึง 3.5*1038
Real
6
11 - 12
2.9*10-39 ถึง 1.7*1038
Comp
8
19 - 20
-263+ 1 ถึง 263- 1
Double
8
15 - 16
5.0*10-324 ถึง 1.7*103.8
Extended
10
19 - 20
3.4*10-4932 ถึง 1.1*104932


ไม่มีความคิดเห็น:

แสดงความคิดเห็น