数据类型
数据分区用于定义程序中使用的变量。 要描述COBOL中的数据,必须理解以下术语 -
- 数据名称
- Level Number
- Picture Clause
- Value Clause
01 TOTAL-STUDENTS PIC9(5) VALUE '125'.
| | | |
| | | |
| | | |
Level Number Data Name Picture Clause Value Clause
数据名称
在程序部门中使用数据名称之前,必须在数据部门中定义数据名称。 它们必须具有用户定义的名称; 保留字不能使用。 数据名称提供存储实际数据的存储器位置。 它们可以是基本类型或组类型。
例子 (Example)
以下示例显示有效和无效的数据名称 -
Valid:
WS-NAME
TOTAL-STUDENTS
A100
100B
Invalid:
MOVE (Reserved Words)
COMPUTE (Reserved Words)
100 (No Alphabet)
100+B (+ is not allowed)
级别编号
级别号用于指定记录中的数据级别。 它们用于区分基本项目和组项目。 可以将基本项目组合在一起以创建组项目。
Sr.No. | 级别编号和描述 |
---|---|
1 | 01 记录描述条目 |
2 | 02 to 49 小组和基本项目 |
3 | 66 重命名子句项目 |
4 | 77 不能细分的项目 |
5 | 88 条件名称输入 |
Elementary items不能进一步划分。 级别编号,数据名称,图片子句和值子句(可选)用于描述基本项目。
Group items包含一个或多个基本项目。 级别编号,数据名称和值子句(可选)用于描述组项目。 组级别编号始终为01。
例子 (Example)
以下示例显示了组和基本项目 -
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(25). ---> ELEMENTARY ITEM
01 WS-CLASS PIC 9(2) VALUE '10'. ---> ELEMENTARY ITEM
01 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
图片条款
Picture子句用于定义以下项目 -
Data type可以是数字,字母或字母数字。 数字类型仅由数字0到9组成。字母类型由字母A到Z和空格组成。 字母数字类型由数字,字母和特殊字符组成。
Sign可以与数字数据一起使用。 它可以是+或 - 。
Decimal point position可与数字数据一起使用。 假设位置是小数点的位置,不包括在数据中。
Length定义数据项使用的字节数。
Picture子句中使用的符号 -
Sr.No. | 符号和描述 |
---|---|
1 | 9 数字 |
2 | A 拼音 |
3 | X 字母数字 |
4 | V 隐含的十进制 |
5 | S 标志 |
6 | P 假设十进制 |
例子 (Example)
以下示例显示了使用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.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$
赋值子句
Value子句是一个可选子句,用于初始化数据项。 值可以是数字文字,字母数字文字或图形常量。 它可以与组和基本项一起使用。
例子 (Example)
以下示例显示了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.5
WS-NAME : ABCD
WS-ID : 00