- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五讲:枚举型/子界型/函数与过程/集合与记录/指针
一、枚举型和子界型
.1.1 类型定义 类型定义的语法格式: type 标识符1=类型1; 标识符1=类型1; …… 标识符n=类型n;
.1.2 枚举类型 通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序一致的。枚举类型的形式:(标识符1,……,标识符n)例如:type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday) 枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的: type daystype=(sun,mon,tue,wed,thu,fri,sat) 枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:type daytype1=(monday,tuesday); daytype2=(monday,wednesday); 可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday) 枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始。例如:已经定义daystype ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。例如:枚举值的输出 case day of sunday:write(sunday); monday:write(monday); tuesday:write(tuesday); wednesday:write(wednesday); thursday:write(thursday); friday:write(friday); saturday:write(saturday); end;
.1.3 子界类型 子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值域区间。子界类型的形式: 常量..常量 两个常量必须是同一种顺序类型。例如:a..b,要求a=b例如: type a=1..3;b=a..d; 可以将子界类型的定义和变量的定义结合在一起。例如:var a:1..9例 按月、日、年顺序读入一日期,输出该日期是这一年中的第几天。 program date; var year:0..2010; month,i:1..12; day:1..31; dayth:integer; begin read(month,day,year); dyath:=0; for i:=1 to month-1 do case i of 1,3,5,7,8,10,12:dayth:=dayth+31; 2:if ((year mod 4=0)and(year mod 1000)or(year mod 400 =0) then dayth:=dayth+29 else dayth=:=dayth+28; 4,6,9,11:dayth:=dayth+30; end; dayth:=dayth+day; writeln(dayth) end. 函数和过程 函数 如果一个子程序执行后能够返回其结果,那么它就可以用于表达式中,称这种子程序为函数,这种语句序列的定义称为函数说明。函数说明形式如下: function 函数名(形式参数表):函数类型; 说明部分; begin 语句1; 语句2; …… 语句n end 函数返回一个函数值,过程则能完成一系列各种操作。函数的调用方式出现在表达式中,而过程调用是一句独立的语句。例:计算|X|的函数 function zhoufei(x:real):real; var z:integer; begin if x=0 then z:=x else z:=-x zhoufei:=z; end; Turbo Pascal规定一个函数只能求出一个简单值。
给某个语句序列组成的子程序赋于一个适当的名字。程序中凡是需要出现这个语句序列的地方,可以简单的
文档评论(0)