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

信息学竞赛Pascal语言:集合类型(八) 标签:信息学

<p><strong>优学合肥奥数网讯</strong>:青少年信息学竞赛Pascal语言:集合类型。</p><p>1.集合的定义:</p><p>type 类型名=set of 基类型</p><p>例如:</p><p>type</p><p>num=set of char;</p><p>var</p><p>n:num;</p><p>或</p><p>var</p><p>n: set of char;</p><p>2.集合的表示:</p><p>用一组方括号括号一组元素来表示,元素之间用逗号分隔。如:</p><p>--有四个枚举量的集合</p><p>['A','B','C','D']--有四个字符的集合</p><p>--包含了1到20中所有整数的集合</p><p>--只有一个元素0的单元素集</p><p>[]--空集</p><p>3.集合的运算:</p><p>(1)并(a+b):属于a或属于b</p><p>+的值为</p><p>(2)交(a*b):既属于a又属于b</p><p>*的值为</p><p>(3)差(a-b):属于a但不属于b</p><p>-的值为</p><p>(4)相等(a=b):a,b的元素完全一样</p><p>=的值为false</p><p>(5)不等(<>):元素不一样</p><p><>的值为true</p><p>(6)包含于(<=):</p><p><=的值为false</p><p>(7)包含(>=):</p><p>>=的值为true</p><p>(8)成员(in):</p><p>1 in 的值为true</p><p>4.注意事项:</p><p>(1)集合运算相当快,在程序中常用集合表达式来描述复杂的测试。如</p><p>A)条件表达式: (ch='T') or (ch='t') or (ch='Y') or (ch='y') 可用集合表达式表示为:</p><p>ch in ['T','t','Y','y']</p><p>B)if (ch>=20) and (ch<=50) then ...;</p><p>可写成:</p><p>if ch in then ...;</p><p>(2)集合类型是一种使用简便,节省内存面又运算速度快的数据类型。</p><p>(3)Turbo Pascal规定集合的元素个数不超过256个(当实际问题所需的元素个数大于256时, 可采用布尔数组代替集合类型)。所以如下定义是错误的: var i: set of integer;</p><p>(4)集合类型变量不能进行算术运算,了不允许用读/写语句直接输入/输出集合。 所以集合的建立:</p><p> A)要通过赋值语句实现;</p><p> B)或先初始化一个集合,然后通过并运算向集合中逐步加入各个元素.</p><p>(5)集合元素是无序的,所以ord,pred和succ函数不能用于集合类型的变量。</p><p>练习:</p><p>编程读入两个字符串,然后输出如下信息:</p><p>(1)出现在某一个字符串中至少一次的字母和数字;</p><p>(2)同时出现在两个字符串中至少一次的字母和数字;</p><p>(3)出现在一个字符串中而不出现在另一个字符串中的字母和数字;</p><p>(4)不出现在任何字符串中的字母和数字。</p><p><strong>往期最新阅读</strong>:信息学竞赛Pascal语言:函数和过程(六)</p><p>信息学竞赛Pascal语言:子界与枚举类型(七)</p><p>更多内容,请参加优学合肥奥数网“<strong>杯赛竞赛</strong>”频道。</p>
页: [1]
查看完整版本: 信息学竞赛Pascal语言:集合类型(八) 标签:信息学