This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorial:variableanddatatype [2019/01/07 14:00] admin [Variables] |
tutorial:variableanddatatype [2019/01/11 14:14] admin [Enumerated Type] |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Variables And Data Types====== | ======Variables And Data Types====== | ||
+ | ---- | ||
=====Variables===== | =====Variables===== | ||
คือ ตัวแปร ที่ใช้ในการเขียนโปรแกรม การใช้งาน Variables จะต้องมีการประกาศตัวแปรก่อนเสมอ เพื่อให้ Compiler จองหน่วยความจำสำหรับตัวแปรนั้นอย่างเหมาะสม หลังจากนั้นจึงนำมาใช้ใส่ค่าหรือสั่งให้แสดงค่าได้ตามความต้องการ | คือ ตัวแปร ที่ใช้ในการเขียนโปรแกรม การใช้งาน Variables จะต้องมีการประกาศตัวแปรก่อนเสมอ เพื่อให้ Compiler จองหน่วยความจำสำหรับตัวแปรนั้นอย่างเหมาะสม หลังจากนั้นจึงนำมาใช้ใส่ค่าหรือสั่งให้แสดงค่าได้ตามความต้องการ | ||
- | การประกาศตัวแปร จะประกาศหลังจากคำว่า var โดยการใส่ชื่อตัวแปล แล้วตามด้วย identifier ตามตัวอย่างดังนี้ | + | การประกาศตัวแปร จะประกาศหลังจากคำว่า var โดยการใส่ชื่อตัวแปล แล้วตามด้วย DataType โดยการประกาศสามารถประกาศได้ทีละหลายตัว และยังประกาศพร้อมกับใส่ค่าเร่ิมต้นได้ เเช่นกัน ดังตัวอย่างต่อไปนี้ |
+ | <sxh delphi;> | ||
Var | Var | ||
- | x:integer; | + | x :integer; |
- | y,z:real; //multi-lines declaration | + | y,z :boolean; //multi-lines declaration |
- | a:boolean = true; //declare with initial value | + | a :real = 43.295; //declare with initial value |
+ | </sxh> | ||
+ | การใส่ค่าให้ Variables โดยทั่วไป จะใส่โดยใช้เครื่องหมาย ":=" ดังตัวอย่างต่อไปนี้ | ||
+ | <sxh delphi;> | ||
+ | x := 12; | ||
+ | y := true; | ||
+ | a := 902.253; | ||
+ | </sxh> | ||
- | + | \\ \\ | |
- | + | ||
- | + | ||
=====Data Types===== | =====Data Types===== | ||
แบ่งได้เป็น 4 ประเภท ดังนี้ | แบ่งได้เป็น 4 ประเภท ดังนี้ | ||
Line 24: | 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 เหล่านี้ ย่อมเป็นตัวเดียวกัน |