收藏 分享(赏)

第十章 集合与记录.doc

上传人:fmgc7290 文档编号:6490202 上传时间:2019-04-14 格式:DOC 页数:8 大小:38KB
下载 相关 举报
第十章 集合与记录.doc_第1页
第1页 / 共8页
第十章 集合与记录.doc_第2页
第2页 / 共8页
第十章 集合与记录.doc_第3页
第3页 / 共8页
第十章 集合与记录.doc_第4页
第4页 / 共8页
第十章 集合与记录.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。第十章 集合与记录集合 记录记录和集合都属于比较复杂的构造类型的数据。集合是系统类型对象的聚集,构成集合的每一个对象称为集合的元素。记录则是由多个类型不同的成分所组成的数据。10.1 集合1、定义:以已知序数类型值的集合为值,所构成的类型是集合类型,已知序数类型称为基类型。集合类型的定义形式为:集合类型标识符set of 基类型限定基类型为枚举类型、字符型、布尔型以及它们的子界和整型子界。由于基类型中不能超过 256 个可能值,且它们的序数值应在 0255 之间,因此基类型不能是短整型

2、、整型、长整型。表示一个集合值的最通用的方法是逐个枚举集合的元素,下面是集合值标记的例子:3,9,15,20 由 3,9,15,20 组成的集合 空集 lp,z 由字符 l,m,n,o,p,z 组成的集合2、运算:两个相连的集合对象之间,可以通过下列运算符进行运算:(1)集合运算符:+ 产生一个包含两个集合元素的集合 * 产生一个只包含两个集合元素公共元素的集合 - 产生一个包含所有属于第一个集合、但不属于第二个集合的元中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。素的集合 例如:A,B,C+D等于A,B,C,DA,B,C*A等于

3、AA,B,C-A等于B,C(2)关系运算符= 检查两个集合所包含的元素相同 C,B,A 等于 FALSE3、集合的赋值与输出赋值语句同样适用于集合类型数据。利用赋值语句,可以将计算集合表达式所得结果的值赋给集合变量。集合的值不能直接以其书写的形式输出,还需要增加一些必要的语句,如利用选择语句和保留字 IN 等。例 集合变量说明中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。var A,B,C,D,E,F:set of 17;I:INTEGER;赋值语句D:=1,3,5,7;E:=2,4,6;F:=1,2,3;A:=D+(E-F);

4、A 的值为1,3,4,5,6,7B:=D+(E*F); A 的值为1,2,3,5,7C:=D+E+F; A 的值为1,2,3,4,5,6,7A:=(F-D)-E; A 的值为输出 E 的集合值FOR I:=1 TO 9 DOIF I IN E THEN WRITE(I:2);输出结果为:2 4 610.2 记录1、定义:记录是描述同一对象的一组类型可能不同的数据的集合。使用记录类型可以实现数据逻辑关系和存放形式上的一致。定义记录类型的一般形式是:记录类型名record域名 1:类型 1;域名 2:类型 2;域名 m:类型 m;end;例如:表示学生信息的记录定义typestype=record

5、中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。name:string20;number:integer;sex:(male,female);class:120;address:stringend;域为记录类型的元素。记录的每个域都有名称,不同域的数据类型可以各不相同,这一点是 数组 所不能做到的。2、引用:引用记录变量的元素采用以下标记法以上例定义的记录来说明 (1)直接引用,其形式为记录变量名.域名例如:var str1,str2:stype; 则 str1.name 表示学生 str1 的姓名,str2.sex 表示学生 st

6、r2 的性别。(2)使用 with 开域语句,其形式为with 记录变量名 do 语句在 with 语句中,引用记录变量名不再冠以记录变量名,以简化对记录中域的引用写法。例如描述 100 个学生的数据信息,引入元素类型为 stype 的数组 students。varstudents:array1100 of stype;number_of_boy,number_of _girl,k:integer:例 下面是一段统计一个班级中男生人数和女生人数的程序。begin中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。number_of_bo

7、y:=0;number_of_girl:=0;for k:=1 to 100 dowith studentk doif sex=male then number_of_boy:=number_of_boy+1else number_of_girl:=number_of_girl+1end;注意:with 语句的嵌套结构的一般形式是:with dowith dowith do;使用 with 嵌套结构时, with 的嵌套顺序必须和所打开的记录的嵌套顺序一致,也就是说外层 with 打开外层记录,内层 with 打开内层记录。上面的嵌套格式也可以简写为:with do3、变体记录:若记录是由固定

8、不变的一部分和可变的另一部分(变化部分是随固定部分中的某个数据项的具体取值而定)的数据项所组成的,称为记录变体。带记录变体的记录类型定义有以下形式:type=record:;中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。:;:;case : of:;:;:;end;例:重新定义描述学生信息的记录类型 stype,对于大专生,不需要增加其他信息,对于本科生,增加专业信息。typestype=recordname:string20;number:integer;sex:(male,female);class:120;address:s

9、tring;case studtype:(s,u) ofs:( );u:(major:string)end;中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。4、赋值:对记录的赋值操作与数组的赋值操作一样,有两种形式:一是对记录中的某一元素的赋值,相应于对某一数组元素赋值,如 str1.name:=张三;二是对记录的整体赋值,相应于对数组的整体赋值,如 str2:=str1; 等等。练习与作业: 1、输入 5 位学生的学号、姓名、性别、电话号码及住址到记录中,然后按行写入磁盘文件。2、阅读下列程序,并分析输入、输出结果。program

10、 jilu;typeab=recordnum:integer;name:string;sex:string;tel:string;address:string;end;var a:array13 of ab;abc:text;b:integer;const n=5;beginassign(abc,jilu.txt);rewrite(abc);中华信息学竞赛网 官方总站:圣才学习网 中华信息学竞赛网是一家为全国信息学竞赛提供全套复习资料的专业性网站。for b:=1 to n dobeginread(ab.num,ab.name,ab.sex,ab.tel,ab.address);writeln(abc,ab.num,ab.name:4,ab.sex:7,ab.tel:8,ab.address:10);writeln(ab.num,ab.name:4,ab.sex:7,ab.tel:8,ab.address:10);end;close(abc);end.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报