- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章枚举子界与集合
7.1?? 类型定义语句
Object Pascal语言的高级数据类型在使用之前必须首先使用类型定义语句进行定义。类型定义语句的语法格式为:
Type〈标志符1〉=〈类型1〉;〈标志符2〉=〈类型2〉;……〈标志符3〉=〈类型3〉;
?? 其中保留字Type表示类型定义段的开始。〈标志符〉是为用户自定义类型取的名称,〈类型〉是用户定义的数据类型名,既可以是语言的标准数据类型,也可以是Object Pascal语言的高级数据类型。
7.2? ?枚举类型
在处理诸如物体的颜色、人的职业、教师的职称,一个星期的7天等非数值数据时,可以用数值或字符串来表示,比如1表示红色,2 表示黄色;或”red”表示红色,”Yellow”表示黄色。但是这样的表示都存在一些缺点:使用数值表示很不直观,特别是当表示的种类较多时容易引起混乱和错误,使用字符串则需要占用较多的内存。??? 仔细分析这些数据,可知这些数据的个数总是有限的,而且可以一一列举。为此,Object Pascal 提供的用户自定义数据类型——枚举类型,可以很方便地处理这类数据。
本节主要讲授:
HYPERLINK /courseware/delphi/Char7/7.2.1.htm 枚举类型定义与变量的声明
HYPERLINK /courseware/delphi/Char7/7.2.2.htm 枚举类型的运算
7.2.1? 枚举类型定义与变量的声明
1 枚举类型的定义
枚举类型的定义格式为:
Type〈类型名称〉=(〈标志符1〉,〈标志符2〉,…,〈标志符n〉);
说明:(1) 〈类型名称〉是用户定义的枚举类型名称。(2) 〈标志符〉表示该类型数据中的元素,圆括号中列出了该类型的所有取值,这些值称为枚举常量。(3) 每个枚举常量必须是标志符,不能是其他任何数据类型。枚举常量不允许在同一枚举类型定义中重复出现,也不允许同时在不同的枚举类型定义中出现。
例如:下面代码定义了一个具有6个元素的枚举类型Color:TypeColor = (Red, Blue, Green, Yellow, White, Black );Day = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday????? Saturday);
2 枚举类型变量的声明
枚举类型变量的声明与其他类型变量的声明完全相同,如下面的代码声明了一个上述枚举类型Color的变量C1和C2:
? Var C1,C2: Color;
7.2.2? ??枚举类型的运算
从本质上看,枚举类型不过就是用一些枚举常量来表示一组连续的整数。这些枚举常量就像符号常量,是整数的形象化表示。虽然不能对枚举常量直接进行算术运算,但是可以对枚举常量进行关系运算或通过函数进行间接的算术运算。
1 使用函数(五个函数)
??? Object Pascal规定,在枚举类型定义语句中列出的每一个枚举常量都对应一个唯一的序数。对于一个具有n个值的枚举类型,其中的枚举常量从左到右依次对应序数 1 -- n-1 。使用函数 Ord 可以得到枚举常量所对应的序数,函数 Pred 和 Succ 可以分别得到枚举常量的“前趋值”和“后继值”,函数 Low 和 High 则可分别得到第一个枚举常量和最末一个枚举常量。例如,在下面的定义中:?? Type????? Week=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);枚举常量的序数依次为:0,1,2,3,4,5,6,???? Ord(Fri) = 5;???? Pred(Fri) = Thu;???? Succ(Fri) = Sat;???? Low(Week) = Sun;???? High(Week) = Sat。
注意:枚举类型的第一个枚举常量没有前趋值,最后一个没有后继值。
2 关系运算
? 由于每个枚举常量对应一个唯一的序数,因此可以在枚举常量之间进行关系运算: , =, =, , 和=。如在上述定义中,?????? ( Sun Wed ) = True,?????? ( Fri = Sat ) = False。
【例7-1】:显示系统日期,并能够返回昨天、今天和明天的星期
分析:将一周7天定义成枚举类型。社今天(Today)、昨天(Yesterday)和明天(Tomorrow)为枚举类型Week的变量。通过函数DayofWeek得到一个整数序号,再通过Case语句将该序号所对应的枚举元素赋给Today,然后根据Today的值,用Pred和Succ两个函数分别确定Yesterday和Tomorrow的值。最后再利用Case语句输出所对应的星期数。
您可能关注的文档
最近下载
- 检测实验室可行性报告.docx VIP
- 少儿小学中国经典成语故事英文英语绘本 画蛇添足.pdf
- 中天建设集团外墙饰面砖工程作业标准.pdf VIP
- (高清版)B-T 6113.203-2020 无线电骚扰和抗扰度测量设备和测量方法规范 第2-3部分:无线电骚扰和抗扰度测量方法 辐射骚扰测量.pdf VIP
- EPC总承包采购管理要点.doc VIP
- 中天建设集团项目现场质量红线解读.pdf VIP
- 创精品工程的通病问题jjs.ppt VIP
- 高等数学(第五版)课件 2.1导数的概念.pptx
- 2025黑龙江省建设投资集团有限公司面向系统内部附社会招聘12人笔试参考题库附答案解析.docx VIP
- 人教版四年级下册计算题练习整理打印版20180820.docx VIP
文档评论(0)