记录
计算机科学· Unit 10 Data types & structures, 10.3 Records· 15 分钟阅读
1. 1. 什么是记录?★★☆☆☆⏱ 3 min
记录(复合数据类型)
由相关数据项(称为字段)组成的固定集合,这些数据项可以是不同数据类型,用于表示单个现实世界或抽象实体的属性。
例:
一个Student(学生)记录可以包含姓名(字符串)、年龄(整数)和注册状态(布尔值)字段。
与数组不同(数组存储同一类型的多个值,通过索引访问),记录分组异构数据,每个字段由唯一名称标识。这使得记录非常适合对具有多个不同属性的结构化对象建模。
判断以下哪一项最适合用单个记录表示:(A) 100个考试分数的列表,(B) 单个客户订单的详细信息,(C) 包含50条员工条目的表格
- 1
记住单个记录描述一个具有多个属性的实体,逐一检查选项:
- 2
选项A:所有考试分数都是相同类型的整数 → 最适合用数组存储,而非单个记录。
- 3
选项B:客户订单具有多个不同类型的属性:订单ID(整数)、客户姓名(字符串)、总费用(浮点数) → 符合单个记录的定义。
- 4
选项C:50条员工条目 → 每个员工是一个记录,因此这是一个记录数组,而非单个记录。
- 5
最终答案:B
2. 2. 在CIE伪代码中声明记录★★★☆☆⏱ 4 min
记录声明
定义新记录类型结构的过程,包括每个字段的名称和数据类型。声明完成后,即可使用该记录类型创建单个实例。
CIE考试对记录声明遵循标准伪代码格式,你必须使用该格式才能获得满分。通用格式如下:
声明一个名为Movie的新记录类型,包含以下字段:标题(字符串)、发行年份(整数)、评分(实数)、是否可借阅(布尔值)。然后创建一个名为myMovie的实例。
- 1
开始记录声明:
- 2
- 3
声明每个字段及其数据类型:
- 4
- 5
结束声明并实例化记录:
- 6
3. 3. 访问和修改记录字段★★☆☆☆⏱ 3 min
记录中的字段使用点表示法访问,这是CIE伪代码和大多数编程语言的标准格式。格式为:\textit{<record_instance>}.\textit{<field_name>}。该表示法既可用于读取字段值,也可用于赋值新值。
使用上一节的Movie记录类型,为myMovie赋值,并输出标题和发行年份。
- 1
使用点表示法为每个字段赋值:
- 2
- 3
读取字段值并输出:
- 4
- 5
最终输出为:
Inception (2010)
测试你对点表示法的理解:
输出
myMovie实例评分的正确方式是哪一个?OUTPUT Movie.rating
OUTPUT myMovie(rating)
OUTPUT myMovie.rating
OUTPUT rating.myMovie
显示答案
2 —正确!点表示法遵循
实例名称.字段名称的顺序,不能使用记录类型名称访问字段。
4. 4. 记录数组★★★☆☆⏱ 5 min
在CIE考试中,记录最常见的用途是将多个同类型实体存储为记录数组。这结合了数组(可简单迭代元素)和记录(每个实体存储异构属性)的优点。例如,你可以将100部电影存储为数组,其中每个元素都是一个Movie记录。
声明一个包含20个Movie记录的数组,名为cinemaCollection,然后输出所有评分高于8.0的电影标题。
- 1
在定义
Movie记录类型后声明数组: - 2
- 3
遍历每个元素,检查评分字段,输出符合条件的标题:
- 4
- 5
该循环正确检查了数组中的每个记录,仅输出满足条件的标题。
5. 常见陷阱
错误做法:
访问字段时混淆记录类型和记录实例。
原因:
记录类型只是模板,只有实例才存储实际数据值。
正确做法:
始终使用instanceName.fieldName,而非typeName.fieldName。
错误做法:
忘记用END RECORD结束记录声明。
原因:
CIE评分标准要求明确结束RECORD块才能给满分。
正确做法:
始终在声明完记录的所有字段后添加END RECORD。
错误做法:
记录数组中字段的点表示法顺序错误。
原因:
学生经常写错顺序,写成arrayName.fieldName[index]而非正确顺序。
正确做法:
先对数组索引,再访问字段:arrayName[index].fieldName。
错误做法:
使用单个记录存储多个实体。
原因:
记录设计用于描述单个实体。在一个记录中存储多个实体会导致无法迭代。
正确做法:
使用记录数组:每个实体对应一个记录,作为数组元素存储。
6. 速查表
概念 | CIE伪代码格式 |
|---|---|
声明记录类型 | DECLARE <Name> RECORD |
声明记录实例 | DECLARE <InstanceName>: <RecordName> |
访问记录字段 | <Instance>.<FieldName> |
声明记录数组 | DECLARE <ArrayName>: ARRAY[<low>:<high>] OF <RecordName> |
访问记录数组中的字段 | <ArrayName>[<index>].<FieldName> |
7. 常见问题
记录和数组之间的区别是什么?
数组存储同一数据类型的多个元素,通过索引访问;而记录存储描述单个实体的多个不同数据类型的相关值。记录中的字段通过名称而非索引访问。
真题中的出现
AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。
- 2022 · 12
声明图书馆书籍的记录
- 2023 · 11
处理学生记录数组
- 2021 · 13
访问嵌套记录字段
深入阅读
下一步
记录是基础复合数据类型,你在CIE A-Level计算机科学的试卷1解题和试卷2编程任务中都会大量使用。掌握记录声明和字段访问对于处理结构化的现实世界数据至关重要,也为理解更高级的数据结构(如链表、类和关系数据库条目)奠定基础。记录经常与文件处理结合使用,你需要将记录读写到文本或二进制文件中以存储持久化数据。理解如何迭代记录数组也是实现排序和搜索算法的常见要求,而这两项都是考试核心考点。
