COBOL 知识点集锦(上)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
COBOL知识点集锦(上)
cobol知识点集锦COBOL数据类型
计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机计息程序是用IBM370汇编语言实现的。为方便汇编语言读写,在VSAM文件存储的数据中,数据存放格式进行了特殊的定义。如日期存放采用X(3)型,01年03月15日,存入EBCD 码为X‘010315’。在进行年度计息时,为了实现各种复杂的运算工作,一般采用COBOL语言来实现各种运算。而采用COBOL语言读取X(3)型数据时,读出的是字符型数据,不能直接进行运算,必须转换为COBOL数据类型的数据后才能进行相应处理。如刚才的X‘010315’,需要转换为内部十进制数据X‘0010315C’。本文介绍一种用COBOL语言实现字符型X(3)与内部十进制数据相互转换的方法。
由X(3)型转换为内部十进制
由于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST后,再追加定义COBOL语言的最小数据单元X‘000C’,即十进制12。由于重定义DATE-CASE为DATE -CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将DATE-CHANGE除以1000。
首先,在COBOL程序WORKING-STORAGE SECTION.中定义如下内容:
WORKING-STORAGE SECTION.
01DATE-CASE.
02DATE-FIRST PIC X(3).
02DATE-SIGN PIC9(4)COMP VALUE12.;定点二进制数
01DATE-CHANGE REDEFINES DATE-CASE PIC9(9)COMP-3.;内部十进制数据
01DATE-HEX PIC X(3).;转换前数据
01DATE-DEC PIC S9(7)COMP-3.;转换后数据
然后,在过程部PROCEDURE DEVISION.中加入如下语句:
PROCEDURE DEVISION.
MOVE DATE-HEX TO DATE-FIRST.
COMPUTE DATE-CHANGE=DATE-
CHANGE/1000.
MOVE DATE-CHANGE TO DATE-DEC.
由内部十进制转换为X(3)型
在进行相反的转换时,要消除因COBOL语言数据类型标志“C”引起的原日期数据前多加的一个0,所以需要将转换数据乘以10,再取出前6位数据即可。
首先,在COBOL程序WORKING-STORAGE SECTION.中定义如下内容:
WORKING-STORAGE SECTION.
01WORK-DATE PIC S9(7)COMP-3.
01AA REDEFINES WORK-DATE.
02A1PIC X(3).
02A2PIC X(1).
01DATE-HEX PIC X(3).;转换后数据
01DATE-DEC PIC S9(7)COMP-3.
;转换前数据
然后,在过程部PROCEDURE DEVISION.中加入如下语句即可:
PROCEDURE DIVISION.
MOVE DATE-DEC TO WORK-DATE。
COMPUTE WORK-DATE=WORK-DATE*10.
MOVE A1TO DATE-HEX.
REDEFINES
可以用不同的变量描述同一内存。
01PART_RECODE USAGE DISPLAY
03PART-TYPE PICTURE...
03PART_TYPE_A.
05PART_NUMBER PICTURE...
05PART_COST PICTURE...
03PART_TYPE_B REDEFINES PART_TYPE_A.
05UPC_CODE PICTURE...
03PART_TYPE_C REDEFINES PART_TYPE_A.
05ISBN PICTURE...
根据PART_TYPE决定用PART_TYPE_A还是PART_TYPE_B还是PART_TYPE_C。
规则:
PART_TYPE_B和PART_TYPE_C长度不能大于PART_TYPE_A。
数据项不能有VALUE。
01层不能用REDEFINES.
PART_TYPE_B和PART_TYPE_C中不能有OCCURS.
PICTURE
定义基本项目的具体长度,格式,数据类型。可以简写成PIC.
格式字符串最多30个字符,可以包含下列字符:
A字母A-Z,a-z,空格
B插入空格
P标量字符,代表字段中不显示的小数点位置
S代数符号,实际显示取决于项目的USAGE
V小数点位置
X任何字符
Z抑制前头的0并转换成空字符
0插入0
9数字0~9
/插入/
,插入,(逗号不能作为字符串的最后一位,最后时逗号是分隔符)
.插入.
*抑制前头的0并转换成*
+正值插入+,负值插入-
-正值插入空格,负值插入-
$插入美元号
CR正值插入两个空格,负值插入CR
DB正值插入两个空格,负值插入DB
例子:
03VAR PIC AAAAA.VAR变量长度为5个字符,不能有数字,等价于03 STATE PIC A(5)。