开发手册 欢迎您!
软件开发者资料库

COBOL - 数据类型

COBOL数据类型 - 从简单和简单的步骤开始学习Cobol,从基本到高级概念,包括概述,环境设置,程序结构,基本语法,数据类型,基本动词,数据布局,条件语句,循环语句,字符串处理,表处理,文件处理,文件组织,文件访问模式,文件处理动词,子程序,内部排序,数据库接口,面试问题。

数据分区用于定义程序中使用的变量.要描述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