COBOL......7

初始化语句(INITIALIZE 语句)

INITIALIZE 语句将数据项的值设置为初始值。如果不指定要设置的数
据项数值,则数字和数字编辑型数据初始化为0,其它所有数据项初始
化为空格。
INITIALIZE 语句的一般形式:
INITIALIZE 数据名 [REPLACING ALPHABETIC
                             ALPHANUMERIC
                             NUMERIC DATA BY id-lit]
                             ALPHANUMERIC-EDITED
                             NUMERIC-EDITED


MOVE语句的高级技巧

同类型数据间的传送规则
数值型数据之间的传送,按小数点位置对齐,如发送项长于接收项,则多余位截去,如短于接收项,接收项的空位补零
字母或字符型数据间的传送,按左端对齐,如发送项长于接收项,右端多余位截去,如短于接收项,右端补空格
  编辑传送。发送项是数值型数据,而接收项是编辑数值型数据,则先将发送项中数据按接收项的描述要求进行编辑,然后再传送。不能由编辑型数据传送给数值型数据


(1).同类型数据间的传送规则:
数值型数据之间的传送,按小数点位置对齐,如发送项长于接收项,则多余位截
去,如短于接收项,接收项的空位字母或字符型数据之间的传送,按左端对齐,如发送项
长于接收项,右端多余位截去,如短于接收项,右端补空格。
(2).编辑传送
发送项是数值型数据,而接收项是编辑数据型数据,则先将发送项中数据按接收项的描述
要求进行编辑,然后再传送。
传送的方向是:由数值形数据传送给编辑型数据,而不能由编辑型数据传送给数值型数
据。
77 A PIC 9(4)V99
77 B PIC $(6). 99
MOVE A TO B  是正确的
MOVE B TO A 是错误的


不同类型数据间的传送
非法的传送
数值编辑项、字符编辑项、SPACE、字母数据项不能传送给数值数据项或数值编辑项
数值常量、ZERO、数值数据项、数值编辑项都不能传送给字母数据项
非整数的数值数据项或数值常量不能传送给字符数据项或字符编辑数据项
合法的传送
合法的传送
接收项为字符数据项或字符编辑项,而发送项的长度大于接收项的时候,按“对齐”原则,超出部分截断。如长度小于接收项,多余位置补空格。当发送项的描述是带符号的数值时,符号不予传送。
接收项是数值项或数值编辑项(初等项),可以接收数值项的数据以及内容为全数字的字符型数据项。
接收项是字母型,按左对齐原则接收字母致富,多余位置补空格。但它不应该接收非字母的字符。


组合项的传送
组合项的传送是将发送项的内容不加转换地一个字节一个字节地顺序传送到接收项。
若发送项与接收项都是组合项,而且其结构和描述都相同,则可看作将各初等项一一对应传送。
如果发送项和接收项长度相同,但结构形式不同,则将发送项的内容原样不变地自左向右传送到接收项
如果传送时,发送项与接收项长度不同,按:左对齐,右补空格,多余位截去

对应传送(带CORRESPONDING 子句的MOVE 语句)
我们尽量不在同一个COBOL 源程序中使用相同的数据名。但是,在比较复杂的COBOL 程序中往往使用同一个数据名来代表不同的数据项。如同名现象。这时应使用限定词OF 把数据名变成唯一,只用一次限定词OF 达不到把数据名变成唯一时可多次使用限定词OF。
对应传送或同名传送的一般格式:
MOVE CORR(CORRESPONDING) 标识符1 TO 标识符2
说明:
⑴如果两个组合项中包括的项不同,则只传送同名的项。
⑵传送的两者间必须有成对的同名数据项,而且这一对中必须至少有一个项是初等项。
例如:
01 A. 01 A1.
02 B PIC X(2). 03 B PIC X(2).
02 C. 03 C.  
03 C1 PIC X(4). 05 C3 PIC X(6).
03 C2 PIC X(5). 05 C4 PIC X(3).
⑶所谓同名指的是它们有相同的全程受限。
⑷带有RENAME子句或REDEFINES子句或OCCURS子句的数据项不予以传送。

你可能感兴趣的:(数据结构,cobol)