在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Java/ COBOL數(shù)據(jù)布局
COBOL循環(huán)語句
COBOL數(shù)據(jù)布局
COBOL基本語法
COBOL條件語句
COBOL程序結(jié)構(gòu)
COBOL環(huán)境安裝
COBOL數(shù)據(jù)類型
COBOL教程
COBOL字符串處理
COBOL基本動詞

COBOL數(shù)據(jù)布局

COBOL布局是使用每個字段的說明和值出現(xiàn)。以下是在COBOL中使用的數(shù)據(jù)描述項:

  • 重新定義子句
  • 重命名子句
  • 用法子句
  • 復(fù)寫簿

重新定義子句

重新定義子句用于定義相同的存儲與不同的數(shù)據(jù)的描述。如果一個或多個數(shù)據(jù)項都不會同時使用,則在相同的存儲可用于另一個數(shù)據(jù)項。所以同一個存儲可以被稱為具有不同的數(shù)據(jù)項。

語法

以下是語法重新定義子句:

01 WS-OLD PIC X(10).
01 WS-NEW1 REDEFINES WS-OLD PIC 9(8).
01 WS-NEW2 REDEFINES WS-OLD PIC A(10).

以下是使用參數(shù)的詳細(xì)信息:

  • WS-OLD是重新定義的項

  • WS-NEW1 和 WS-NEW2 是重新定義的項

重新定義的信息并重新確定項目的級別數(shù)必須是相同的,它不能是66或88級數(shù)。不要使用VALUE子句與重新定義項。在文件部分,不要使用重定義子句與01級號。重新定義的定義必須要重新定義下一個數(shù)據(jù)描述。重新定義的項目將始終具有相同的值重新定義的項。

例子

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-DESCRIPTION.
05 WS-DATE1 VALUE '20140831'.
10 WS-YEAR PIC X(4).
10 WS-MONTH PIC X(2).
10 WS-DATE PIC X(2).
05 WS-DATE2 REDEFINES WS-DATE1 PIC 9(8).
PROCEDURE DIVISION.
DISPLAY "WS-DATE1 : "WS-DATE1.
DISPLAY "WS-DATE2 : "WS-DATE2.
STOP RUN.

JCL以上COBOL程序執(zhí)行。

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

當(dāng)編譯并執(zhí)行上面的程序它會產(chǎn)生以下結(jié)果:

WS-DATE1 : 20140831
WS-DATE2 : 20140831

重命名子句

重命名子句用于為現(xiàn)有的數(shù)據(jù)項賦予不同的名稱。它被用于重新組數(shù)據(jù)的名稱,并將它們賦予了新名字。新的數(shù)據(jù)名稱可以跨組或基本項目重新命名。 66級號在重命名保留。

語法

以下是重命名子句的語法:

01 WS-OLD.
10 WS-A PIC 9(12).
10 WS-B PIC X(20).
10 WS-C PIC A(25).
10 WS-D PIC X(12).
66 WS-NEW RENAMES WS-A THRU WS-C.

重命名有可能在只相同的級別。在上面的例子中的WS-A,WS-B和WS-C處于同一水平。重命名定義必須要重命名的下一個數(shù)據(jù)描述。不要使用重命名為01,77或66級數(shù)。用于重命名數(shù)據(jù)名稱必須為一個序列。當(dāng)前子句數(shù)據(jù)項不能被重新命名。

例子

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-DESCRIPTION.
05 WS-NUM.
10 WS-NUM1 PIC 9(2) VALUE 20.
10 WS-NUM2 PIC 9(2) VALUE 56.
05 WS-CHAR.
10 WS-CHAR1 PIC X(2) VALUE 'AA'.
10 WS-CHAR2 PIC X(2) VALUE 'BB'.
66 WS-RENAME RENAMES WS-NUM2 THRU WS-CHAR2.
PROCEDURE DIVISION.
DISPLAY "WS-RENAME : " WS-RENAME.
STOP RUN.

JCL以上COBOL程序執(zhí)行。

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

當(dāng)編譯并執(zhí)行上面的程序它會產(chǎn)生以下結(jié)果:

WS-RENAME : 56AABB

用法子句

用法子句通知,其中格式數(shù)據(jù)被存儲在操作系統(tǒng)。它不能用于具有66或88級數(shù)。如果用法子句在組中指定了所有的基本項目將有相同的用法子句。以下是不同的選擇和使用子句:

顯示

數(shù)據(jù)項被存儲在ASCII格式和每個字符需要1個字節(jié)。這是缺省情況下使用。

例如,計算所需的字節(jié)數(shù):

01 WS-NUM PIC S9(5)V9(3) USAGE IS DISPLAY.
It requires 8 bytes as sign and decimal doesn't require any byte.

01 WS-NUM PIC 9(5) USAGE IS DISPLAY.
It requires 5 bytes as sign.

計算/ COMP

數(shù)據(jù)項被存儲在二進(jìn)制格式。在這個數(shù)據(jù)項必須是整數(shù)。

例如,計算所需的字節(jié)數(shù):

01 WS-NUM PIC S9(n) USAGE IS COMP.

If 'n' = 1 to 4, it takes 2 bytes.
If 'n' = 5 to 9, it takes 4 bytes.
If 'n' = 10 to 18, it takes 8 bytes.

COMP-1

數(shù)據(jù)項是類似于實數(shù)或浮點數(shù),并表示為單精度浮點數(shù)。內(nèi)部數(shù)據(jù)存儲在十六進(jìn)制格式。在這種不指定PIC子句。在這里,1字等于4個字節(jié)。

COMP-2

數(shù)據(jù)項是類似龍或雙并表示為雙精度浮點數(shù)。內(nèi)部數(shù)據(jù)存儲在十六進(jìn)制格式。在這種不指定PIC子句。這2個字等于8個字節(jié)。

COMP-3

數(shù)據(jù)項是包十進(jìn)制格式存儲。每個數(shù)字占半個字節(jié)(1四位)和符號儲存在最右邊四位。

例如,計算所需的字節(jié)數(shù):

01 WS-NUM PIC 9(n) USAGE IS COMP.
Number of bytes = n/2 (If n is even)
Number of bytes = n/2 + 1(If n is odd, consider only integer part)

01 WS-NUM PIC 9(4) USAGE IS COMP-3 VALUE 21.
It requires 2 bytes of storage as each digit occupies half a byte.

01 WS-NUM PIC 9(5) USAGE IS COMP-3 VALUE 21.
It requires 3 bytes of storage as each digit occupies half a byte.

復(fù)寫薄

COBOL復(fù)寫簿選擇定義數(shù)據(jù)結(jié)構(gòu)的代碼。如果一個特定的數(shù)據(jù)結(jié)構(gòu)用于寫入相同數(shù)據(jù)結(jié)構(gòu)的多個程序然后代替再次,我們可以使用復(fù)寫簿。我們使用COPY語句,包括復(fù)寫簿程序。 COPY語句用在工作-存儲部分。

例子包顯示復(fù)寫簿的COBOL程序:

DATA DIVISION.
WORKING-STORAGE SECTION.
COPY ABC.

在這里,ABC是復(fù)寫簿的名字。下面在ABC字帖數(shù)據(jù)項可以使用內(nèi)部程序。

01 WS-DESCRIPTION.
	05 WS-NUM.
		10 WS-NUM1 PIC 9(2) VALUE 20.
		10 WS-NUM2 PIC 9(2) VALUE 56.
	05 WS-CHAR.
		10 WS-CHAR1 PIC X(2) VALUE 'AA'.
		10 WS-CHAR2 PIC X(2) VALUE 'BB'.