集合与记录类型_第1页
集合与记录类型_第2页
集合与记录类型_第3页
集合与记录类型_第4页
集合与记录类型_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、集合与记录类型 内容提要 本章介绍了集合类型的定义、赋值运算、关系运算、逻辑运算和集合的应用。集合类型学习要求 通过对本章的学习,我们要知道集合的含义,掌握集合的建立和输入输出的方法,能熟练掌握集合的赋值运算,关系运算,逻辑运算,能用集合的知识解决实际问题。 集合的定义 在TURBO PASCAL中,我们把有限个同类数据的全体称为集合。为了体现它的全体性,我们用中括号把属于一个集合的数括起来。如:1,2,3,4,9,3,11,A,B,C,D。对于集合中的这些数据,规定必须是有序的。 集合定义的格式如下:TYPE 集合类型名SET OF 基本数据类型;在这里,基本数据类型是指:字符型,整型中的子

2、界型,布尔型,枚举型,子界型。整型和实型是不允许的,因为它们是无限集合。 例1:TYPE NUMBERSET OF 1100; CH1SET OF AZ; CH2SET OF CHAR; COLOR(RED,ORANGE, YELLOW,GREEN,INDIGO,BLUE,VIOLET); CO1SET OF COLOR;以上定义了NUMBER,CH1,CH2,CO1四个集合。在定义CO1之前,先定义了枚举型COLOR。 VAR A,B:NUMBER;C:CH1;D:CH2;E,F:CO1;这样,定义了6个集合变量A,B,C,D,E,F。 下面可以对它们赋值: A:34,17,22,8,66,

3、22; B:10,1,8,59; C:H,Q,G,U,A; E:YELLOW,GREEN,VIOLET,BLUE F:集合变量的取值一定要和集合变量的类型一至。 集合中的数据有以下特征:1.集合中的数的个数是没有明确的限定,如有多个,则各个数据之间用逗号隔开。2.集合中的数据允许重复出现,无论出现多少次,系统也只把它们当作一个数据看待。3.集合中的数据是无序的,谁前谁后一个样。4.集合中可以没有数据,我们称之为空集。5.一个集合中的数据只能为同一种数据类型。6.在集合中的数据如果是连续的有序型,则在中括号中可以用子界型表示。 集合类型的运算 21 赋值运算赋值运算就是对已经定义好的集合变量进行

4、赋值。如: A:1,3,5,99; B:A;C:;其中,C是空集。 22 关系运算在集合的关系运算里,有5种运算符:,IN。 1、相等判断(,)“”表示两集合相等,“”表求两集合不等。这个运算符是判断两同数据类型的集合是否相等。相等的依据是:两集合A,B中,A中的全部数据在B中都有,B中的全部数据在A中都有。这里没要求数据的先后顺序,也没要求两集合中数的个数必须相等。写出下面集合运算的结果。 1,2,3,41,4,3,2, TRUE3,6,9,4,73,6,9,4 TRUE3,6,9,4,36,9,4,3 FALSE TRUE2、包含运算(,)在集合运算中,没有,只有,。它们表示两个集合的包含

5、关系。表示 前者是后者的子集,表示后者是前者的子集。写出下列集合运算的结果。 1,2,3,41,2,3,4,5 TRUE 1,2,31,2,3 TRUE1,2,31,2,3 TRUE1,2,3,4,5,64,9 FALSE1 TRUE3、IN 运算上面的运算中进行运算的都是集合,而IN运算的意思是判断一个元素是否在一个集合内。作为一个元素,则在书写时不用加中括号了。写出下面运算的结果。2 IN 1,2,3 TRUEA IN A,C,E,G TRUE6 IN FALSE3 IN 4,6,9 FALSE 逻辑运算 集合的逻辑运算和其它不一样:它运算出来不是布尔值,而是一个集合。集合的逻辑运算有三种

6、:并(),交(),差()。 1、并两集合A,B相并指的是有A,B两集合,将其中一个集合去掉它们的公共元素后再把二集合中的元素合并在一个集合里。并的操作用“”表示。 例5 1,2,32,3,41,2,3,4 1,521,2,51,41,41,45,6,75,6,72、交两集合A,B相交指的是有A,B两集合,把它们的公共值取出来生成一个新的集合。交的操作用“”表示。例61,2,32,3,42,31,2,31,2,31,2,33,6,84,91,2,3,4,5,633RED,YELLOW,BIUEYELLOE,VIOLETYELLOW3、差差的操作用“”表示。两集合A,B的差指的是假设有A,B两集合

7、,找出集合A,B中的公共元素,在集合A中减去公共元素后的结果便是AB的差。例71,2,3,42,3,411,2,3,44,5,6,71,2,31,2,3,45,6,7,81,2,3,44,5,64,5,64,7,94,7,9例1:读入一串字符,以?结束。该字符串是数字和字母的组合。求出字母和数字的个数。分析:我们先设好两个集合,一个是09的数字集合,一个是A到Z的字母集合。每输入一个字符便判一次是属于哪个集合,然后得出结果。PROGRAM e8(input,output); VAR number:set of 0.9; ch1:set of a.z; ch2:set of A.Z; n,c:i

8、nteger; ch:char; BEGIN ch1:=a.z; ch2:=A.Z; number:=0.9; n:=0; c:=0; read(ch);while ch? do begin if (ch in ch1) or (ch in ch2) then c:=c+1; if ch in number then n:=n+1; read(ch); end; writeln(number=,n, ,char=,c); END.记录类型 内容提要本章介绍了记录的含义及定义方法,WITH语句和层次记录的用法。 学习要求在本章里,我们要领会记录保存数据的方法,会定义记录类型,掌握WITH语句对记

9、录进行简化的方法,理解层次记录的用法,会用记录数组进行实际问题的处理。记录的说明我们在前面进行数据处理时,对应的数据都是一些整数,实数,字符,字符串,枚举标识符等,这些数据都具有单一性。但是很多日常生活中的一项数据包含有多个内容,如:一条关于学生考试情况的信息,它本身可能有多个子内容:学生姓名,学号,语文成绩,数学成绩,物理成绩,化学成绩,英语成绩类似于这样的一个数据项就不能简单用前面学的基本数据类型来定义了,这里,我们用一种新的结构数据类型:记录类型。 记录定义的格式:记录定义的格式: TYPE 记录名RECORD 域名1:类型; 域名2:类型; 域名N:类型;END;我们来看看一个学生记录

10、STU的定义情况: TYPE STURECORD NAME:STRING10; NO:INTEGER; CHINESE:REAL; MATHS:REAL; PHYSICS:REAL; CHEMISTRY:REAL; ENGLISH:REAL; END;VAR STU1,STU2:STU;记录的读入可以直接用READ语句进行。如:READ(STU1NAME,STU1NO,STU1CHINESE);记录的输出可以直接用WRITE语句。如:WRITE(STU1NAME,STU1NO,STU1CHINESE);一个学生的记录由姓名,语文,数学,物理,化学,英语,平均分,总分共八项构成。现在录入该学生的

11、五科成绩,求出其平均分和总分后输出各项数据。 PROGRAM e1(input,output); VAR stu:record name:string8; chinese:real; maths:real; physics:real; chemistry:real; english:real; average:real; sum:real; end; BEGIN writeln(input the name:); readln(); writeln(input score of chinese,maths,physics,chemistry,english); readln(s

12、tu.chinese,stu.maths,stu.physics, stu.chemistry,stu.english); stu.sum:=stu.chinese+stu.maths+stu.physics+ stu.chemistry+stu.english; stu.average:=stu.sum/5; writeln(name:,); writeln(chinese:,stu.chinese); writeln(maths:,stu.maths); writeln(physics:,stu.physics); writeln(chemistry:,stu.chemistry); writeln(english:,stu.english); writeln(average:,stu.average); writeln(sum:,stu.sum); END.WITH语句在上面的例子中,输入输出每一个域时在前面都得加上记录变量名(在例1中该变量名是STU)。因为对域的操作太多了,在很多句都要写上记录变量名,进行了不少重复操作。用WITH语句可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论