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

delphi语法基础--集合类型

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/07/30
运算符: = 相等、<> 不相等、>= 包含,表示前者蕴含后者,相当于集合论中的 。<= 包含于,表示前者蕴含于后者,相当于集合论中的 。例如:[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] 例1、设全集E={1,2,3,4,5},集合A={1,4},B={1,2,5},C={2,4},则集合(A∩B)∪~C 为(      )。                                 ( NOIP2003单选8 )    A)空集        B){1}       C){3,5}     D){1,5}      E){1,3,5} 例2、输入一系列字符,对其中的数字字符、字母字符和其它字符分别计数。输入'?'后结束。var ch:char;    letter:set of char;    digit:set of '0'..'9';i,j,k:integer;  begin   letter:=['a'..'z','A'..'Z']; digit:=['0'..'9'];   i:=0; j:=0; k:=0;   repeat    read(ch);    if ch in letterthen i:=i+1      else if ch in digit then j:=j+1 else k:=k+1;   until ch='?';    writeln('letter:',i,'digit:',j,'other:',k)end.  例3、求出2~n之间的素数。由希腊数学家Eratosthense提出“筛法”,步骤如下:(以2到20为例)①将所有的候选数放入筛子集合中;[1,2,3,4,…,20], 素数集合为 []。②找筛中最小数(必为素数)next,放入素数集合中;③将next的所有倍数从筛中筛去;④重复②~③,直到筛空。素数集合中即所求。每次循环如下:筛子集合                        素数集合[3,5,7,9,11,13,15,17,19]        [5,7,11,13,17,19]               [2,3][7,11,13,17,19]                 [2,3,5]……                             ……[]                              [2,3,5,7,11,13,17,19]const n=200;var sieve,primes:set of 2..n;    j,next:integer;begin  sieve:=[2..n]; primes:=[];       { 将所有的候选数放入筛中,素数集合置空 }next:=2;  repeat    while not(next in sieve) do             next:=succ(next);             { 找筛中最小数next }    primes:= primes+[next];          { 将筛中最

网学推荐

免费论文

原创论文

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