613枚举类型的使用(1) 枚举类型在定义后方可在程序中使用,枚举类型的使用与基本数据类型 有相似之处,但对枚举类型的使用有以下几点说明。 (1)对各枚举常量按常量进行处理,不能对它们进行赋值,也不能 再把它定义为其他类型的变量。 (2)定义了一个枚举类型的变量后,可以将枚举常量赋值给该变量, 不能将枚举常量之外的任何值赋予该枚举变量,也不能利用序数来赋 值 (3)可以指定枚举常量的序数。缺省情况下,枚举值的序号从0开始, 并且接下来的序列对应类型声明中相应的标识符。可以通过对部分或 全部枚举值明确指定序号来忽略缺省序号。 【例6-1】口袋中有红、黄、蓝、黑、白五种颜色的小球若干(各种颜色小 球数大于1),每次从口袋中依次取出三个小球,利用枚举类型编写程序, 求出取得三种不同颜色小球的可能取法。 Inprise Dephi
6.1.3 枚举类型的使用(1) (1)对各枚举常量按常量进行处理,不能对它们进行赋值,也不能 再把它定义为其他类型的变量。 (2)定义了一个枚举类型的变量后,可以将枚举常量赋值给该变量, 不能将枚举常量之外的任何值赋予该枚举变量,也不能利用序数来赋 值。 (3)可以指定枚举常量的序数。缺省情况下,枚举值的序号从0开始, 并且接下来的序列对应类型声明中相应的标识符。可以通过对部分或 全部枚举值明确指定序号来忽略缺省序号。 枚举类型在定义后方可在程序中使用,枚举类型的使用与基本数据类型 有相似之处,但对枚举类型的使用有以下几点说明。 【例6-1】口袋中有红、黄、蓝、黑、白五种颜色的小球若干(各种颜色小 球数大于1),每次从口袋中依次取出三个小球,利用枚举类型编写程序, 求出取得三种不同颜色小球的可能取法
613枚举类型的使用(2) 分析:该程序要用到枚举类型,在编程中可以声明一个包括五种颜色的 枚举类型。从若干小球中取三个小球,三个小球的颜色可能分别是五种颜色 中的一种,而且取得三个小球的颜色不同,各种可能取法可以利用循环语句 实现,直到取得三种颜色不同的小球。对于各种取法要用字符串的形式显示 出来,所以可以编写一个枚举类型转换为字符串类型的子程序。 启动 Delph7.0,新建一个工程,在窗体中添加一个标签、一个列表 框和一个按钮,设置标签的标题属性( Caption)为“红、黄、蓝、黑、白五 个五种颜色的小球,取三个小球可能取法:”,设置按钮的标题属性 ( Caption)为“列举”。 ③在实现部分关键字 Implementation之后声明枚举类型,然后声明 个枚举类型转换为字符串的函数,代码如下 implementation ISR* dfm] type bal=(Red, Yellow,Blue, White,Back);∥声明枚举类型 Inprise Dephi
6.1.3 枚举类型的使用(2) 分析:该程序要用到枚举类型,在编程中可以声明一个包括五种颜色的 枚举类型。从若干小球中取三个小球,三个小球的颜色可能分别是五种颜色 中的一种,而且取得三个小球的颜色不同,各种可能取法可以利用循环语句 实现,直到取得三种颜色不同的小球。对于各种取法要用字符串的形式显示 出来,所以可以编写一个枚举类型转换为字符串类型的子程序。 启动Delphi 7.0,新建一个工程,在窗体中添加一个标签、一个列表 框和一个按钮,设置标签的标题属性(Caption)为“红、黄、蓝、黑、白五 个五种颜色的小球,取三个小球可能取法:”,设置按钮的标题属性 (Caption)为“列举”。 在实现部分关键字Implementation之后声明枚举类型,然后声明一 个 枚举类型转换为字符串的函数,代码如下: implementation {$R *.dfm} type ball=(Red,Yellow,Blue,White,Black); //声明枚举类型
613枚举类型的使用(3) function balltostr( onera|ba) string;∥枚举类型变量转换为字符串 begin case oneball of Red result: =Red Yellow: result: = Yellow' 小最三界小哥最色 Blue: result =Blue White: result =White Black result: =Black end end 图6-1列举不同颜色小球的可 能取法 ③单击“列举”按钮,运行结果如图6-1所示 Inprise Dephi
6.1.3 枚举类型的使用(3) function balltostr(oneball:ball):string; //枚举类型变量转换为字符串 begin case oneball of Red: result:='Red'; Yellow: result:='Yellow'; Blue: result:='Blue'; White: result:='White'; Black: result:='Black'; end; end; 单击“列举”按钮,运行结果如图6-1所示。 图6-1 列举不同颜色小球的可 能取法
62子界类型 在实际应用中,许多变量的取值都有一定范围的限制,如学生学习成绩 在0~100之间,月份的取值在1~12之间。在这种情况下,数据的取值是某 个数据类型取值的一部分,在 Object Pascal中这种具有确定范围的数据类型 称为基类型,且取值范围确定的数据可定义为“子界类型”,其中基类型必 须为顺序类型。 62.1子界类型的定义 子界类型的定义格式如下: ty pe 子界类型名称><常量1.<常量2>; 子界类型名称>是用户定义的子界类型的名称。<常量1>表示子界类 型的下界,<常量2>表示子界类型的上界,子界类型的上下界必须属于相 同的顺序类型。 注意: Object Pascal子界类型的下界必须小于上界。 Inprise Dephi
6.2 子界类型 在实际应用中,许多变量的取值都有一定范围的限制,如学生学习成绩 在0~100之间,月份的取值在1~12之间。在这种情况下,数据的取值是某 个数据类型取值的一部分,在Object Pascal 中这种具有确定范围的数据类型 称为基类型,且取值范围确定的数据可定义为“子界类型” ,其中基类型必 须为顺序类型。 6.2.1 子界类型的定义 子界类型的定义格式如下: type <子界类型名称>=<常量1>…< 常量2>; <子界类型名称>是用户定义的子界类型的名称。<常量1>表示子界类 型的下界,< 常量2>表示子界类型的上界,子界类型的上下界必须属于相 同的顺序类型。 注意:Object Pascal子界类型的下界必须小于上界
622子界类型的使用(1) 子界类型的运算与其基类型所允许的运算完全一致,如基类型为整型的 子界变量可以进行算术、关系等运算。 【例6-2】编写一个程序,输入年份月份,输出该月有多少天。 分析:年份、月份的取值范围都是有限的,可以将它们声明为子界类 型。根据年份可以判断是否闰年,然后从一月至十二月依次判断天数。 ③启动 Delphi7.0,新建一个工程,在窗体中添加一个按钮、两个编辑框和 三个标签,将按钮的标题属性( Caption)设置为判断,将标签的标题属性 ( Caption)分别设置为“年”、“月”、“”,将两个编辑框的文本属性 (Text)设置为“2000”和“1” ③双击按钮,添加事件代码如下 procedure TForm1.Button 1Click(Sender: TObject var year:1.3000; month: 1.12 days:28.31; Inprise Dephi
6.2.2 子界类型的使用(1) 子界类型的运算与其基类型所允许的运算完全一致,如基类型为整型的 子界变量可以进行算术、关系等运算。 启动Delphi 7.0,新建一个工程,在窗体中添加一个按钮、两个编辑框和 三个标签,将按钮的标题属性(Caption)设置为判断,将标签的标题属性 (Caption)分别设置为“年”、“月”、“ ”,将两个编辑框的文本属性 (Text)设置为“2000”和“1”。 双击按钮,添加事件代码如下: procedure TForm1.Button1Click(Sender: TObject); var year:1..3000; month:1..12; days:28..31; 【例6-2】编写一个程序,输入年份月份,输出该月有多少天。 分析:年份、月份的取值范围都是有限的,可以将它们声明为子界类 型。根据年份可以判断是否闰年,然后从一月至十二月依次判断天数