15-枚举类型和子界类型

上传人:飞*** 文档编号:39973943 上传时间:2018-05-21 格式:DOC 页数:4 大小:31KB
返回 下载 相关 举报
15-枚举类型和子界类型_第1页
第1页 / 共4页
15-枚举类型和子界类型_第2页
第2页 / 共4页
15-枚举类型和子界类型_第3页
第3页 / 共4页
15-枚举类型和子界类型_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《15-枚举类型和子界类型》由会员分享,可在线阅读,更多相关《15-枚举类型和子界类型(4页珍藏版)》请在金锄头文库上搜索。

1、枚举类型和子界类型一、类型定义1、类型定义的语法图类型定义的语法格式:type=;=;=;2、格式说明:Type 是保留字类型定义符。类型名必须遵循标识符的起名 规则,“”右边的类型就是用户描述的数据类型。执行此语句后我们就可以 用“”左边的标识符代表右边的集合了。用户自定义类型就是用户遵循 pascal 语言规则结合用户需要自己定义新的 类型。前面的标准类型,系统已经定义好了,我们可以直接使用它说明变量, 使用此类数据。而用户自定义类型要先定义类型,才能说明变量,使用此类数 据。用户自定义类型有两类:枚举类型和子界类型。二、枚举类型在程序设计中,程序员常常会发现用种标准类型很难自然地描述所要

2、处 理的某种数据。例如,表示星期几,在程序设计中,我们一般用整型数 、表示不是很直观,既可表示数值,又可以表 示星期一,阅读者要根据实际情况进行区分。在 pascal 中提供了形象表示这类 数据的类型既枚举类型。枚举类型顾名思义就是将需要的数据一一枚举出来,组成一个类型。枚举类型的形式:(标识符 1,标识符 n);例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturda y);枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义 是错误的:type daystype=(sun,mon,tue

3、,wed,thu,fri,sat);枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被 赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以 下的定义是错误的:type daytype1=(monday,tuesday);daytype2=(monday,wednesday);可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday)枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们 的序列,序列号从 0 开始例如:已经定义 daystypeord(sunday)=0,succ(sunday)=mon

4、day,pred(friday)=Thursday;但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Pascal 不允许直接读写枚举值,所以枚举值的输出常用 case 语句间接的输出。枚举值 的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举 变量,否则就会出错。例如:枚举值的输出case day ofsunday:write(sunday);monday:write(monday);tuesday:write(tuesday);wednesday:write(wednesday);thursday:write(thursday);friday:write(frid

5、ay);saturday:write(saturday);end;三、子界类型子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值 域区间。子界类型的形式:常量 1常量 n 两个常量必须是同一种顺序类型。例如:ab,要求 a0)or(year mod 400 =0)then dayth:=dayth+29else dayth=:=dayth+28;4,6,9,11:dayth:=dayth+30;end;dayth:=dayth+day;writeln(dayth)end.四、类型相容和赋值相容1.类型相容性类型相容是对参加同一运算的两个对象的类型要求。设有两个变量,如果 满足下列

6、条件之一,就说这两个变量的类型相容。(1)两个变量的类型相同a.两个变量被同一类型说明。例如:var a,b:1.30;b.两个变量的类型是同一类型标识符。 例如:var a:1.30; b:1.30;c.两个变量的类型是不同的类型标识符,但在类型定义中已经说明两个标识符相同。例如:type date=1.100;range=date;var m:data;n:range;(2)一个变量的类型是另一个变量的子界。(3)两个变量的类型都是同一基类型的子界。(4)两个变量的类型是基类型相容的集合类型。(5)两个变量的类型是成分相同的串类型。2.赋值相容性赋值相容是对赋值操作的两个对象的类型要求。设

7、赋值语句“:”左边 的变量类型为 T,右边表达式的类型为 E,若类型 T 和类型 E 满足下列条件之一, 则称他们是赋值相容的。(1)T 和 E 是相同的类型,而且类型不是文件类型,也不是具有文件类成分 的构造类型。(2)T 是实型,而 E 是整型或整型的子界。(3)T 和 E 是类型相容的顺序类型,并且 E 的值不超出 T 所定义的值的范围(4)T 和 E 是类型相容的集合类型,并且 E 的值不超出 T 所定义的值的范围(5)T 和 E 是类型相容的串类型。当 T 和 E 是顺序类型或都是集合类型时,不仅要求这两个类型是相容的, 而且要求 E 的值不超出 T 所定义的值的范围;否则将产生类型溢出,而这种错 误只能在你运行程序时进行检查,因此你必须要避免不发生这种错误。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号