COBOL - Loại dữ liệu
Phân chia dữ liệu được sử dụng để xác định các biến được sử dụng trong một chương trình. Để mô tả dữ liệu trong COBOL, người ta phải hiểu các thuật ngữ sau:
- Tên dữ liệu
- Số cấp
- Mệnh đề hình ảnh
- Mệnh đề giá trị
01 TOTAL-STUDENTS PIC9(5) VALUE '125'.
| | | |
| | | |
| | | |
Level Number Data Name Picture Clause Value Clause
Tên dữ liệu
Tên dữ liệu phải được xác định trong Bộ phận Dữ liệu trước khi sử dụng chúng trong Bộ phận Thủ tục. Chúng phải có tên do người dùng xác định; từ dành riêng không được sử dụng. Tên dữ liệu cung cấp tham chiếu đến vị trí bộ nhớ nơi dữ liệu thực được lưu trữ. Chúng có thể là loại sơ cấp hoặc nhóm.
Thí dụ
Ví dụ sau cho thấy tên dữ liệu hợp lệ và không hợp lệ:
Valid:
WS-NAME
TOTAL-STUDENTS
A100
100B
Invalid:
MOVE (Reserved Words)
COMPUTE (Reserved Words)
100 (No Alphabet)
100+B (+ is not allowed)
Số cấp
Số cấp được sử dụng để chỉ định mức dữ liệu trong bản ghi. Chúng được sử dụng để phân biệt giữa các mục cơ bản và các mục nhóm. Các mục cơ bản có thể được nhóm lại với nhau để tạo các mục nhóm.
Sr.No. | Số cấp & Mô tả |
---|---|
1 | 01 Ghi lại mục mô tả |
2 | 02 to 49 Nhóm và mục Cơ bản |
3 | 66 Đổi tên các mục Mệnh đề |
4 | 77 Các mục không thể chia nhỏ |
5 | 88 Mục nhập tên điều kiện |
Elementary itemskhông thể chia nhỏ hơn nữa. Số cấp, Tên dữ liệu, mệnh đề Hình ảnh và mệnh đề Giá trị (tùy chọn) được sử dụng để mô tả một mục cơ bản.
Group itemsbao gồm một hoặc nhiều mục cơ bản. Số cấp, Tên dữ liệu và mệnh đề Giá trị (tùy chọn) được sử dụng để mô tả một mục nhóm. Số cấp nhóm luôn là 01.
Thí dụ
Ví dụ sau đây cho thấy các mục Nhóm và Mục cơ bản:
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
Mệnh đề hình ảnh
Mệnh đề hình ảnh được sử dụng để xác định các mục sau:
Data typecó thể là số, chữ cái hoặc chữ và số. Kiểu số chỉ gồm các chữ số từ 0 đến 9. Kiểu chữ cái bao gồm các chữ cái từ A đến Z và khoảng trắng. Kiểu chữ và số bao gồm các chữ số, chữ cái và các ký tự đặc biệt.
Signcó thể được sử dụng với dữ liệu số. Nó có thể là + hoặc -.
Decimal point positioncó thể được sử dụng với dữ liệu số. Vị trí giả định là vị trí của dấu thập phân và không được đưa vào dữ liệu.
Length xác định số byte được sử dụng bởi mục dữ liệu.
Các ký hiệu được sử dụng trong mệnh đề Hình ảnh -
Sr.No. | Biểu tượng & Mô tả |
---|---|
1 | 9 Số |
2 | A Chữ cái |
3 | X Chữ và số |
4 | V Số thập phân ngầm định |
5 | S Ký tên |
6 | P Số thập phân giả định |
Thí dụ
Ví dụ sau đây cho thấy việc sử dụng mệnh đề 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 để thực hiện chương trình COBOL ở trên -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
WS-NUM1 : +000.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$
Mệnh đề giá trị
Mệnh đề giá trị là một mệnh đề tùy chọn được sử dụng để khởi tạo các mục dữ liệu. Các giá trị có thể là chữ số, chữ và chữ số hoặc hằng số nghĩa bóng. Nó có thể được sử dụng với cả nhóm và mục sơ cấp.
Thí dụ
Ví dụ sau cho thấy việc sử dụng mệnh đề 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 để thực hiện chương trình COBOL ở trên -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
WS-NUM1 : 03.5
WS-NAME : ABCD
WS-ID : 00