User Tools

Site Tools


tutorial:variableanddatatype

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
tutorial:variableanddatatype [2019/01/07 13:51]
admin
tutorial:variableanddatatype [2019/01/11 14:12]
admin [Enumerated Type]
Line 1: Line 1:
 ======Variables And Data Types====== ======Variables And Data Types======
 +----
 +=====Variables=====
 +คือ ตัวแปร ที่ใช้ในการเขียนโปรแกรม การใช้งาน Variables จะต้องมีการประกาศตัวแปรก่อนเสมอ เพื่อให้ Compiler จองหน่วยความจำสำหรับตัวแปรนั้นอย่างเหมาะสม หลังจากนั้นจึงนำมาใช้ใส่ค่าหรือสั่งให้แสดงค่าได้ตามความต้องการ ​
  
 +การประกาศตัวแปร จะประกาศหลังจากคำว่า var โดยการใส่ชื่อตัวแปล แล้วตามด้วย DataType โดยการประกาศสามารถประกาศได้ทีละหลายตัว และยังประกาศพร้อมกับใส่ค่าเร่ิมต้นได้ เเช่นกัน ดังตัวอย่างต่อไปนี้
 +<sxh delphi;>
 +  Var
 +    x :integer;
 +    y,z :boolean; //​multi-lines declaration
 +    a :real = 43.295; //declare with initial value
 +</​sxh>​
 +
 +การใส่ค่าให้ Variables โดยทั่วไป จะใส่โดยใช้เครื่องหมาย ":​="​ ดังตัวอย่างต่อไปนี้
 +<sxh delphi;>
 +    x := 12;
 +    y := true;
 +    a := 902.253;
 +</​sxh>​
 +
 +\\ \\
 =====Data Types===== =====Data Types=====
-Data Type แบ่งได้เป็น 4 ประเภท ดังนี้+แบ่งได้เป็น 4 ประเภท ดังนี้
  
 ^ Data Type ^ Descriptions ^ ^ Data Type ^ Descriptions ^
Line 9: Line 28:
 | Structured Type | Array \\ Record \\ Object \\ Class | | Structured Type | Array \\ Record \\ Object \\ Class |
 | Pointer Type | Pointer | | Pointer Type | Pointer |
 +\\ 
 +\\
 =====Standard Type===== =====Standard Type=====
 สรุปได้ดังนี้ สรุปได้ดังนี้
-^  Data Types  ^  Declaration/​Defining ​ ^  +^  Data Types  ^  Declaration  ​^ Assign Value 
-|integer|<sxh delphi;>+|Integer|<sxh delphi;>
 var  var 
-  x:​integer;​ +  x,y:​integer; ​</​sxh>​ |<sxh delphi;> ​ 
-...   +x:=10; 
-  ​x:=10;+y:=$10; //Hex = 16
 </​sxh>​ | </​sxh>​ |
 |Real|<​sxh delphi;> |Real|<​sxh delphi;>
 var  var 
-  x:real; +  x,y:​real; ​</​sxh>​ |<sxh delphi;> ​ 
-...   +x:=624.32; 
-  ​x:=1.0923;+y:=2E3; // = 2*10^3
 </​sxh>​ | </​sxh>​ |
 |Boolean|<​sxh delphi;> |Boolean|<​sxh delphi;>
 var  var 
-  x:​boolean;​ +  x,y:​boolean; ​</​sxh>​ |<sxh delphi;> ​ 
-...   +x:=true; 
-  ​x:​=true; ​//or false+y:=false;
 </​sxh>​ | </​sxh>​ |
 |Character|<​sxh delphi;> |Character|<​sxh delphi;>
 var  var 
-  x:char; +  x,y:​char; ​</​sxh>​ |<sxh delphi;> ​ 
-...   +x:='A'; 
-  ​x:​='​A';​+y:='Z';
 </​sxh>​ | </​sxh>​ |
 |String|<​sxh delphi;> |String|<​sxh delphi;>
 var  var 
-  x:string; +  x,y:​string; ​</​sxh>​ |<sxh delphi;> ​ 
-...   +x:​='​Hello';​ 
-  ​x:​='​How are you?';+y:='How are you?';
 </​sxh>​ | </​sxh>​ |
 +
 +\\ \\
 +=====User-Define Type=====
 +=====Enumerated Type=====
 +คือ Data Type ที่เรากำหนดชื่อได้เอง ซึ่งชื่อที่กำหนดขึ้นต้องเป็นไปตามกฎการตั้งชื่อตัวแปร ไม่ใช่ชื่อในแบบ string โดยสิ่งที่สำคัญสำหรับ Data Type ประเภทนี้ คือ ลำดับตัวเลข ทำให้ Enumerated Type ถูกนำมาเปรียบเทียบกันด้วยเครื่องหมาย =,>,< ได้เหมือนๆกับตัวเลขทั่วไป
 +
 +การประกาศ Enumerated Type ทำได้ดังนี้
 +
 +<sxh delphi;>
 +Type
 +  TDay = (Mon,​Tue,​Wed,​Thu,​Fri,​Sat,​Sun);​
 +  TDirection = (North = 2, East, South = 8, West);
 +</​sxh> ​
 + 
 +การเรียกใช้งาน
 +
 +<sxh delphi;>
 +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.
 +</​sxh> ​
 +
 +เราสามารถหาเลขลำดับของ 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 เหล่านี้ ย่อมเป็นตัวเดียวกัน
tutorial/variableanddatatype.txt · Last modified: 2019/01/11 14:14 by admin