Delphi整理五(枚举、子界、集合)
来源:互联网 发布:软件实施全过程 编辑:程序博客网 时间:2024/06/06 03:15
枚举、子界与集合
枚举
type <类型名称>=(<标识符1>,<标识符2>...<标识符n>);
1)类型名称:自定义枚举类型名称
2)标识符:常量元素,个数有限
3)一个枚举类型中,枚举常量不允许重复出现,也不允许同一枚举出现在不同类型中
例如,自动以7个常量的枚举类型
TypeWeekday=(Sun,Mon,Tue,Wed,Thu,Fri,Sat)
枚举规则:先定义类型在定义变量
var w1,w2,w3:weekday; a,b,c:integer;
枚举运算:
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>是子界类型的上界,之间为相同的有序类型(同为整型或同为字符型)
3)子界的上界大于或者等于下界
例,
typemonth=1..12;weekday=(sun,mon,tue,wed,thu,fri,sat);workday=mon..fri;
子界类型变量的定义
规则:先定义类型,再定义变量
typemonth=1..12;weekday=(sun,mon,tue,wed,thu,fri,sat);workday=mon..fri;varm1,m2:month;w1,w2:workday;
不建议:m1,m2:1..12;
集合整型
1)集合中的元素是相异的。(不重复)
2)集合中的元素是没有顺序的
3)集合中的元素不能超过256个
集合的定义:
type<类型名称>=set of<基类型>;
1)<类型名称>是用户所定义的集合类型的名称
2)<基类型>是集合中元素的类型,可以是字符、布尔、枚举、子界等类型,不能是整型、实型
例,
typedays=set of 28..31;ch=set of 'A'..'Z';weekday=(sun,tue,wed,thu,fri,sat);workday=set of weekday;
集合类型变量的定义:
先定义集合类型
typedays=set of 28..31;ch=set of 'A'..'Z';weekday=(sun,...,sat);workday=set of weekday;
再定义集合类型的变量
varch1,ch2:ch;wo1,wo2:workday;d1,d2:days;
集合类型的取值和运算
集合的取值称之为集合的值。
typeweekday=(sun,mon,tue,wed,thu,fir,sat);workday=set of weekday;varwo1,wo2:workday;wo1的值可以为[]、[sun]、[sun,mon]...
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整理五(枚举、子界、集合)
- Delphi基本类型--枚举 子界 集合 数组
- Delphi枚举类型,子界类型简单测试
- C#学习(五)—数组与结构、枚举、集合的区别
- delphi枚举
- Delphi 枚举
- swift关于枚举 字典 集合的一些整理
- 集合框架(七) 枚举
- 枚举和注解(五)
- (五)集合
- 集合初探(五)
- (五)容器-集合
- (五)集合处理
- JSF整理(五)
- Delphi笔记整理(二)
- Delphi整理一(基础知识)
- Delphi整理八(对话框)
- 枚举集合
- react使用阿里云对象存储,ali-oss, antd upload to ali-oss
- 【python】【穆晨】【171221】连续第七十二天总结
- 【web】js基础巩固——json&数据存储(六)
- 模块化 +路由
- 线程
- Delphi整理五(枚举、子界、集合)
- 奇异值分解(SVD)原理详解及推导
- Fresco
- shiping
- thinkphp 多图和单图上传处理 (我认为这个方法更好吧 比我以前写的 高效了不少)
- iOS-新手引导页+标签控制器
- 转行人士如何在人工智能领域保持一定的竞争力?
- ubuntu14.04 英伟达显卡 安装cuda 8 解决循环登录问题
- 在训练网络的时候,验证集误差是比测试集误差低还是高? | 社区问答