COBOL - 表处理
-
简述
COBOL 中的数组称为表。数组是一种线性数据结构,是同一类型的单个数据项的集合。表的数据项是内部排序的。 -
表声明
表在数据部中声明。Occurs子句用于定义表。Occurs 子句表示数据名称定义的重复。它只能用于从 02 到 49 的级别编号。不要将发生子句与重定义一起使用。一维和二维表的描述如下 -一维表
在一个一维表中,occurs子句在声明中只使用一次。WSTABLE 是包含表的组项。WS-B 命名出现 10 次的表格元素。Syntax以下是定义一维表的语法 -ExampleJCL执行上述 COBOL 程序 -当您编译并执行上述程序时,它会产生以下结果 -二维表
创建一个二维表,其中两个数据元素都是可变长度的。作为参考,请查看语法,然后尝试分析该表。第一个数组 (WS-A) 可以出现 1 到 10 次,而内部数组 (WS-C) 可以出现 1 到 5 次。对于 WS-A 的每个条目,将有对应的 5 个 WS-C 条目。Syntax以下是定义二维表的语法 -ExampleJCL执行上述 COBOL 程序 -当您编译并执行上述程序时,它会产生以下结果 - -
下标
可以使用下标访问表中的各个元素。下标值的范围可以从 1 到表格出现的次数。下标可以是任何正数。它不需要在数据划分中进行任何声明。它是使用发生子句自动创建的。ExampleJCL执行上述 COBOL 程序 -当您编译并执行上述程序时,它会产生以下结果 - -
指数
也可以使用索引访问表元素。索引是元素从表开始的位移。使用 INDEXED BY 子句通过 Occurs 子句声明索引。可以使用 SET 语句和 PERFORM Varying 选项更改索引的值。Syntax以下是在表中定义索引的语法 -ExampleJCL执行上述 COBOL 程序 -当您编译并执行上述程序时,它会产生以下结果 - -
设置语句
Set 语句用于更改索引值。Set 动词用于初始化、增加或减少索引值。它与 Search 和 Search All 一起使用来定位表中的元素。Syntax以下是使用 Set 语句的语法 -ExampleJCL执行上述 COBOL 程序。当您编译并执行上述程序时,它会产生以下结果 - -
搜索
搜索是一种线性搜索方法,用于查找表内的元素。它可以在已排序和未排序的表上执行。它仅用于由索引短语声明的表。它从索引的初始值开始。如果未找到搜索到的元素,则索引自动增加 1 并一直持续到表的末尾。ExampleJCL执行上述 COBOL 程序。当您编译并执行上述程序时,它会产生以下结果 - -
搜索全部
Search All 是一种二分查找方法,用于查找表内的元素。对于 Search All 选项,表必须按排序顺序排列。索引不需要初始化。在二分查找中,表被分成两半,它决定了被搜索的元素存在于哪一半。重复此过程,直到找到元素或到达终点。ExampleJCL执行上述 COBOL 程序 -当您编译并执行上述程序时,它会产生以下结果 -