




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2011/11/26康杰中学: 赵 辉第六章第六章 枚举与子界枚举与子界主要内容:6.1.1 枚举类型的定义6.1.2 枚举类型数据的特点及应用6.1.3 枚举类型应用举例6.2.1 子界类型的定义6.2.2 子界类型的运算规则pascal语言中的数据类型语言中的数据类型目前为止我们所用到的数据类型包括目前为止我们所用到的数据类型包括: :l整型(整型(integer longint)l实型(实型(real double)l布尔型(布尔型(boolean)l字符型(字符型(char)以上数据类型是以上数据类型是pascalpascal规定的标准数据类型,只要规定的标准数据类型,只要用相应的关键
2、字,用相应的关键字,pascalpascal编译系统就能识别并按这编译系统就能识别并按这些类型来处理些类型来处理pascal语言中的数据类型语言中的数据类型除以上标准数据类型之外,除以上标准数据类型之外,pascalpascal还允许用户还允许用户自定义数据类型自定义数据类型数据类型数据类型简单类型简单类型构造类型构造类型指针类型指针类型基本类型基本类型枚举枚举子界子界数组数组集合集合记录记录文件文件整型整型实型实型字符型字符型布尔型布尔型自定义数据类型自定义数据类型变量与类型:变量与类型:var i:integer; r:real;其表示的类型含义为:其表示的类型含义为: 确定一个值域,即取
3、值范围(确定一个值域,即取值范围(i i变量为整型,表示变量为整型,表示i i只能在只能在 整型数规定的整型数规定的-3276832767-3276832767这个范围内取值,超过此范这个范围内取值,超过此范 围就会出错围就会出错 确定数据的存储方式(整型数据和实型数据在计算机中的确定数据的存储方式(整型数据和实型数据在计算机中的 存储方式是不同的存储方式是不同的) ) 规定的相应运算种类(例如实型不能进行规定的相应运算种类(例如实型不能进行DIVDIV,MODMOD运算)运算)算法算法+ +数据结构数据结构= =程序程序即:不同的数据类型所使用的操作方法(算法)是不同的。即:不同的数据类型所
4、使用的操作方法(算法)是不同的。因此,针对具体的问题选择相应的数据类型是程序设计的关键因此,针对具体的问题选择相应的数据类型是程序设计的关键6.1 枚举类型枚举类型为什么要使用枚举类型:为什么要使用枚举类型:如性别,月份,颜色,星期几等一系列非数值问题时,我们如性别,月份,颜色,星期几等一系列非数值问题时,我们应当怎样处理?应当怎样处理?例如:使变量例如:使变量sexsex为整型变量为整型变量if sex=1 then writeln(he is a man)else writeln(she is a women);缺点:不直观,可读性差缺点:不直观,可读性差if sex=man then w
5、riteln(he is a man)else writeln(she is a women);如果写成:如果写成:事先考虑到某一变量尽可能取的值,尽量用自然语言中含义事先考虑到某一变量尽可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称作枚举方法,清楚的单词来表示它的每一个值,这种方法称作枚举方法,这种方法定义的类型称为这种方法定义的类型称为枚举类型枚举类型。枚举类型的定义:枚举类型的定义:type 枚举类型标识符枚举类型标识符=(标识符(标识符1,标识符,标识符2););type color=(red,yellow,blue,white,black); xingbie
6、=(man,women);例如:定义颜色的枚举类型和性别的枚举类型例如:定义颜色的枚举类型和性别的枚举类型6.1 枚举类型枚举类型枚举类型的应用举例:枚举类型的应用举例:program ex1;program ex1;typetype sextype=(man,woman); sextype=(man,woman);varvar sex:sextype; sex:sextype;beginbegin sex:=women; sex:=women; if sex=man then if sex=man then writeln(he is a man) writeln(he is a man)
7、else else writeln(he is a women); writeln(he is a women);gram ex2;program ex2;typetype colortype=(red,yellow,blue); colortype=(red,yellow,blue);varvar color:colortype; color:colortype;beginbegin color=red; color=red; case color of case color of red:writeln(the color is red); red:writeln(t
8、he color is red); yellow:writeln(the color is yellow); yellow:writeln(the color is yellow); blue:writeln(the color is blue); blue:writeln(the color is blue); end; end;end.end.6.1 枚举类型枚举类型6.1.2 枚举类型的特点及应用枚举类型的特点及应用枚举类型的数据性质:枚举类型的数据性质: 枚举元素只能是标识符,而不能是枚举元素只能是标识符,而不能是数字常量数字常量和和 字符常量,字符常量,例如下面的定义是错误的例如下面
9、的定义是错误的type colortpye=(red,yellow,blue); numtype=(1,2,3,4,5); 类型标识符和枚举元素不得使用类型标识符和枚举元素不得使用pascal中的保留字中的保留字和关键字,否则编译时将出错误和关键字,否则编译时将出错误 同一个枚举元素不能出现在两个或两个以上的枚举同一个枚举元素不能出现在两个或两个以上的枚举 类型定义中类型定义中type color1=(red,yellow,blue); color2=(red,black,white);是不允许的,因为是不允许的,因为red同属于了两个枚举类型同属于了两个枚举类型。 不要把作为枚举元素的标识符
10、视为变量名,它是不能不要把作为枚举元素的标识符视为变量名,它是不能 被赋值的,下面的赋值是错误的被赋值的,下面的赋值是错误的Red=red woman=0 枚举类型属于顺序类型枚举类型属于顺序类型。根据定义类型时个枚举元素。根据定义类型时个枚举元素 的排列顺序确定它们的序号。(前面的序号小,从的排列顺序确定它们的序号。(前面的序号小,从0 开始)例如:开始)例如:type colortype=(red,yellow,blue,white,black);则则ord(red)=0 succ(red)=yellow pred(black)=white6.1.2 枚举类型的特点及应用枚举类型的特点及应
11、用 枚举型数据只能进行关系运算(枚举型数据只能进行关系运算(=, =)不能进行算术运算()不能进行算术运算(+,-,*)和逻辑运算)和逻辑运算 (and,or) 枚举变量的值只能枚举变量的值只能用赋值语句来获得用赋值语句来获得,不能对枚举变,不能对枚举变 量进行读写。如下语句都是不合法的:量进行读写。如下语句都是不合法的:typetype colortype=(red,yellow,blue,white,black); colortype=(red,yellow,blue,white,black);VarVar color:colortype; color:colortype;BeginBeg
12、in read(color); read(color);或或write(color);write(color);总之:枚举类型的数据不能用总之:枚举类型的数据不能用readread和和writewrite语句进行读写语句进行读写6.1.2 枚举类型的特点及应用枚举类型的特点及应用 枚举变量可以作为循环变量。枚举元素可以作为循枚举变量可以作为循环变量。枚举元素可以作为循 环的初值和终值。环的初值和终值。如:如: for color:=red to black do共执行共执行5次循环(次循环(color=red-yellow-blue- white-black)6.1.2 枚举类型的特点及应用枚
13、举类型的特点及应用l【例6-1】l【例6-2】6.1.3 枚举类型应用举例6.2.1 子界类型的定义子界类型的定义实际问题实际问题: :一年中有多少个月一年中有多少个月? ?每一个月最多有多少天每一个月最多有多少天? ?一个班最多有多一个班最多有多少个人少个人? ?integerinteger类型所表示的范围是多少类型所表示的范围是多少? ?如果我们能在程序中对所有的变量的值域如果我们能在程序中对所有的变量的值域( (取值范围取值范围) )作具作具体规定的话体规定的话, ,就便于检查出那些不合法的数据就便于检查出那些不合法的数据例如一月中的日期只能是例如一月中的日期只能是1-311-31之间的
14、一个数值之间的一个数值, ,由于误操作输由于误操作输入了入了32,pascal32,pascal就能指出这个错误就能指出这个错误, ,不需要人工的干预不需要人工的干预. .子界类型子界类型: :规定的值域的规定的值域的上界上界和和下界下界及其及其类型类型的一种数据类型的一种数据类型子界类型的定义子界类型的定义: :TypeType days=1.31; days=1.31;Var Var someday:days someday:days 定义了一个定义了一个daysdays类型的变量类型的变量somedaysomeday somedaysomeday变量值的变量值的数据类型(基类型)为整型数
15、据类型(基类型)为整型 somedaysomeday的值只能在的值只能在131131范围范围6.2.1 子界类型的定义子界类型的定义子界类型定义说明:子界类型定义说明: 上界和下界必须是顺序类型,且为同一顺序类型。也上界和下界必须是顺序类型,且为同一顺序类型。也就是说整型,字符型,布尔型,枚举型数据都可以作就是说整型,字符型,布尔型,枚举型数据都可以作为上、下界。并且上界序号必须大于下界序号。为上、下界。并且上界序号必须大于下界序号。TypeType age=0.5.100 age=0.5.100 letter1=0.z letter1=0.z letter2=a.z letter2=a.z
16、letter3=z.a letter3=z.a以上定义的子界类型中哪些正确、哪些错误?为什么?以上定义的子界类型中哪些正确、哪些错误?为什么?6.2.1 子界类型的定义子界类型的定义 子界类型的上、下界确定了子界类型的基类型。子界类型的上、下界确定了子界类型的基类型。由于由于1和和31都是属整型数据,因此都是属整型数据,因此days类型的基类型类型的基类型为整型;为整型; someday变量的值为整型变量的值为整型 其值范围在其值范围在131之间之间TypeType days=1.31; days=1.31;Var Var someday:days someday:days 如果子界类型的基类
17、型为枚举型,则应在类型中先如果子界类型的基类型为枚举型,则应在类型中先 定义枚举类型定义枚举类型type type week=(mon,tue,wed,thu,fri,sat,sun);week=(mon,tue,wed,thu,fri,sat,sun); studyday=mon.fri; studyday=mon.fri;varvar day1:studyday; day1:studyday;day1day1变量的值只能变量的值只能取取mon,tue,wed,thu,mon,tue,wed,thu,frifri之一之一6.2.1 子界类型的定义子界类型的定义子界类型的作用:子界类型的作用:
18、 在程序设计中对数据在程序设计中对数据“界界”的检查是很重要的一项的检查是很重要的一项 工作而又常常被人忽略。定义子界类型后,就可工作而又常常被人忽略。定义子界类型后,就可 以把界的检查工作交给编译器完成,不需要人工以把界的检查工作交给编译器完成,不需要人工 进行。进行。 节省内存空间,增强程序的可读性。节省内存空间,增强程序的可读性。6.2.1 子界类型的定义子界类型的定义子界类型的运算规则:子界类型的运算规则: 凡可以使用子界类型的基类型数据之处,均可以使凡可以使用子界类型的基类型数据之处,均可以使 用子界类型的数据。用子界类型的数据。typetype r=1.10; r=1.10;Var
19、Var radius:r; radius:r;问问sqr(radius)合法吗?合法吗? 对基类型的运算规则同样适用于该类型的子界类型。对基类型的运算规则同样适用于该类型的子界类型。TypeType person=1.100; person=1.100;Var Var total:person total:person;问:问:total div 100 total mod 100 total div 100 total mod 100 合法吗?合法吗?6.2.2 子界类型的运算规则子界类型的运算规则 基类型相同的不同子界类型数据,可以出现在同基类型相同的不同子界类型数据,可以出现在同 一个表达式内,即混合运算一个表达式内,即混合运算type a=1.100; b=1.1000; c=1.500;var x:a; y:b; z:c; t:integer;begin read(x,y,z); t:=x+y+z; writeln(t=,t);end.输入:输入:50 100 15050 100 150问:将红色标出部分改为问:将红色标出部分改为 z:=x+y+z;z:=x+y+z;合法吗?合法吗?6.2.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司设备赠予合同范本
- 广告服务采购居间合同范例
- 2025年自返式取样器合作协议书
- 七年级生物下册 13.2《预防传染病》教学实录1 (新版)北师大版
- mongodg数据库报文结构
- Unit 2 Shopping Lesson3 (教学设计)-2024-2025学年北师大版(三起)英语四年级上册
- 电能变现方式
- 电流计算表达式
- 注重心理健康的班级活动计划
- 书香校园社团发展规划计划
- 《两办意见》(关于进一步加强矿山安全生产工作的意见)培训课件2024
- 《我爱上班》朗诵稿
- AQ-T 1009-2021矿山救护队标准化考核规范
- 医疗机构卫生监督培训
- 临床重点专科申报书(麻醉、病理、检验)
- 第2课+古代希腊罗马【中职专用】《世界历史》(高教版2023基础模块)
- 电动葫芦检查项目内容及判定标准
- JTGT F81-01-2004 公路工程基桩动测技术规程
- 出入境知识讲座
- 设计服务项目应急预案
- 义务教育科学课程标准(2022年版)解读
评论
0/150
提交评论