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/11 13:37] admin [Enumerated Type] |
tutorial:variableanddatatype [2019/01/11 14:14] (current) admin [Enumerated Type] |
||
|---|---|---|---|
| Line 67: | Line 67: | ||
| =====User-Define Type===== | =====User-Define Type===== | ||
| =====Enumerated Type===== | =====Enumerated Type===== | ||
| - | คือ Data Type ที่เรากำหนดชื่อได้เอง ซึ่งชื่อที่กำหนดขึ้นต้องเป็นไปตามกฎการตั้งชื่อตัวแปร ไม่ใช่ชื่อในแบบ string โดยสิ่งที่สำคัญสำหรับ Data Type ประเภทนี้ คือ ลำดับตัวเลข | + | คือ Data Type ที่เรากำหนดชื่อได้เอง ซึ่งชื่อที่กำหนดขึ้นต้องเป็นไปตามกฎการตั้งชื่อตัวแปร ไม่ใช่ชื่อในแบบ string โดยสิ่งที่สำคัญสำหรับ Data Type ประเภทนี้ คือ การมีลำดับตัวเลขเป็นของตัวเอง ทำให้ Enumerated Type ถูกนำมาเปรียบเทียบกันด้วยเครื่องหมาย =,>,< ได้เหมือนๆกับตัวเลขทั่วไป |
| การประกาศ Enumerated Type ทำได้ดังนี้ | การประกาศ Enumerated Type ทำได้ดังนี้ | ||
| Line 73: | Line 74: | ||
| Type | Type | ||
| TDay = (Mon,Tue,Wed,Thu,Fri,Sat,Sun); | TDay = (Mon,Tue,Wed,Thu,Fri,Sat,Sun); | ||
| - | TDirection = (Right = 1,Left,Front,Back); | + | TDirection = (North = 2, East, South = 8, West); |
| </sxh> | </sxh> | ||
| + | |||
| การเรียกใช้งาน | การเรียกใช้งาน | ||
| Line 84: | Line 85: | ||
| BEGIN | BEGIN | ||
| Today:=Wed; | Today:=Wed; | ||
| - | Direction:=Left; | + | 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. | END. | ||
| </sxh> | </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 เหล่านี้ ย่อมเป็นตัวเดียวกัน | ||