• 用户自定义类型02 零基础入门学习Delphi32


    用户自定义类型02

     

    让编程改变世界

    Change the world by program


     

    集合类型的定义与使用

      Delphi集合这个概念跟我们数学中的集合概念十分相似,集合是具有相同性质但又可以区分开来的对象的全体。 在Delphi中,集合的对象只能限定在某个范围之内,集合中的对象称为元素。   与数组、枚举和子界类型不同,集合中的元素是没有先后顺序的。 另外,集合中的元素是各不相同的,这与枚举和子界类型相似。  

    集合类型的定义格式如下

    [格式]: [codesyntax lang="delphi"]
    Type
        类型标识符 = set of 基类型;
    [/codesyntax]   我们可以这么定义: [codesyntax lang="delphi"]
    Type
        Colors = (Red, Green, Blue, Yellow); 
        Color = set of Colors; 
        Char = set of ‘a'..‘z';
    [/codesyntax]   注意,集合类型的元素个数不能超过256,而且其序数值也必须在0~255范围之内。 例如,下面的定义是错误的: [codesyntax lang="delphi"]
    type
        num = Set of 200..400;
    [/codesyntax]   集合类型也有两种方法声明:先定义类型,再声明变量;或者声明变量与定义类型合二为一 [codesyntax lang="delphi"]
    var
        Char1: Set of ‘a'..‘z';
    [/codesyntax]  

    在使用集合类型时需讲解三点:

    集合变量的取值

    集合的交、并和差运算

    集合的各种关系运算。

      对集合变量的取值,如果知道数学中集合的有关知识,就很容易理解。 集合变量的取值是一个集合,称为集合值,它包括空集合在内的全体子集。 例如,有n个元素的集合,其集合值有2^n个。   注意: 根据集合类型的定义,集合变量的取值与其元素的先后顺序无关; 集合中的重复元素视作同一个元素。   集合值的表示形式为:以方括号括起来的以逗号隔开的元素序列。 例如:[‘a’, ‘b’, ‘c’] 就是集合变量 Char1 的一个取值。    

    集合的交、并和差运算

     

    [交运算的规则]

    集合A和集合B的交运算,记作A*B或者B*A。 [1, 2, 3] * [3, 4, 5] 的值为 [3] [‘a’, ‘c’, ‘b’] * [‘b’, ‘z’, ‘a’] 的值为 [‘a’, ‘b’]  

    [并运算的规则]

    集合A与集合B的并运算,记作A+B或B+A。 [1, 2, 3] + [3, 4, 5] 的值为 [1, 2, 3, 4, 5] [‘f’, ‘i’, ‘s’, ‘h’] + [‘c’] 的值为 [‘f’, ‘i’, ‘s’, ‘h’, ‘c’]  

    [差运算的规则]

    集合A与集合B的差运算,即是求属于集合A而不属于集合B的元素组成的集合,记作A-B。 [1, 2, 3] - [3, 4, 5] 的值为 [1, 2]  

    集合的各种关系运算

    集合各种关系运算,主要应掌握集合之间的相等“=”、不等“<>”、包含“>=”和被包含“<=”运算及数据与集合之间的属于“In”运算。  

    [等于]

    当两种相同类型集合A和B的所有元素完全相同时,就说集合A等于集合B,即A=B或者B=A的值为True。  

    [被包含]

    当集合A中的所有元素完全包含于相同类型的集合B中时,就说集合A包含于(即被包含)集合B,即A<=B的值为True。  

    [包含]

    当集合A包含相同类型集合B中的所有元素时,就说集合A包含集合B,即A>=B的值为True。 [2, 3] <= [1, 2, 3] 的值为 True [2, 3] = [1, 2, 3] 的值为 False [2, 3] >= [1, 2, 3] 的值为 False。  

    [属于]

    运算“In”是针对数据或元素对集合而言的。  

    例题演示

    [caption id="attachment_609" align="aligncenter" width="254"] delphi演示程序[/caption] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LUFLKTBORKGK']视频下载[/Downlink]
  • 相关阅读:
    今天是周日,一如既往的在加班
    懒出来的框架
    把Visio文档中形状信息导出到XML文件的VBA代码
    DataGridView多线程更新数据的问题的解决办法
    为VS定制一个自己的代码生成器
    安装VS2012之后自己开发的自定义工具没法使用问题的解决办法
    通过RSA进行私钥加密公钥解密算法的进一步改进
    程序员在职场 该反思了吗?
    图片与字节数组相互转换的方法
    jQuery Ajax 方法调用 Asp.Net WebService 的详细例子
  • 原文地址:https://www.cnblogs.com/LoveFishC/p/3846173.html
Copyright © 2020-2023  润新知