- COBOL 教程
- COBOL - 首页
- COBOL - 概述
- COBOL - 环境设置
- COBOL - 程序结构
- COBOL - 基本语法
- COBOL - 数据类型
- COBOL - 基本动词
- COBOL - 数据布局
- COBOL - 条件语句
- COBOL - 循环语句
- COBOL - 字符串处理
- COBOL - 表格处理
- COBOL - 文件处理
- COBOL - 文件组织
- COBOL - 文件访问模式
- COBOL - 文件处理动词
- COBOL - 子程序
- COBOL - 内部排序
- COBOL - 数据库接口
- COBOL 有用资源
- COBOL - 问答
- COBOL - 快速指南
- COBOL - 有用资源
COBOL - 数据类型
数据部用于定义程序中使用的变量。要描述 COBOL 中的数据,必须了解以下术语:
- 数据名
- 级别号
- PICTURE 子句
- VALUE 子句
01 TOTAL-STUDENTS PIC9(5) VALUE '125'. | | | | | | | | | | | | Level Number Data Name Picture Clause Value Clause
数据名
在过程部使用数据名之前,必须在数据部中定义它们。它们必须具有用户定义的名称;不能使用保留字。数据名引用存储实际数据的内存位置。它们可以是基本类型或组类型。
示例
以下示例显示有效和无效的数据名:
Valid: WS-NAME TOTAL-STUDENTS A100 100B Invalid: MOVE (Reserved Words) COMPUTE (Reserved Words) 100 (No Alphabet) 100+B (+ is not allowed)
级别号
级别号用于指定记录中数据的级别。它们用于区分基本项和组项。基本项可以组合在一起以创建组项。
序号 | 级别号和描述 |
---|---|
1 |
01 记录描述项 |
2 |
02 到 49 组项和基本项 |
3 |
66 重命名子句项 |
4 |
77 不能细分的项 |
5 |
88 条件名项 |
基本项不能进一步细分。级别号、数据名、PICTURE 子句和 VALUE 子句(可选)用于描述基本项。
组项包含一个或多个基本项。级别号、数据名和 VALUE 子句(可选)用于描述组项。组级别号始终为 01。
示例
以下示例显示组项和基本项:
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 子句
PICTURE 子句用于定义以下项:
数据类型可以是数值型、字母型或字母数字型。数值型仅包含数字 0 到 9。字母型包含字母 A 到 Z 和空格。字母数字型包含数字、字母和特殊字符。
符号可用于数值数据。它可以是 + 或 –。
小数点位置可用于数值数据。假定位置是小数点的位置,不包含在数据中。
长度定义数据项使用的字节数。
PICTURE 子句中使用的符号:
序号 | 符号和描述 |
---|---|
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.00 WS-NUM2 : .000000 WS-NUM3 : -123.45 WS-NAME : ABCDEF WS-ID : A121$
VALUE 子句
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.5 WS-NAME : ABCD WS-ID : 00
广告