欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    枚举子界记录集合.ppt

    • 资源ID:4983524       资源大小:293.61KB        全文页数:28页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    枚举子界记录集合.ppt

    江苏省锡山高级中学 信息技术教研组,整型,实型,字符型,布尔型,枚举,子界,集合,记录,数组,文件,动态,简单 自定义类型构造 指针,数据类型,江苏省锡山高级中学 信息技术教研组,一、枚举类型,在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。,例如,type days=(sun,mon,tue,wed,thu,fri,sat);colors=(red,yellow,blue,white,black,green);type 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;也可以把变量的说明与类型的定义合并在一起,如: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;pred(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;则下列语句是合法的:weekday:=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,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 若要用枚举类型表识符来表示加、减、乘、除运算,则以下正确的定义形式是:(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+white;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,江苏省锡山高级中学 信息技术教研组,program 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表示,要求利用枚举类型编程:当输入星期几的数字,能输出它的后一天是星期几(也用英文表示)。,计算明天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分别表示今天、明天。,江苏省锡山高级中学 信息技术教研组,二、子界类型,子界类型的一般格式: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称为子界的上界。,在程序中对所用的变量的值域作具体规定,江苏省锡山高级中学 信息技术教研组,子界类型数据的运算规则凡可使用基类型的运算规则同样适用该类型的子界类型。对基类型的运算规则同样适用于该类型的子界类型。基类型相同的不同子界类型数据可以进行混合运算。,例如:设有如下说明: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 已知如下子界类型定义及变量声明: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按年月日的顺序输入一日期,输出该日期是这一年中的的第几天,Program 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;Write(dayth);End.,江苏省锡山高级中学 信息技术教研组,三 赋值相容1.类型相容性类型相容是对参加同一运算的两个对象的类型要求。设有两个变量,如果满足下列条件之一,就说这两个变量的类型相容。(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.赋值相容性赋值相容是对赋值操作的两个对象的类型要求。设赋值语句“:”左边的变量类型为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所定义的值的范围;否则将产生类型溢出,而这种错误只能在你运行程序时进行检查,因此你必须要避免不发生这种错误。,江苏省锡山高级中学 信息技术教研组,三、集合,定义:type 类型名=set of 基类型-typenum=set of char;var n:num;-var n:set of char;,由具有某些共同特征的元素构成的一个整体,江苏省锡山高级中学 信息技术教研组,表示:用一对方括号表示,元素之间用逗号分隔。,red,green,black,white有四个枚举量的集合A,B,C,D有四个字符的集合1.20包含了1到20中所有整数的集合0只有一个元素0的单元素集空集,在集合中,如果元素的值是连续的,则可用子界型的表示方法表示。例如:1,2,3,4,5,7,8,9,10,15可以表示成:1.5,7.10,15 集合的值与方括号内元素出现的次序无关。例如,1,5,8 和5,1,8的值相等在集合中同一元素的重复出现对集合的值没有影响。例如,1,8,5,1,8与1,5,8的值相等。每个元素可用基类型所允许的表达式来表示。如1,1+2,4、ch、succ(ch)。,江苏省锡山高级中学 信息技术教研组,运算p126,(1)赋值(:=):jihe1:=A.C(2)并(+):0.7+0.4的值为0.7(3)交(*):0.7*0.4的值为0.4(4)差(-):0.7-0.4的值为5.7(5)相等(=):0.7=0.4的值为false(6)不等():0.70.4的值为true(7)包含于(=):0.7=0.4的值为true(9)成员(in)1 in 0.4的值为true,江苏省锡山高级中学 信息技术教研组,练习 设有如下说明:type weekday=(sun,mon,tue,wed,thu,fri,sat);week=set of weekday;subnum=set of 1.50;写出下列表达式的值:sun,sat+sun,tue,frisun,fri*mon,tuesun,sat*sun.satsun-mon,tuemon-mon,tuesun.sat-mon,sun,sat1,2,3,5=1,5,3,21,2,3,41.41,2,3,5=1.31.5=1.41,2,3=1.3 2 in1.10,sun,sat,tue,fri sun,sat sun tue.fri TRUE FALSE TRUEFALSE TRUE TRUE,江苏省锡山高级中学 信息技术教研组,注意,(1)集合运算相当快,在程序中常用集合表达式来描述复杂的测试。如 A)条件表达式:(ch=T)or(ch=t)or(ch=Y)or(ch=y)可用集合表达式表示为:ch in T,t,Y,y B)if(ch=20)and(ch=50)then.;可写成:if ch in 20.50 then.;(2)集合元素是无序的,所以ord,pred和succ函数不能用于集合类型的变量(3)Turbo Pascal规定集合的元素个数不超过256个(当实际问题所需的元素个数大于256时,可采用布尔数组代替集合类型)。如下定义是错误的:var i:set of integer;(4)集合类型变量不能进行算术运算,不允许用读/写语句直接输入/输出集合。集合的建立:A)要通过赋值语句实现;B)先初始化一个集合,然后通过并运算向集合中逐步加入各个元素.,江苏省锡山高级中学 信息技术教研组,例ex8_3输入一系列字符,对其中的数字字符、字母字符和其它字符分别计数。输入?后结束。program ex8_3;var id,il,io:integer;ch:char;letter:set of char;digit:set of 0.9;beginletter=a.z,A.Z;digit:=0.9;id:=0;il:=0;io:=0;repeat read(ch);if ch in letter then il:=il+1 else if ch in digit then id:=id+1 else io:=io+1;until ch=?;writeln(letter:,il,digit:,id,Other:,io);end.,江苏省锡山高级中学 信息技术教研组,Ex8_4编制用筛法求1-n(n200)以内素数的程序。,分析:由希腊著名数学家埃拉托色尼提出的筛法,步骤如下:将所有候选数放入筛中;找筛中最小数(必为素数)next,放入集合primes中;将next的所有倍数从筛中筛去;重复直到筛空。,江苏省锡山高级中学 信息技术教研组,j:=0;打印出所有素数 请同学们补充end.,program ex8_3;const n=200;var sieve,primes:set of 2.n;next,j:integer;beginsieve:=2.n;“筛子”,将元素全都放进集合;存放素数的集合,开始时为空next:=2;repeat 找筛sieve中最小一个数while not(next in sieve)and(next=n)do;如果next不在集合中,将集合中的next增加1,直到是集合中的元素;将最小数放入素数集合中 j:=next;while j=n do begin;enduntil sieve=;,primes:=;,next:=succ(next);,primes:=primes+next;,sieve:=sieve-j;,j:=j+next,江苏省锡山高级中学 信息技术教研组,上机练习,例1:建立两个集合,然后对它们进行多种集合运算,并且输出结果。例2:运用集合完成筛法找素数。,江苏省锡山高级中学 信息技术教研组,记录,定义 type 类型标识符=record字段名1:类型1;字段名2:类型2;.字段名n:类型n;end;,如:type studata=recordnum:string6;name:string8;sex:boolean;s:array1.5 of real;end;varstudent:studata;students:array1.10 of studata;,在实际问题中可能会遇到另一类数据,它是由性质各不相同的成份组成的,即它的各个成份可能具有不同的类型。例如,有关一个学生的数据包含下列项目:学号字符串类型姓名字符串类型年龄整型性别字符型成绩实型数组,江苏省锡山高级中学 信息技术教研组,可以合并成:var x:recordyear:1900.1999;month:1.12;day:1.31end;,说明,江苏省锡山高级中学 信息技术教研组,域变量的使用和一般的变量一样,即域变量是属于什么数据类型,便可以进行那种数据类型所允许的操作。开域语句:with。with 记录名 do 语句;或 with 记录名1,记录名2,.do 语句;,如:write(Input year:);readln(x.year);write(Input month:);readln(x.month);write(Input day:);readln(x.day);,with x dobeginwrite(Input year:);readln(year);write(Input month:);readln(month);write(Input day:);readln(day);end;,江苏省锡山高级中学 信息技术教研组,Ex8_4某人事登记表包括以下几个数据项,姓名最多用个字符表示,性别用male,female分别表示男女,出生日期用年月日表示,年份在到之间,家庭住址最多用40个字符表示以下用一个记录来表示的数据结构,请将程序予以完善Type sexs=();Date=record Year:;Month:;Day:;End;Personal=;Name:string15;Sex:;Birthdate:;Home:string40 End;,江苏省锡山高级中学 信息技术教研组,作业练习1水果店出售4种水果的售价如表7-1所示。表7-1 水果的售价名称 售价苹果(apple)2.20元/kg桔子(orange)2.00元/kg葡萄(grape)1.80元/kg香蕉(banana)1.60元/kg编写程序,选择水果名称并输入重量后,将显示水果的名称、单价、重量及总价,如上表所示。2输入一个英语句子,以句号为结束标志,统计句子中元音字母出现的次数,把句子所有辅音字母组成一个集合,并把这些辅音字母打印出来。3 输入五个学生的出生日期(月/日/年)和当天的日期,然后用计算机计算出每个人到当天为止的年龄各是多少?(如某人1975年10月1日出生,今天是94年12月1日,则他的年龄应为19岁,而另一人的出生日期为76年12月30日,则他的年龄为17岁。)4利用记录类型存储任意一个年号和月份,判断某年是否是闰年,并求出任意月份的天数。5 完成一份循环练习试卷。上面三个程序就写在试卷上最后。,第三节夜自修前由11班邵希乐同学收齐,并交至图书馆底楼网络中心处,

    注意事项

    本文(枚举子界记录集合.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开