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 13:50] admin |
tutorial:variableanddatatype [2019/01/11 14:14] (current) 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,y:integer; | + | x,y:integer; </sxh> |<sxh delphi;> |
| - | ... | + | x:=10; |
| - | x:=10; | + | y:=$10; //Hex = 16 |
| - | y:=520; | + | |
| </sxh> | | </sxh> | | ||
| |Real|<sxh delphi;> | |Real|<sxh delphi;> | ||
| var | var | ||
| - | x,y:real; | + | x,y:real; </sxh> |<sxh delphi;> |
| - | ... | + | x:=624.32; |
| - | x:=1.0923; | + | y:=2E3; // = 2*10^3 |
| - | y:=23019.889; | + | |
| </sxh> | | </sxh> | | ||
| |Boolean|<sxh delphi;> | |Boolean|<sxh delphi;> | ||
| var | var | ||
| - | x,y:boolean; | + | x,y:boolean; </sxh> |<sxh delphi;> |
| - | ... | + | x:=true; |
| - | x:=true; | + | y:=false; |
| - | y:=false; | + | |
| </sxh> | | </sxh> | | ||
| |Character|<sxh delphi;> | |Character|<sxh delphi;> | ||
| var | var | ||
| - | x,y:char; | + | x,y:char; </sxh> |<sxh delphi;> |
| - | ... | + | x:='A'; |
| - | x:='A'; | + | y:='Z'; |
| - | y:='X'; | + | |
| </sxh> | | </sxh> | | ||
| |String|<sxh delphi;> | |String|<sxh delphi;> | ||
| var | var | ||
| - | x,y:string; | + | x,y:string; </sxh> |<sxh delphi;> |
| - | ... | + | x:='Hello'; |
| - | x:='Hello'; | + | y:='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 เหล่านี้ ย่อมเป็นตัวเดียวกัน | ||