Table of Contents

Variables And Data Types


Variables

คือ ตัวแปร ที่ใช้ในการเขียนโปรแกรม การใช้งาน Variables จะต้องมีการประกาศตัวแปรก่อนเสมอ เพื่อให้ Compiler จองหน่วยความจำสำหรับตัวแปรนั้นอย่างเหมาะสม หลังจากนั้นจึงนำมาใช้ใส่ค่าหรือสั่งให้แสดงค่าได้ตามความต้องการ

การประกาศตัวแปร จะประกาศหลังจากคำว่า var โดยการใส่ชื่อตัวแปล แล้วตามด้วย DataType โดยการประกาศสามารถประกาศได้ทีละหลายตัว และยังประกาศพร้อมกับใส่ค่าเร่ิมต้นได้ เเช่นกัน ดังตัวอย่างต่อไปนี้

  Var
    x :integer;
    y,z :boolean; //multi-lines declaration
    a :real = 43.295; //declare with initial value

การใส่ค่าให้ Variables โดยทั่วไป จะใส่โดยใช้เครื่องหมาย “:=” ดังตัวอย่างต่อไปนี้

    x := 12;
    y := true;
    a := 902.253;



Data Types

แบ่งได้เป็น 4 ประเภท ดังนี้

Data Type Descriptions
Standard Type Integer
Real
Boolean
Character
String
User-define Type Enumerated
Sub range
Set
Structured Type Array
Record
Object
Class
Pointer Type Pointer



Standard Type

สรุปได้ดังนี้

Data Types Declaration Assign Value
Integer
var 
  x,y:integer; 
 
x:=10;
y:=$10; //Hex = 16
Real
var 
  x,y:real; 
 
x:=624.32;
y:=2E3; // = 2*10^3
Boolean
var 
  x,y:boolean; 
 
x:=true;
y:=false;
Character
var 
  x,y:char; 
 
x:='A';
y:='Z';
String
var 
  x,y:string; 
 
x:='Hello';
y:='How are you?';



User-Define Type

Enumerated Type

คือ Data Type ที่เรากำหนดชื่อได้เอง ซึ่งชื่อที่กำหนดขึ้นต้องเป็นไปตามกฎการตั้งชื่อตัวแปร ไม่ใช่ชื่อในแบบ string โดยสิ่งที่สำคัญสำหรับ Data Type ประเภทนี้ คือ การมีลำดับตัวเลขเป็นของตัวเอง ทำให้ Enumerated Type ถูกนำมาเปรียบเทียบกันด้วยเครื่องหมาย =,>,< ได้เหมือนๆกับตัวเลขทั่วไป

การประกาศ Enumerated Type ทำได้ดังนี้

Type
  TDay = (Mon,Tue,Wed,Thu,Fri,Sat,Sun);
  TDirection = (North = 2, East, South = 8, West);

การเรียกใช้งาน

VAR
  ToDay:TDay;
  Direction:TDirection;
BEGIN
  Today:=Wed;
  Direction:=EAst; //case insensitive
  
  if  Today < Sat then
    writeln('Today is not holliday')
  else
    writeln('Today is holliday');
    
  writeln('Your direction number is : ',ord(Direction));    
  readln;
END.

เราสามารถหาเลขลำดับของ Enumerated Variable ได้ โดยใช้ฟังก์ชั่น Ord() จากตัวอย่างข้างบน หากไม่มีการกำหนดลำดับให้ ลำดับก็จะเริ่มจาก 0 เสมอ จะได้ลำดับของแต่ละวันใน TDay ดังนี้

Mon=0, Tue=1, Wed=2, Thu=3, Fri=4, Sat=5, Sun=6 

สำหรับ Enumerated Variable ที่มีการกำหนดลำดับ ก็จะได้ลำดับตามที่กำหนดมา แต่สำหรบตัวที่ไม่ได้กำหนด จะนำลำดับตัวก่อนหน้ามา +1 จากตัวอย่าง TDirection จะได้ลำดับดังนี้

North = 2, East = 3, South = 8, West = 9

จากตัวอย่างข้างบน บรรทัดที่ 6 จะสังเกตว่า การใส่ชื่อเป็น Case Insensitive เหมือนกันกับการตั้งชื่อตัวแปรในภาษา Pascal ดังนั้น East, EAST, EAst, eAsT เหล่านี้ ย่อมเป็นตัวเดียวกัน