Pascal在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
显示目录

sets



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

sets

集合是相同类型的元素的集合. Pascal允许定义集数据类型.集合中的元素称为其成员.在数学中,集合通过将成员括在大括号{} 中来表示.但是,在Pascal中,set元素包含在方括号[]中,它们被称为set构造函数.

定义集类型和变量

Pascal集合类型定义为

set-identifier = set of base type;

集合类型的变量定义为

  var 
 s1,s2,...:set-identifier;

或,

s1, s2...: set of base type;

一些有效的集合类型声明的示例是 :

type
Days = (mon, tue, wed, thu, fri, sat, sun);
Letters = set of char;
DaySet = set of days;
Alphabets = set of 'A' .. 'Z';
studentAge = set of 13..20;

设置运算符

您可以在Pascal集上执行以下设置操作.

Sr.No 操作 描述
1 联盟 这会加入两个集合,并为两个集合中的成员提供一个新集合.
2 差异 获取两个集合的差异,并给出一个新集合,其中的元素与任何集合都不相同.
3 交叉点 获取两个集合的交集,并给出一个新集合,其中包含两个集合共有的元素.
4 包含 集合Q包含在集合Q中,如果P中的所有项目也在Q中,反之亦然.
5 对称差异 获取两个集合的对称差异并给出一组元素,在任何一个集合中,而不是在它们的交集中.
6 它检查会员资格.

下表显示了Free Pascal支持的所有set运算符.假设 S1 和 S2 是两个字符集,那么 :

  • S1:= ['a','b' , 'C'];

  • S2:= ['c','d','e'];

运算符 说明 示例
+ 相加 S1 + S2会得出
['a','b','c','d' ,'e']
- 两组的差异 S1-S2将得出
['a ','b']
* 两组相交 S1 * S2将得出
[' c']
>< 两组的对称差异 S1>< S2将得出
['a','b','d','e']
= 检查两组的相等性 S1 = S2将得出布尔值False
<> 检查不平等两组 S1<> S2将得出布尔值True
< = 包含(检查一组是否是另一组的子集) S1< = S2将得出布尔值False
包含 包含集合中的元素;基本上它是一个集合的联合和一个相同基本类型的元素 包含(S1,['d'])将得出一组
['a','b','c','d']
排除 从集合中排除元素;基本上它是一个集合的差异和相同基本类型的元素 排除(S2,['d'])将得出一组['c','e']
检查集合中元素的成员资格 ['e']在S2中给出布尔值True

示例

以下示例说明了其中一些的使用运算符 :

program setColors;
type  
color = (red, blue, yellow, green, white, black, orange);  
colors = set of color;  

procedure displayColors(c : colors);  
const  
names : array [color] of String[7]  
  = ('red', 'blue', 'yellow', 'green', 'white', 'black', 'orange');  
var  
   cl : color;  
   s : String;  

begin  
   s:= ' ';  
   for cl:=red to orange do  
      if cl in c then  
      begin  
         if (s<>' ') then s :=s +' , ';  
         s:=s+names[cl];  
      end;  
   writeln('[',s,']');  
end;  

var  
   c : colors;  

begin  
   c:= [red, blue, yellow, green, white, black, orange];
   displayColors(c);

   c:=[red, blue]+[yellow, green]; 
   displayColors(c);  

   c:=[red, blue, yellow, green, white, black, orange] - [green, white];     
   displayColors(c);    

   c:= [red, blue, yellow, green, white, black, orange]*[green, white];     
   displayColors(c);  

   c:= [red, blue, yellow, green]><[yellow, green, white, black]; 
   displayColors(c);  
end.

编译并执行上述代码时,会产生以下结果 :

[ red , blue , yellow , green , white , black , orange]
[ red , blue , yellow , green]
[ red , blue , yellow , black , orange]
[ green , white]
[ red , blue , white , black]
由JSRUN为你提供的Pascal在线运行、在线编译工具
        JSRUN提供的Pascal 在线运行,Pascal 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout