Delhi程序设计实用教程枚举、子界与集合.pptVIP

Delhi程序设计实用教程枚举、子界与集合.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 枚举、子界与集合 Delphi的数据类型分为标准类型和自定义类型,标准类型如整型、实型、字符型、布尔型。自定义类型分为枚举、子界、集合、数组、记录和文件。自定义类型,必须先定义类型,后定义变量。本章将介绍枚举、子界和集合这三种自定义类型。 5.1 枚举类型 枚举类型就是将有限的数据用标识符的形式表现出来。例如表示彩旗的颜色、教师的职称、每周的星期等等。这些数据的特点是表示不方便、不直观。幸好Delphi提供的枚举类型可以很好地解决这个问题。 5.1.1 枚举类型的定义 1.枚举类型的类型定义 枚举类型的类型定义的语法格式如下: type 类型名称=(标识符1,标识符2…标识符n); 说明: (1)类型名称,就是用户子定义的枚举类型的名称。 (2)标识符就是该类型的常量元素,它的个数有限,枚举类型是顺序类型。 (3)枚举常量不允许重复出现在一个枚举类型中,也不允许同一个枚举常量出现在不同类型中。 例如:下面的代码就定义了一个具有7个枚举常量的枚举类型。 type weekday=(Sun,Mon,Tue,Wed,Thu,Fri,Sat) 2.枚举类型变量的定义 枚举类型变量的定义。枚举类型的变量定义必须遵循先定义类型再定义变量的原则。例如: type weekday=(Sun,Mon,Tue,Wed,Thu,Fri,Sat) var w1,w2,w3:weekday; a,b,c:integer; Delphi还允许把枚举类型和变量定义放在一起,我们不建议这样做。如: var w1,w2,w3:(sun,mon,tue,wed,thu,fri,sat) ; a,b,c:integer; 5.1.2 枚举类型的运算 枚举类型是顺序类型可以使用顺序类型的函数来操作枚举类型,还可以使用关系运算来比较枚举值的大小。 例如: (1)用pred函数求枚举值的前导: pred(mon)的值为sun; pred(sat)的值为fri; sun没有前导,等等。 (2)用succ函数求枚举值的后继: succ(sun)的值为mon; succ(fri)的值为sat; sat没有后继,等等。 (3)用ord函数求枚举值的序号: sun,mon,tue,wed,thu,fri,sat的序号分别为0~7。 ord(mon)的值为1,等等。 (4)用Low函数可以求得第一个枚举值: low(weekday)的值为sun; //参数为类型 low(w1)的值为sun; //参数是变量 low(tue)的值为sun,等等。 //参数是常量 (5)用high函数可以求得最后一个枚举值: 用法类似函数low。 (6)枚举是顺序类型,因此可以使用关系运算比较枚举值的大小: sunmon的值为false; tue=sun的值为true,等等。 【例5-1】输入今天星期几(序号),输出昨天星期几和明天星期几。 分析:关于星期问题,很容易想到枚举类型。因为星期几是有限的几个值。 设计步骤如下: (1)添加组件,设计界面,如图5-1所示。其中大的面板为Panel1,小的面板从上到下分别是Panel2和Panel3。编辑框为edit1。 图5-1 程序界面 (2)编写程序代码,如下: type weekday= (sun,mon,tue,wed,thu,fri,sat) ; procedure TForm1.Button1Click(Sender: TObject); label en; var w1:weekday; n:integer; begin n:=strtoint(edit1.Text); if (n6)or(n0) then begin edit1.Text:=错误; //输入的星期几必须是0~6之间 panel2.Caption:=; panel3.Caption:=; goto en //输入错误,结束程序,转到程序结尾 end; case (n-1+7)mod 7 of //昨天的序号 ord(sun):panel2.Caption:=昨天星期天!; ord(mon):panel2.Caption:=昨天星期一!; ord(tue):panel2.Caption:=昨天星期二!; ord(wed):panel2.Caption:=昨天星期三!; ord(thu):panel2.Caption:=昨天星期四!; ord(fri):panel2.Caption:=昨天星期五!; ord(sat):panel2.Caption:=昨天星期六!; e

文档评论(0)

duwen200621 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档