Image Modal

合肥
合肥奥数网

合肥站
奥数网

信息学竞赛Pascal语言:子界与枚举类型(七)(2)

合肥奥数网整理 2012-12-14 16:40:16

  枚举类型:

  通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:

  (标识符1,……,标识符n)

  例如:

  typedaystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)

  枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:<

  typedaystype=('sun','mon','tue','wed','thu','fri','sat')

  枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:

  typedaytype1=(monday,tuesday);

  daytype2=(monday,wednesday);

  可以将枚举类型的定义和变量的定义结合在一起。例如:vara:(monday,tuesday,sunday)

  枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始。

  例如:已经定义daystype

  ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday

  但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。TurboPascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。

  例如:枚举值的输出

  casedayof

  sunday:write('sunday');

  monday:write('monday');

  tuesday:write('tuesday');

  wednesday:write('wednesday');

  thursday:write('thursday');

  friday:write('friday');

  saturday:write('saturday');

  end;

  练习:

  1.按月、日顺序输入今年的一个日期,输出该日是星期几?已知今年元旦是星期一。

  往期最新阅读:信息学竞赛Pascal语言:函数和过程(六)  

         信息学竞赛Pascal语言 数组与字符串(五)

  更多内容,请参加合肥奥数网“杯赛竞赛”频道。进入苏州奥数网首页

首页 上一页 下一页 尾页
温馨提示:福利来咯!距离数学拿高分,你和孩子只差这一步!→领取福利

相关推荐

点击查看更多
重点初中
首页 导航