当前位置: 网学 > 编程文档 > DELPHI > 正文

delphi语法基础--集合类型

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/07/30

本文主要为广大网友提供“delphi语法基础--集合类型”,希望对需要delphi语法基础--集合类型网友有所帮助,学习一下!

  集合是由具有某些共同特征的元素构成的一个整体。在pascal中,一个集合是由具有同一有序类型的一组数据元素所组成,这一有序类型称为该集合的基类型。  一、集合类型的定义和变量的说明  集合类型的一般形式为:    set of 基类型;    基类型可以是任意顺序类型, 而不能是实型或其它构造类型。同时,基类型的数据的序号不得超过255。例如下列说明是合法的:  type numbers =set of 0..9;       ch=set of char;       day=(sun,mon,tue,wed,thu,fri,sat);         var  s: numbers;   c:ch;      weekday:day;   可以将类型说明与变量说明合并在一起,如:  var s:set of 0..9;                               { 子界型 }c:set of char;        weekday: (sun,mon,tue,wed,thu,fri,sat);      { 枚举型 }注意:集合的元素个数不超过256个,因此 var s:set of integer; 是错误的。 二、集合的值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)]。  三、集合的运算    集合类型变量不能进行算术运算,集合是无序的,不能使用ord、pred、succ等函数。   1、赋值运算  只能通过赋值语句给集合变量赋值,不能通过读语句赋值,也不能通过写语句直接输出集合变量的值。如:集合变量赋值:     c:=['2'];  i:=;  w:=[];    集合变量赋子界值: c:=['a'..'z'];  i:=[1..7];    集合变量赋枚举值: c:=['a','b','d','m'];  i:=[2,4,6,8,10];     2、集合的并、交、差运算  可以对集合进行并(+)、交(*)、差 (-)三种运算,每种运算只有一个运算符、两个运算对象,运算结果仍为集合。注意它们与算术运算的区别。①     并运算 (关系代数运算符∪)A,B为两个集合,由集合A中的元素加上集合B中的与A不重复的所有元素组成的集合,称为集合A和B的并。即A+B,如:[X,Y,Z]+[X] 为 [X,Y,Z]       { 两个集合中不重复的所有元素 }+ 为[1,4] ②     交运算  (关系代数运算符∩)A,B为两个集合,由既属于集合A中的元素又属于集合B中的所有元素组成的集合,称为集合A和B的交。即A*B,如:[X,Y,Z]*[X] 为 [X]          { 两个集合中的相同元素 }    [X,Y,Z]*[M] 为 []③差运算   (关系代数运算符-)A,B为两个集合,由集合A中的元素除去集合B中与A相同的元素组成的集合,称为集合A和B的差。即AB,如:[X,Y,Z]-[X] 为 [Y,Z ]      { 在集合A中又不在集合B中的所有元素 }    [X,Y,Z]-[M] 为 [X,Y,Z]   3、集合的关系运算: 运算结果为布尔值关系

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号