枚举与子界类型

文档属性

名称 枚举与子界类型
格式 rar
文件大小 12.9KB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2010-10-17 23:57:00

图片预览

文档简介

(共14张PPT)
标准数据类型
实型、整型、字符型、布尔型
(不必定义可以直接引用)
用户定义类型 P126 第六章
枚举类型、子界类型
(先定义再引用)
枚举类型格式:
TYPE
<枚举类型标识符>=(<标识符1>,<标识符2>,…,<标识符n>);
VAR
<枚举类型变量表>:<枚举类型标识符>;

VAR
<枚举类型变量表>:(<标识符1>,<标识符2>,…,<标识符n>);
例子: Type
day=(Sunday,Monday,Tuesday,Wednesday,Thursday,
Friday,Saturday) ;
Var
today,tomorrow : day;

Var
today,tomorrow : (Sunday,Monday,Tuesday,Wednesday,
Thursday,Friday,Saturday)
枚举值只能是标识符(以字母开头的字母数字组合),每个枚举值只能出现在一个枚举类型定义中,并且只能在该定义中出现一次。
枚举类型说明: TYPE
<枚举类型标识符>=(<标识符1>,<标识符2>,…,<标识符n>);
VAR
<枚举类型变量表>:<枚举类型标识符>;
Type
t1=(‘a’, ‘b’, ‘c’, ‘d’) ;
t2=(1, 2, 3, 4, 5) ;
t3=(sun, mon, tue, wed, sun) ;
t4=(wed, thu, fri, sat) ;
赋值
Var
today,tomorrow : (Sunday,Monday,Tuesday,Wednesday,
Thursday,Friday,Saturday)
today:=Wednesday;
tomorrow:=Thursday;
运算(函数运算(ord/pred/succ) 、关系运算)
ord(today):=3;
pred(tomorrow):=Wednesday;
succ(tomorrow):=Friday;
today例1:输入今天是星期几的序号,给今天和明天赋枚举值,并输出明天是星期几 。(书本P129)
Program todaytomorrow(input,output);
Type
day=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
Var today,tomorrow:day; number: integer;
Begin
read(number);
CASE number OF
0 : today:=Sunday;
1 : today:=Monday;
2 : today:=Tuesday;
3 : today:=Wednesday;
4 : today:=Thursday;
5 : today:=Friday;
6 : today:=Saturday
End;
If today=Saturday
Then tomorrow:=Sunday
Else tomorrow:=succ(today);
write(‘ tomorrow is ’);
CASE tomorrow OF
Sunday : writeln(‘Sunday’);
Monday : writeln(‘Monday’);
Tuesday : writeln(‘Tuesday’);
Wednesday : writeln(‘Wednesday’);
Thursday : writeln(‘Thursday’);
Friday : writeln(‘Friday’);
Saturday : writeln(‘Saturday’)
End
End.
例2:(初赛篇P153)
设有四种水果:苹果、橘子、香蕉和菠萝,现要任取其中3种水果,不能重复,不计先后顺序,请编写程序列出所有可能的取法。
(寒假作业)从7张扑克牌中任取三张,有几种
组合方法?请编程输出所有组合形式。
子界类型格式:
TYPE
<子界类型标识符>=<常量1>..<常量2>;
VAR
<子界类型变量表>:<子界类型标识符>;

VAR
<子界类型变量表>:<常量1>..<常量2>;
例子: Type
day=(Sunday,Monday,Tuesday,Wednesday,Thursday,
Friday,Saturday) ;
schoolday=Monday..Friday;
age=10..100;
letter=‘a’ .. ‘z’
常量1和常量2必须是属于同一个有序类型(整型、字符型、布尔型、枚举型)的值。常量1的次序数小于常量2的次序数。
VAR
<子界类型变量表>:<常量1>..<常量2>;
例3:输入年、月,输出该月天数 。(书本P133)
PROGRAM monthdays ( input , output ) ;
VAR year :1..10000;
month:1..12;
days:28:31;
BEGIN
read( year , month ) ;
CASE month OF
1,3,5,7,8,10,12 : days:=31 ;
4,6,9,11 : days:=30 ;
2 : IF (year MOD 4=0) AND (year MOD 100<>0)
OR (year MOD 400=0)
THEN days:=29
ELSE days:=28
END ;
writeln( ‘year=’, year , ‘month=’ , month , ‘days=’, days)
END.
本次作业:P135
6.1 (today yesterday)
6.2
同课章节目录