四.表元素的引用
格式:表名(下标)
说明:1。如果B是一个表,不直接引用表名B而不加下标。
2.如果表元素是组合项,则引用它下属的项(可以是初等项或组合项),也必须用下标指明它是属于哪一个表元素的。
3.如果表元素是组合项,可以用它对下属的数据项进行限定。 4.下标只能是整常数或具有整型值的数据名。 5.下标不能是带下标的数据名,即不能是表元素。
五.给表元素赋初值
1.对包括所有表元素的整个表赋给一个初值,这时可以对表的描述体上面一层的数据项赋一个初值即可。 例1:01 TABLE VALUE IS ZERO. 03 OCCURS 20 PIC 9(3).
例2:01 T VALUE’ABCDEFHIJ’. 02 Q OCCURS 3 PIC X(3). 这样,Q(1),Q(2),Q(3)的内容分别是ABC,DEF,HIJ。 2.联合使用OCCURS子句和REDEFINES子句来给各个表元素赋值。 步骤:(1)先在工作单元节中定义一个组合项,它占的内存的大小和需赋值的表一样,在该组合项中定义若干个数据项,数据项的描述和表的元素相同。
(2)然后对这些数据项分别用VALUE子句赋以初值,由于在这些数据项的描述中没有出现OCCURS子句,因此用VALUE赋初值是合法的(VALUE子句和OCCURS子句不能同时用来描述一个数据项)。这些值就是要赋给表元素的初值。
(3)把这个组合项重定义为一个表。
六.用位标法引用表元素
1.位标的概念:位标的值表示表元素在该表中的相对位置(以字节数表示)。
2.位标名的指定方法:在数据部中定义一个表时所用的OCCURS子句中要加上“INDEXED BY 位标名”短语来指定。 说明:(1)由于位标是专门用于引用表元素的特殊数据项,它不能用来进行算术运算。
(2)一维表或多维表的每一维按需要可以指定若干个位标名,引用时这些位标名只能在该维内使用。
(3)有时需要把位标的值转存到另一个数据项中,但由于位标是特殊类型的数据项,因此,需要另外定义一种特殊的数据项叫位标数据项,用来专门存储位标的值。位标数据项在数据部中定义。描述位标数据项用USAGE子句。例如:77 K USAGE IS INDEX.
七.SET(设置)语句
1.作用:将一表元素的相对地址放到指定的位标去。 如: SET I TO 10.
表示将位标I置位到第10个元素的第一个字节的相对地址上去。 2.格式一
SET 标识符1[,标识符2]?? TO 标识符3/位标3/整数 位标1[,位标2]??
规则列表(设SET A TO B) 横-发送项B 竖-接收
整数
数值初等项
位标名
位标数据项
项A 数值初等项 位标名 不合法 将整数(序号)化成相对地址传送 不合法 同左 将位标代表的序号传送 (1)如果两个位标名指向同一个表,则转换成另一表的相对地址再传送,即将发送项代表的表元素顺序号减1,乘以接收项相关表元素的长度,再传送 简单传送 不合法 简单传送 位标数据项 不合法 不合法 简单传送 3. 格式二 SET 位标1 [,位标2]?? UP/DOWN BY 标识符/整数 作用:给位标增减一个量。 八.表的检索 1.用于顺序检索的SEARCH语句 格式:SEARCH 表名[VARYING 位标名1/标识符2][AT END 强制语句1] WHEN 条件1 强制语句2/NEXT SENTENCE [WHEN 条件2 强制语句3/NEXT SENTENCE]?? 举例:SET N TO 1. SEARCH WORKER-TABLE AT END DISPLAY‘CANNOT FIND NAME’ WHEN NAME(N)=‘ZHANG SHENG’ DISPLAY NAME(N),PAY(N). ?? SEARCH语句是这样执行的:从指定的表元素开始,检查是否满足WHEN后面指定的条件。如不满足,就使N增值,自动执行一个SET N UP BY 1。使N指向下一个元素的地址,如果查到某一个元素满足指定的条件时,查表工作立即停止,执行WHEN字句中条件后面的语句。 2.用于有序表的SEARCH语句(折半法检索) (1)说明升(降)序的一般格式为: ASCENDING/DESCENDING KEY IS 数据名1[,数据名2]?? ASCENDING/DESCENDING KEY IS 数据名3[,数据名4??]?? 举例:02 BOOK-TABLE OCCURS 100 ASCENDING KEY IS NAME DESCENDING KEY IS COD INDEX BY N. (2)SEARCH语句的一般格式(之二) SEARCH ALL 表名[;AT END 强制语句1] WHEN 条件 强制语句2/NEXT SENTENCE 举例:SEARCH ALL BOOK-TABLE AT END DISPLAY’CANNOT FIND NAME’ WHEN NAME(N) = ‘COMPUTER DESIGN’ DISPLAY NAME (N),NUM (N). 九.用PERFORM语句对表进行检索 最多可以处理三重循环 格式:
PERFORM 过程名1[THRU 过程名2]
VARYING 位标名1/下标名1 FROM 位标名2/常量1/标识符1 BY 常量2/标识符2 UNTIL 条件1 AFTER 位标名3/下标名2 FROM 位标名4/常量3/标识符3 BY 常量4/标识符4 UNTIL 条件2 AFTER 位标名5/下标名4 FROM 位标名6/常量5/标识符5 BY 常量6/标识符6 UNTIL 条件3
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库COBOL谭浩强版学习笔记(4)在线全文阅读。
相关推荐: