第四章 高级数据类型.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 高级数据类型 类型定义语句 前面我们学习了Pascal语言的5种标准数据类型:整型、实型、字符型、字符串型以及布尔型,这些数据类型无需声明定义即可在程序中直接使用。而解决实际问题,还需要其他数据类型,这些都属于用户自定义的数据类型,属于高级数据类型。这些数据类型必须在使用之前用语句进行定义。 高级数据类型主要有:枚举类型、子界类型、集合类型、数组、记录类型、指针类型 类型定义语句 类型定义语句的语法格式为: type 标识符1=类型1; 标识符2=类型2; … 标识符3=类型3; 其中保留字type表示类型定义段的开始。标识符是用户为自定义类型取的名称,类型是用户定义的数据类型名,既可以是Object Pascal语言的标准数据类型,也可以是Object Pascal语言的高级数据类型。 枚举类型 在处理诸如物体的颜色、人的职业、教师的职称等非数值数据时,可以用数值或字符串来表示,比如用1表示红色,2表示黄色;或用“red”表示红色,“yellow”表示黄色。但这样的表示都存在一些缺点:使用数值表示很不直观,特别当表示的种类较多时容易引起混乱和错误,使用字符串则需要占用较多的内存。 仔细分析这些数据,可知这些数据的个数总是有限的,而且可以一一列举。为此,Object Pascal提供的用户自定义数据类型——枚举类型,可以很方便地处理这类数据。 枚举类型 type 枚举类型标识符=(标识符1,……,标识符n); 例如: type daytype=(sun,mon,tue,wed,thu,fri,sat); 注意: 1、括号内为枚举元素,是该类型数据的所有取值,又称枚举常量。但枚举元素只能是标识符(字母开头的字母数据串),而不能是数值常量或字符常量。 例如以下的定义是错误的: type daytype1=(‘sun’,‘mon’,‘tue’,‘wed’,‘thu’,‘fri,sat); 2、不要把作为枚举元素的标识符视作变量名,它不能被赋值。例如以下的语句是错误的:   sunday:=sun; monday:=mon; 枚举类型 3、枚举常量不允许在同一枚举类型定义中重复出现,同一个枚举常量也不能出现在不同的枚举类型定义中。 例如以下的定义是错误的:   type daytype1=(monday,tuesday);   daytype2=(monday,wednesday); 4、Pascal不允许直接读写枚举值(如 write(pred(mon))),所以枚举值的输出常用case语句间接的输出。 case succ(sun) of   sun:write(‘sunday’);   mon:write(‘monday’);    . .    sat:write(saturday);   end; 枚举类型 枚举类型变量的声明 Var x,y:daytype; 注意:此时的daytype必须是已定义好的枚举类型。 也可以将枚举类型的定义和变量的定义结合在一起。 例如:var a:(sun,mon,tue); 枚举类型的运算 顺序运算:枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始,如果类型说明中有N个元素,那么,每个元素对应的序号从左到右依次为0~(N-1),如上面daytype中,sun的序号为0……,sat的序号为6,即ord(sun)=0,succ(sun)=mon,pred(fri)=thu   注意:枚举类型中的第一个元素没有前趋,最后一个元素没有后继。 枚举类型 关系运算:例如,sunmon为真,thutue为假 例4-1:显示系统日期,并返回昨天、今天和明天的星期 分析: 法一:如教材 法二:利用日期型数据本质的特点,建立dayofweek返回值与星期几文字的对应函数即可。 子界类型 有确定的数据类型(称为基类型),且其取值范围确定的数据可以定义为“子界类型”。其中的基类型,必须为顺序类型。子界类型具有便于查错、节省内存的优点。 type 子界类型标识符=常量..常量;   例如:type a=1..3;   ???? b=‘a’..‘d’; 注意: 1、子界的两个常量必须是同一种顺序类型,如:a..b,要求a=b。这里的“顺序”不是指大小,而是指子界中的每个元素都有后继元素或前趋元素。如type x=0.2..0.8是错误的。 子界类型 2、子界的上、下界所属的数据类型即子界的基类型。若子界的基类型为标准数据类型(整型、布尔型、字符型),则子界的上、下界可以直接使用该类型常量,若子界的基类型为枚举类型,则必须先定义基类型(枚举类型),再定义子界类型。例如:typ

文档评论(0)

9885fp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档