meili 发表于 2022-10-21 20:47:18

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

<p><strong>优学合肥奥数网讯</strong>:青少年信息学竞赛Pascal语言:子界与枚举类型。</p><p>Pascal有丰富的数据类型,在程序设计中有特殊而方便的应用。</p><p>类型定义的语法格式:</p><p>type</p><p><标识符1>=<类型1>;</p><p><标识符2>=<类型2>;</p><p>……</p><p><标识符n>=<类型n>;</p><p><strong>子界与枚举</strong></p><p><strong>子界类型:</strong></p><p>当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。</p><p>定义如下:</p><p>typeriqi=1..31;</p><p>zimu='A'..'Z';</p><p>varday:riqi;</p><p>ch1:zimu;</p><p>也可以直接定义:</p><p>day:1..31;</p><p>year:0..200;</p><p>ch1:'A'..'Z';</p><p><strong>下一页阅读</strong>:<strong>枚举类型</strong><strong></strong></p><p><strong>枚举类型:</strong></p><p>通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:</p><p>(标识符1,……,标识符n)</p><p>例如:</p><p>typedaystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)</p><p>枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:<</p><p>typedaystype=('sun','mon','tue','wed','thu','fri','sat')</p><p>枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:</p><p>typedaytype1=(monday,tuesday);</p><p>daytype2=(monday,wednesday);</p><p>可以将枚举类型的定义和变量的定义结合在一起。例如:vara:(monday,tuesday,sunday)</p><p>枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始。</p><p>例如:已经定义daystype</p><p>ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday</p><p>但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。TurboPascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。</p><p>例如:枚举值的输出</p><p>casedayof</p><p>sunday:write('sunday');</p><p>monday:write('monday');</p><p>tuesday:write('tuesday');</p><p>wednesday:write('wednesday');</p><p>thursday:write('thursday');</p><p>friday:write('friday');</p><p>saturday:write('saturday');</p><p>end;</p><p>练习:</p><p>1.按月、日顺序输入今年的一个日期,输出该日是星期几?已知今年元旦是星期一。</p><p><strong>往期最新阅读</strong>:信息学竞赛Pascal语言:函数和过程(六)</p><p>信息学竞赛Pascal语言 数组与字符串(五)</p><p>更多内容,请参加优学合肥奥数网“<strong>杯赛竞赛</strong>”频道。</p>
页: [1]
查看完整版本: 信息学竞赛Pascal语言:子界与枚举类型(七) 标签:信息学