PASCAL基础-集合

集合是由具有某些共同特征的元素构成的一个整体。在pascal中,一个集合是由具有同一有序类型的一组数据元素所组成,这一有序类型称为该集合的基类型。

一:定义

type set of 基类型;   dd:set of 40..100 子界

类型特性:

基类型可以是任意顺序类型, 而不能是实型或其它构造类型。同时,基类型的数据的序号不得超过255。

1、集合的值放在一对方括号中,中间各元素之间用逗号隔开。如:[1,2,5] 和 ['a','e','i'] 都是集合。
2、在集合中可以没有任何元素,这样的集合称为空集。[] 空集
3、在集合中,如果元素的值是连续的,则可用子界型的表示方法表示。例如:  
  [1,2,3,4,5, 10,15] 可以表示成: [1..5,10,15]
4、集合的值与方括号内元素出现的次序无关。例如[1,5,8 ]和[5,1,8]的值相等。
5、在集合中同一元素的重复出现对集合的值没有影响。例如,[1,8,5,1,8]与[1,5,8]的值相等。
  6、每个元素可用基类型所允许的表达式来表示。如 [1,1+2,4]、[succ(ch)]。

二:写入

方法:赋值

只能通过赋值语句给集合变量赋值,不能通过读语句赋值,也不能通过写语句直接输出集合变量的值。

集合变量赋值: c:=['2']; i:=[5]; w:=[];
集合变量赋子界值: c:=['a'..'z']; i:=[1..7];
集合变量赋枚举值: c:=['a','b','d','m']; i:=[2,4,6,8,10];

三:读出

四:运算

1=赋值运算;关系运算;交集+,并集*,差集-;in运算

2=集合类型变量不能进行算术运算,集合是无序的,不能使用ord、pred、succ等函数。
3、赋值运算
只能通过赋值语句给集合变量赋值,不能通过读语句赋值,也不能通过写语句直接输出集合变量的值。如:
集合变量赋值: c:=['2']; i:=[5]; w:=[];
集合变量赋子界值: c:=['a'..'z']; i:=[1..7];集合变量赋枚举值: c:=['a','b','d','m']; i:=[2,4,6,8,10];

4、集合的并、交、差运算
  可以对集合进行并(+)、交(*)、差 (-)三种运算,每种运算只有一个运算符、两个运算对象,运算结果仍为集合。注意它们与算术运算的区别。
并运算 (关系代数运算符∪)
A,B为两个集合,由集合A中的元素加上集合B中的与A不重复的所有元素组成的集合,称为集合A和B的并。即A+B,如:
[X,Y,Z]+[X] 为 [X,Y,Z] { 两个集合中不重复的所有元素 }
[1]+[4] 为[1,4]
交运算 (关系代数运算符∩)
A,B为两个集合,由既属于集合A中的元素又属于集合B中的所有元素组成的集合,称为集合A和B的交。即A*B,如:
[X,Y,Z]*[X] 为 [X] { 两个集合中的相同元素 }
[X,Y,Z]*

 

为 []
③差运算 (关系代数运算符-)
A,B为两个集合,由集合A中的元素除去集合B中与A相同的元素组成的集合,称为集合A和B的差。即AB,如:
[X,Y,Z]-[X] 为 [Y,Z ] { 在集合A中又不在集合B中的所有元素 }
[X,Y,Z]- 为 [X,Y,Z]

 

5、集合的关系运算: 运算结果为布尔值
关系运算符: = 相等、<> 不相等、

>= 包含,表示前者蕴含后者,相当于集合论中的 FORMULAS
<= 包含于,表示前者蕴含于后者,相当于集合论中的
例如:[a,b,c]=[b,c,a] 为true,元素个数相同,内容相同,不管排列顺序如何。
[a,b,c]>=[a] 为true;
[a,b]<=[a,b,c] 为true。

in运算:in的右边为集合,左边为与集合基类型相同的表达式,返回布尔值。in测试一个元素是否在集合中。相当于集合论中的∈。它们都是二目运算,且前4个运算符的运算对象都是相容的集合类型。例如:a in[b,c] 为false。
设集合a:=[1..10]; x 为integer,如x在集合a中即删除a中的元素x,否则把元素x添加到集合a中。程序段如下:
if x in a then a:=a-[x] else a:=a+[x]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值