信息学竞赛Pascal语言:子界与枚举类型(七)_杯赛竞赛-查字典奥数网
 
请输入您要查询的关键词

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

2012-12-14 16:40:16     标签:信息学

查字典合肥奥数网讯:青少年信息学竞赛Pascal语言:子界与枚举类型。

Pascal有丰富的数据类型,在程序设计中有特殊而方便的应用。

类型定义的语法格式:

type

<标识符1>=<类型1>;

<标识符2>=<类型2>;

……

<标识符n>=<类型n>;

子界与枚举

子界类型:

当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。

定义如下:

typeriqi=1..31;

zimu='A'..'Z';

varday:riqi;

ch1:zimu;

也可以直接定义:

day:1..31;

year:0..200;

ch1:'A'..'Z';

下一页阅读枚举类型

枚举类型:

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

(标识符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语言 数组与字符串(五)

更多内容,请参加查字典合肥奥数网“杯赛竞赛”频道。

点击显示
上一篇:信息学竞赛Pascal语言:集合类型(八)
下一篇:信息学竞赛Pascal语言:函数和过程(六)
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关文章
热门文章
最新文章
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •   信息学竞赛Pascal语言:子界与枚举类型(七)_杯赛竞赛-查字典奥数网
     
    请输入您要查询的关键词

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

    2012-12-14 16:40:16     标签:信息学

    查字典合肥奥数网讯:青少年信息学竞赛Pascal语言:子界与枚举类型。

    Pascal有丰富的数据类型,在程序设计中有特殊而方便的应用。

    类型定义的语法格式:

    type

    <标识符1>=<类型1>;

    <标识符2>=<类型2>;

    ……

    <标识符n>=<类型n>;

    子界与枚举

    子界类型:

    当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。

    定义如下:

    typeriqi=1..31;

    zimu='A'..'Z';

    varday:riqi;

    ch1:zimu;

    也可以直接定义:

    day:1..31;

    year:0..200;

    ch1:'A'..'Z';

    下一页阅读枚举类型

    枚举类型:

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

    (标识符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语言 数组与字符串(五)

    更多内容,请参加查字典合肥奥数网“杯赛竞赛”频道。

    点击显示
    上一篇:信息学竞赛Pascal语言:集合类型(八)
    下一篇:信息学竞赛Pascal语言:函数和过程(六)
    推荐文章
    猜你喜欢
    附近的人在看
    推荐阅读
    拓展阅读
    相关文章
    热门文章
    最新文章
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •