数据分区用于定义程序中使用的变量.要描述COBOL中的数据,必须理解以下术语和减号;
数据名称
级别号码
图片条款
价值条款
01 TOTAL-STUDENTS PIC9(5) VALUE '125'.| | | || | | || | | | 数据名称 级别号码 图片条款 价值条款
数据名称
数据名称必须在在程序部门使用它们之前的数据部门.它们必须具有用户定义的名称;保留字不能使用.数据名称提供存储实际数据的存储器位置.它们可以是基本类型或组类型.
示例
以下示例显示有效和无效的数据名称 :
Valid: WS-NAME TOTAL-STUDENTS A100 100BInvalid: MOVE (Reserved Words) COMPUTE (Reserved Words) 100 (No Alphabet) 100+B (+ is not allowed)
级别编号
级别编号用于指定记录中的数据级别.它们用于区分基本项目和组项目.可以将基本项组合在一起以创建组项.
Sr.No. | Level Number & Description |
---|---|
1 | 01 记录描述条目 |
2 | 02至49 集团和基本项目 |
3 | 66 重命名条款 |
4 | 77 无法细分的项目 |
5 | 88 条件名称条目 |
基本项目无法进一步划分.级别编号,数据名称,图片子句和值子句(可选)用于描述基本项目.
组项目由一个或多个基本项组成.级别编号,数据名称和值子句(可选)用于描述组项目.组级别编号始终为01.
示例
以下示例显示了组和基本项目 :
DATA DIVISION.WORKING-STORAGE SECTION.01 WS-NAME PIC X(25). ---> ELEMENTARY ITEM 01 WS-CLASS PIC 9(2) VALUE '10'. ---> ELEMENTARY ITEM01 WS-ADDRESS. ---> GROUP ITEM 05 WS-HOUSE-NUMBER PIC 9(3). ---> ELEMENTARY ITEM 05 WS-STREET PIC X(15). ---> ELEMENTARY ITEM 05 WS-CITY PIC X(15). ---> ELEMENTARY ITEM 05 WS-COUNTRY PIC X(15) VALUE 'INDIA'. ---> ELEMENTARY ITEM
图片条款
图片子句用于定义以下项目 :
数据类型可以是数字,字母或字母数字.数字类型仅由数字0到9组成.字母类型由字母A到Z和空格组成.字母数字类型由数字,字母和特殊字符组成.
符号可与数字数据一起使用.它可以是+或 - .
小数点位置可以与数字数据一起使用.假设位置是小数点的位置,不包括在数据中.
长度定义数据使用的字节数item.
Picture子句中使用的符号 :
Sr.No. | 符号&描述 |
---|---|
1 | 9 数字 |
2 | A 字母 |
3 | X 字母数字 |
4 | V 隐式十进制 |
5 | S 签署 |
6 | P 假设十进制 |
示例
以下示例显示了使用PIC子句 :
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NUM1 PIC S9(3)V9(2). 01 WS-NUM2 PIC PPP999. 01 WS-NUM3 PIC S9(3)V9(2) VALUE -123.45. 01 WS-NAME PIC A(6) VALUE 'ABCDEF'. 01 WS-ID PIC X(5) VALUE 'A121$'.PROCEDURE DIVISION. DISPLAY "WS-NUM1 : "WS-NUM1. DISPLAY "WS-NUM2 : "WS-NUM2. DISPLAY "WS-NUM3 : "WS-NUM3. DISPLAY "WS-NAME : "WS-NAME. DISPLAY "WS-ID : "WS-ID.STOP RUN.
JCL 执行上述COBOL程序 :
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C//STEP1 EXEC PGM = HELLO
当您编译并执行上述程序时,它会产生以下结果 :
WS-NUM1 : +000.00WS-NUM2 : .000000WS-NUM3 : -123.45WS-NAME : ABCDEFWS-ID : A121$
值子句
Value子句是一个可选子句,用于初始化数据项.值可以是数字文字,字母数字文字或图形常量.它可以与组和基本项一起使用.
示例
以下示例显示使用VALUE子句 :
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NUM1 PIC 99V9 VALUE IS 3.5. 01 WS-NAME PIC A(6) VALUE 'ABCD'. 01 WS-ID PIC 99 VALUE ZERO.PROCEDURE DIVISION. DISPLAY "WS-NUM1 : "WS-NUM1. DISPLAY "WS-NAME : "WS-NAME. DISPLAY "WS-ID : "WS-ID.STOP RUN.
JCL 执行上述COBOL程序 :
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C//STEP1 EXEC PGM = HELLO
当你编译并执行上面的程序时,它产生以下结果 :
WS-NUM1 : 03.5WS-NAME : ABCDWS-ID : 00