COBOL 數據類型

2018-10-14 10:54 更新

數據部(Data Division)是用來定義程序中使用的變量。為了描述COBOL中的數據,必須了解以下術語:

  • Data Name(數據名稱)

  • Level Number(級數)

  • Picture Clause(圖片子句)

  • Value Clause(值子句)

01            TOTAL-STUDENTS            PIC9(5)            VALUE '125'.
|                    |                    |                    |
|                    |                    |                    |
|                    |                    |                    | 
Level Number     Data Name           Picture Clause       Value Clause

Data Name數據名稱

數據名稱必須在數據部中定義,然后才能在過程部中使用。它們必須有一個用戶自定義的名稱;不能使用保留詞。數據名為存儲實際數據的存儲單元提供引用。它們可以是基本類型或組類型。

下面的示例顯示有效和無效的數據名稱:

Valid:
WS-NAME
TOTAL-STUDENTS
A100
100B

Invalid:
MOVE            (Reserved Words)
COMPUTE         (Reserved Words)
100             (No Alphabet)
100+B           (+ is not allowed) 

Level Number級數

級數是用于指定記錄中的數據級別。它們用于區(qū)分基本項和組項?;卷椏梢越M合在一起創(chuàng)建組項。

級數描述
01記錄描述條目
02至49組項和基本項
66重命子句項
77不能被細分項
88條件名稱條目
  • Elementary items基本項目 不能進一步細分。級數,數據名稱,圖片子句和值子句(可選)用于描述基本項。

  • Group items組項目 由一個或多個基本項組成。級數,數據名稱和值子句(可選)用于描述組項。組級數始終為01。

下面的示例演示Elementary itemsGroup items

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 Clause圖片子句

圖片子句用于定義以下項目:

  • 數據類型:可以是數字,字母或字母數字。數字類型僅由數字0到9組成。字母類型由字母A到Z和空格組成。字母數字類型由數字,字母和特殊字符組成。

  • 符號:可以與數字數據一起使用。它可以是+或-。

  • 小數點位置:可與數字數據一起使用。假設位置是小數點的位置,而不包括在數據中。

  • 長度:定義數據項使用的字節(jié)數。

在圖片子句中使用的符號:

符號描述
9數字
A字母
X字母數字
V隱式小數
S符號
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執(zhí)行上述COBOL程序:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

當你編譯和執(zhí)行上面的程序,會產生以下結果:

WS-NUM1 : +000.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$

Value Clause值子句

值子句是一個可選子句,用于初始化數據項。該值可以是數字文字,字母數字文字,或象征常數。它可以與組項和基本項一起使用。

下面的例子顯示值子句的使用:

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執(zhí)行上述COBOL程序:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO

當你編譯和執(zhí)行上面的程序,會產生以下結果:

WS-NUM1 : 03.5
WS-NAME : ABCD
WS-ID   : 00
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號