人人终身学习知识网~是各类综合知识资源信息分享,提升综合素质与提高知识技能的终身学习网络平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

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

[复制链接]

优学合肥奥数网讯:青少年信息学竞赛Pascal语言:集合类型。

1.集合的定义:

type 类型名=set of 基类型

例如:

type

num=set of char;

var

n:num;

var

n: set of char;

2.集合的表示:

用一组方括号括号一组元素来表示,元素之间用逗号分隔。如:

[A,B,C,D]--有四个枚举量的集合

['A','B','C','D']--有四个字符的集合

[1..20]--包含了1到20中所有整数的集合

[0]--只有一个元素0的单元素集

[]--空集

3.集合的运算:

(1)并(a+b):属于a或属于b

[0..7]+[0..4]的值为[0..7]

(2)交(a*b):既属于a又属于b

[0..7]*[0..4]的值为[0..4]

(3)差(a-b):属于a但不属于b

[0..7]-[0..4]的值为[5..7]

(4)相等(a=b):a,b的元素完全一样

[0..7]=[0..4]的值为false

(5)不等(<>):元素不一样

[0..7]<>[0..4]的值为true

(6)包含于(<=):

[0..7]<=[0..4]的值为false

(7)包含(>=):

[0..7]>=[0..4]的值为true

(8)成员(in):

1 in [0..4]的值为true

4.注意事项:

(1)集合运算相当快,在程序中常用集合表达式来描述复杂的测试。如

A)条件表达式: (ch='T') or (ch='t') or (ch='Y') or (ch='y') 可用集合表达式表示为:

ch in ['T','t','Y','y']

B)if (ch>=20) and (ch<=50) then ...;

可写成:

if ch in [20..50] then ...;

(2)集合类型是一种使用简便,节省内存面又运算速度快的数据类型。

(3)Turbo Pascal规定集合的元素个数不超过256个(当实际问题所需的元素个数大于256时, 可采用布尔数组代替集合类型)。所以如下定义是错误的: var i: set of integer;

(4)集合类型变量不能进行算术运算,了不允许用读/写语句直接输入/输出集合。 所以集合的建立:

A)要通过赋值语句实现;

B)或先初始化一个集合,然后通过并运算向集合中逐步加入各个元素.

(5)集合元素是无序的,所以ord,pred和succ函数不能用于集合类型的变量。

练习:

编程读入两个字符串,然后输出如下信息:

(1)出现在某一个字符串中至少一次的字母和数字;

(2)同时出现在两个字符串中至少一次的字母和数字;

(3)出现在一个字符串中而不出现在另一个字符串中的字母和数字;

(4)不出现在任何字符串中的字母和数字。

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

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

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

回复

使用道具 举报

小黑屋/人人终身学习知识网~是各类综合知识资源信息分享,提升综合素质与提高知识技能的终身学习网络平台

Powered by 5wangxiao

© 2007-2021 5wangxiao.Com Inc.

快速回复 返回顶部 返回列表