枚举子界记录集合.ppt
《枚举子界记录集合.ppt》由会员分享,可在线阅读,更多相关《枚举子界记录集合.ppt(28页珍藏版)》请在三一办公上搜索。
1、江苏省锡山高级中学 信息技术教研组,整型,实型,字符型,布尔型,枚举,子界,集合,记录,数组,文件,动态,简单 自定义类型构造 指针,数据类型,江苏省锡山高级中学 信息技术教研组,一、枚举类型,在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。,例如,type days=(sun,mon,tue,wed,thu,fri,sat);colors=(red,yellow,blue,white,black,green);type
2、colortype=(red,yellow,blue,white);numbers=(1,3,5,7,9);ty=(for,do,while);,括号中的每一个标识符都称为枚举元素或枚举常量。定义枚举类型时列出的所有枚举元素构成了这种枚举类型的值域(取值范围)。,枚举类型的一般格式:type 枚举类型标识符(标识符1,标识符2,标识符n),性别、月份、星期几、颜色、单位名、学历、职业等,江苏省锡山高级中学 信息技术教研组,枚举类型变量定义了枚举类型,就可以把某些变量说明成该类型。var holiday,workday:day;incolor:colors;也可以把变量的说明与类型的定义合并在一
3、起,如:var holiday,workday:(sun,mon,tue,wed,thu,fri,sat);incolor:(red,yellow,blue,white,black,green);,江苏省锡山高级中学 信息技术教研组,枚举类型的性质,枚举类型属于顺序类型根据定义类型时各枚举元素的排列顺序确定它们的序号,第一个枚举元素的序号为0。,例如:设有定义:type days=(sun,mon,tue,wed,thu,fri,sat);则:ord(sun)=0,ord(mon)=1,ord(sat)=6;succ(sun)=mon,succ(mon)=tue,succ(fri)=sat;p
4、red(mon)=sun,pred(tue)=mon,pred(sat)=fri。,注意:枚举类型中的第一个元素无前趋,最后一个元素无后继。,江苏省锡山高级中学 信息技术教研组,对枚举类型只能进行赋值运算和关系运算枚举类型不能进行算术运算和逻辑运算。在枚举元素比较时,实际上是对其序号的比较。赋值或比较时,应注意类型一致。,例如,设程序有如下说明:type days=(sun,mon,tue,wed,thu,fri,sat);colors=(red,yellow,blue,white,black,green);var color:colors;weekday:days;则下列语句是合法的:wee
5、kday:=mon;if weekday=sun then write(rest);weekdaysun下面语句是不合法的:mon:=weekday;mon:=1;if weekday=sun or sat then write(rest);sunredweekdaycolor,江苏省锡山高级中学 信息技术教研组,枚举变量的值只能用赋值语句来获得不能用read(或readln)读一个枚举型的值。不能用write(或writeln)输出一个枚举型的值。如write(red)是非法的,会发生编译错误。,同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。,如:type color1=(red,
6、yellow,white);color2=(blue,red,black);是不允许的,因为red属于两个枚举类型。,对枚举数据的输入与输出可通过间接方式进行。输入时,一般可输入一个代码,通过程序进行转换,输出时,也只是打印出与枚举元素相对应的字符串。,江苏省锡山高级中学 信息技术教研组,1以下正确的枚举定义是:(A)type vowel=(a,e,i,o,u);(B)type num=(1.3,8.10);(C)type color=(red,blue,green);(D)type realtype=(1.5,2.5,3.5,4.5);2 若要用枚举类型表识符来表示加、减、乘、除运算,则以下
7、正确的定义形式是:(A)type op=(+,-,*,/);(B)type op=(+,-,*,/);(C)rype op=(A+,B-,C*,D/);(D)type op=(add,sub,mult,divi);3 设有如下类型定义和变量说明:type colors=(red,yellow,blue,white);var color1,color2:colors;判断下列语句是否正确,为什么?(1)colors:=red;(2)color1:=yellow;(3)color2:=color1;(4)color1:=blue;(5)color2:=black;(6)color1:=blue+w
8、hite;4 设有如下类型定义和变量说明;type colors=(red,yellow,blue,white,black);var color1,color2:colors;如果已经赋值:color1:=black;color2:=white;指出下列函数的值:(1)pred(blue)(2)pred(succ(color2)(3)succ(red)(4)succ(pred(color1)(5)ord(color2)(6)ord(pred(succ(yellow),巩固练习,C,D,2,35,yellow,whiteYellow,black3,1,江苏省锡山高级中学 信息技术教研组,prog
9、ram ex8_1;type week=(sun,mon,tue,wed,thu,fri,sat);var i:integer;day,sucday:week;beginwrite(What date is it);readln(i);case i of 根据输入i转换成枚举型1:day:=mon;2:day:=tue;3:day:=wed;4:day:=thu;5:day:=fri;6:day:=sat;7:day:=sun;end;,Ex8-1 一周七天用sun,mon,tue,wed,thu,fri,sat表示,要求利用枚举类型编程:当输入星期几的数字,能输出它的后一天是星期几(也用英文
10、表示)。,计算明天sucdayif(day=sat)then sucday:=sun else sucday:=succ(day);输出明天是星期几write(The next day is);case sucday ofsun:writeln(sunday);mon:writeln(monday);tue:writeln(tuesday);wed:writeln(wednesay);thu:writeln(thursday);fri:writeln(friday);sat:writeln(saturday);end;end.,评注:程序中变量day、sucday分别表示今天、明天。,江苏省锡
11、山高级中学 信息技术教研组,二、子界类型,子界类型的一般格式:type.,type age=0.5.150;letter=0.z;let1=z.a;都是错误的。,可以直接在变量说明中定义子界类型。,下界和上界必须是同一顺序类型(该类型称为子界类型的基类型),且上界的序号必须大于下界的序号。,如:type letter=a.d;var ch1,ch2:letter;可以合并成:var ch1,ch2:a.d;,说明:其中常量1称为子界的下界,常量2称为子界的上界。,在程序中对所用的变量的值域作具体规定,江苏省锡山高级中学 信息技术教研组,子界类型数据的运算规则凡可使用基类型的运算规则同样适用该类
12、型的子界类型。对基类型的运算规则同样适用于该类型的子界类型。基类型相同的不同子界类型数据可以进行混合运算。,例如:设有如下说明:typea=1.100;b=1.1000;c=1.500;var x:a;y:b;t:c;z:integer;则下列语句也是合法的:Z:=Sqr(x)+y+t;下列语句:t:=x+y+z;当X+Y+Z的值在1500范围内时是合法的,否则会出错。,江苏省锡山高级中学 信息技术教研组,5 下列子界类型定义语句中正确的是:(A)type num=1.0.100.20;(B)type num=1.100;(C)type num=a.f;(D)type num=z.a;6 已知
13、如下子界类型定义及变量声明:typentype=-10.10;var m:ntype;n:integer;问下列语句哪一个可能产生错误:(A)n:=m;(B)m:=n;(C)n:=abs(m);(D)n:=n+m;7 下列子界类型定义语句哪些是错误的:(1)type a=10.10;(2)type a=10.5;(3)type a=10.sqr(10);(4)type a=10.12.10.25;(5)type a=1.5;(6)type a=1.5,巩固练习,B,B,1,2,3,4,6,江苏省锡山高级中学 信息技术教研组,ex8_2按年月日的顺序输入一日期,输出该日期是这一年中的的第几天,P
14、rogram ex8_2;Var month,I:1.12;day:1:31;year,dayth;integer;Begin Read(year,month,day);dayth:=0;For I:=1 to month-1 do Case I of 1,3,5,7,8,10,12:dayth:=dayth+31;4,6,9,11:dayth:=dayth+30;2:if(year mod 4=0)and(year mod1000)or(year mod 400=0)then dayth:=dayth+29 else dayth:=dayth+28;End;dayth:=dayth+day;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 枚举 记录 集合

链接地址:https://www.31ppt.com/p-4983524.html