2.子界
在Object Pascal中,对具有确定的数据类型(称为基类型),且其取值范围确定的数据称为子界类型。基类型必须为顺序类型。
2.1子界类型的定义
子界类型定义的语法格式:
type <类型名称> = <常量1> .. <常量2>;
说明:
-
常量1表示子界类型的下界,常量2表示子界类型的上界,上下界必须是相同的顺序类型,即应同时为整型、布尔型、字符型或同一枚举类型。
-
子界的上下界的类型就是子界的基类型。
-
子界的上界必须不小于下界。
-
子界类型所对应的序数与基类型相关,下界常量在子界类型中对应的序数就是其在基类型中的序数,上界同理。
如:
type age = 0..99; week = (sun, mon, tue, wed, thu, fri, sat); workday = mon..fri;
2.2子界类型变量的声明
子界类型变量的声明与其他类型相同。如:
var a1: age; w1: workday;
也可以直接声明子界变量,如:
var a1,a2: 0..99; w1,w2: mon..fri;
2.3子界类型的运算
子界类型所允许的运算与其基类型所允许的运算完全相同。
示例:输入年龄,输出所处年龄期,界面如下:
代码如下:
procedure TForm1.Button1Click(Sender: TObject); type ageType = 0..99; var age: ageType; iAge: integer; s: String; begin // 判定按钮单击事件 iAge := StrToInt(Edit1.Text); age := iAge; if (age >= 0) and (age < 1) then s := '婴儿'; if (age >= 1) and (age < 3) then s := '幼儿'; if (age >= 3) and (age < 7) then s := '儿童'; if (age >= 7) and (age < 15) then s := '少年'; if (age >= 15) and (age < 36) then s := '青年'; if (age >= 36) and (age < 61) then s := '中年'; if age >= 61 then s := '老年'; Edit2.Text := '您的年龄:' + inttostr(age) + ', 处于' + s + '期'; end; procedure TForm1.Button2Click(Sender: TObject); begin // 清除按钮单击事件 Edit1.Text := ''; Edit2.Text := ''; end;