Delphi整理五(枚举、子界、集合)


本文整理自网络,侵删。

 
枚举、子界与集合

枚举

type
  <类型名称>=(<标识符1>,<标识符2>...<标识符n>);
1
2
1)类型名称:自定义枚举类型名称 
2)标识符:常量元素,个数有限 
3)一个枚举类型中,枚举常量不允许重复出现,也不允许同一枚举出现在不同类型中 
例如,自动以7个常量的枚举类型

Type
Weekday=(Sun,Mon,Tue,Wed,Thu,Fri,Sat)   
1
2
枚举规则:先定义类型在定义变量

var  w1,w2,w3:weekday;
     a,b,c:integer;
1
2
枚举运算:

1)用pred函数求枚举值的前导。pred(mon)的值为sun,sun没有前导 
2)用succ函数求枚举值的后继。succ(sun)的值为mon,sat没有后继 
3)用ord函数求枚举值的序号。ord(sun)为0 
4)用low函数得第一个枚举值。low(weekday)的值为sun.low(w1)和low(w2)也为sun 
5)用high函数求最后一个枚举值 
6)使用关系运算符比较枚举值的大小。sun>mon的值为false;tue>=sun的值为true。

子界类型

type
<类型名称>=<常量1>...<常量2>;
1
2
1)<类型名称>是子界类型的名称。 
2)<常量1>是子界的下界,<常量2>是子界类型的上界,之间为相同的有序类型(同为整型或同为字符型) 
3)子界的上界大于或者等于下界 
例,

type
month=1..12;
weekday=(sun,mon,tue,wed,thu,fri,sat);
workday=mon..fri;
1
2
3
4
子界类型变量的定义

规则:先定义类型,再定义变量

type
month=1..12;
weekday=(sun,mon,tue,wed,thu,fri,sat);
workday=mon..fri;
var
m1,m2:month;
w1,w2:workday;
1
2
3
4
5
6
7
不建议:m1,m2:1..12;

集合整型

1)集合中的元素是相异的。(不重复) 
2)集合中的元素是没有顺序的 
3)集合中的元素不能超过256个

集合的定义:

type
<类型名称>=set of<基类型>;
1
2
1)<类型名称>是用户所定义的集合类型的名称 
2)<基类型>是集合中元素的类型,可以是字符、布尔、枚举、子界等类型,不能是整型、实型 
例,

type
days=set of 28..31;
ch=set of 'A'..'Z';
weekday=(sun,tue,wed,thu,fri,sat);
workday=set of weekday;
1
2
3
4
5
集合类型变量的定义:

先定义集合类型

type
days=set of 28..31;
ch=set of 'A'..'Z';
weekday=(sun,...,sat);
workday=set of weekday;
1
2
3
4
5
再定义集合类型的变量

var
ch1,ch2:ch;
wo1,wo2:workday;
d1,d2:days;
1
2
3
4
集合类型的取值和运算

集合的取值称之为集合的值。

type
weekday=(sun,mon,tue,wed,thu,fir,sat);
workday=set of weekday;
var
wo1,wo2:workday;
wo1的值可以为[]、[sun]、[sun,mon]...
1
2
3
4
5
6
1)一个集合的基类型有n个值,那么集合变量的取值有2的n次方个。 
2)[]是空集合 
3)集合元素连续出现,可以写成子界形式。1..12等价于1到12

集合的运算

交、差、并运算和集合间的关系运算 
前者得到的集合类型或者是boolean类型 
1)集合的并。两个集合的所有元素组成(去掉重复的) 
2)集合的交运算。两集合公有的 
3)集合的差。一个集合去掉公有的 
4)相等运算返回false or true 
5)不相等运算(<>)返回false or true 
6)包含运算。后者有的前者全有都有(>=)false or true 
7)被包含运算。前者有的后者都有(<=)false or true 
8)元素与集合的运算,判断元素是否在集合中。2 in[1,2,3]的值为true

相关阅读 >>

Delphi 调用api打开文件 使用系统默认打开方式进行打开

dll 的静态调用实例代码

Delphi asc转换成unicode

Delphi xe 打开andorid gps设置

Delphi 用注册表对Delphi程序进行验证

Delphi中如何控制webbrowser滚动条

Delphi webbrowser通过遍历id查找元素是否存在

Delphi环境下基于spcomm控件开发串口通讯报文字节丢失的问题解决

Delphi判断线程是否正在运行

Delphi dbgrid适应宽度

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...