表
1.表概念。
table 相当于其他算法语言中的数组。表元素 , 赋值 引用 表处理。
2.表的建立:
如果一个数据名不是代表单一的数据项,而是一个表的名字,则应在数据部中做说明。指出表包含多少个表元素。如:
01 STUDENT-RECORD
02 NAME PIC X(20).
02 COURSE OCCURS 5 TIMES PIC 9(3).
格式:
最简单格式:
OCCURS 整数 TIMES
注意:
OCCURS后面只能为正整数。
OCCURS不能出现在77层,不能用于01层。
“表”只能定义在记录内部。如果想在一张卡片中包含几个产品的数据,可以在01层下面增加一层,把表定义在这一层上。如:
01 CARD-REC.
02 PRODUCT OCCURS 4 TIMES.
03 PRODUCT-NUM PIC 9(4).
03 PRODUCT-NAME PIC X(16).
在COBOL中表元素可以允许为组合项,而且在建立一个多维表的同时,也建立了一维(或二维)表。
ANSI COBOL 1974允许最多用到三维表。
只有当OCCURS所说明的数据是初等项时,才能在该数据项的描述中使用PIC字句。
3.可变长表
有时一个“表”中需要包含多少个表元素并不是固定的。
一般格式:
OCCURS 整数1 TO 整数2 TIMES
DEPENDING ON 数据名1
01 STUDENT-SCORE-RECORD.
03 NAME PIC X(10).
03 QTY-OF-COURSE PIC 9(2).
03 SCORE OCCURS 1 TO 15 TIMES
DEPENDING ON QTY-OF-COURSE PIC 9(3).
4. 表元素的引用。
表:数据不定义,过程不引用。先定义,后引用。
表元素是按一定规律在内存中顺序存放的,所以在引用时必须指出表明和这个元素在表中的位置。
注意:
(1).如果以说明B是一个表,不能直接引用表明B而不加下标。
01 table。
02 B OCCURS 8.
03 C1 PIC X(8).