- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 第十二章 促销策略.ppt
- 第十三章金融抑制与金融深化理论.ppt
- 第十二章 位运算.ppt
- 第六课《IO》.ppt
- 第六讲:GAMESS程序的使用.ppt
- 第十二章 定价策略.ppt
- 第十一、十二章 渠道 促销.ppt
- 第十二章 灭火救援应用计算.ppt
- 第六课Java中的程序块.doc
- 第十一章 商场设计与商品陈列.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- T_HNTI 030—2020_茶树种质资源考察收集技术规范.pdf VIP
- 报关原理与实务(第二版)(第5章)1进出口货物报关单填制.ppt VIP
- 2025年滨州市中考英语试题卷(含答案逐题解析).docx
- 基于能力培养的人工智能课程体系设计.docx
- Q/GDW1827-2013三相智能电能表技术规范.pdf VIP
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录.pptx VIP
- 华能国际电力股份有限公司本质安全体系管理手册.doc VIP
- 教育行业AI大模型设计方案【231页WORD】.docx VIP
- 2024医保物价培训.pptx VIP
- 屋顶光伏发电建设项目实施方案.docx
文档评论(0)