COBOL - Động từ cơ bản
COBOL - Động từ cơ bản
Động từ COBOL được sử dụng trong phân chia thủ tục để xử lý dữ liệu. Một câu lệnh luôn bắt đầu bằng động từ COBOL. Có một số động từ COBOL với các loại hành động khác nhau.
Động từ đầu vào / đầu ra
Các động từ Input / Output được sử dụng để lấy dữ liệu từ người dùng và hiển thị đầu ra của các chương trình COBOL. Hai động từ sau được sử dụng cho quá trình này:
Chấp nhận động từ
Động từ Accept được sử dụng để lấy dữ liệu như ngày, giờ và ngày từ hệ điều hành hoặc trực tiếp từ người dùng. Nếu một chương trình đang chấp nhận dữ liệu từ người dùng, thì chương trình đó cần phải được chuyển qua JCL. Trong khi lấy dữ liệu từ hệ điều hành, tùy chọn FROM được bao gồm như trong ví dụ sau:
ACCEPT WS-STUDENT-NAME.
ACCEPT WS-DATE FROM SYSTEM-DATE.
Hiển thị động từ
Động từ hiển thị được sử dụng để hiển thị đầu ra của chương trình COBOL.
DISPLAY WS-STUDENT-NAME.
DISPLAY "System date is : " WS-DATE.
COBOL PROGRAM
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STUDENT-NAME PIC X(25).
01 WS-DATE PIC X(10).
PROCEDURE DIVISION.
ACCEPT WS-STUDENT-NAME.
ACCEPT WS-DATE FROM DATE.
DISPLAY "Name : " WS-STUDENT-NAME.
DISPLAY "Date : " WS-DATE.
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
//INPUT DD DSN=PROGRAM.DIRECTORY,DISP=SHR
//SYSIN DD *
TutorialsPoint
/*
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:
Name : TutorialsPoint
Date : 200623
Khởi tạo động từ
Động từ khởi tạo được sử dụng để khởi tạo một mục nhóm hoặc một mục cơ bản. Không thể khởi tạo tên dữ liệu có mệnh đề RENAME. Các mục dữ liệu dạng số được thay thế bằng ZEROES. Các mục dữ liệu chữ và số hoặc chữ cái được thay thế bằng SPACES. Nếu chúng ta bao gồm thuật ngữ REPLACING, thì các mục dữ liệu có thể được khởi tạo thành giá trị thay thế đã cho như trong ví dụ sau:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30) VALUE 'ABCDEF'.
01 WS-ID PIC 9(5).
01 WS-ADDRESS.
05 WS-HOUSE-NUMBER PIC 9(3).
05 WS-COUNTRY PIC X(15).
05 WS-PINCODE PIC 9(6) VALUE 123456.
PROCEDURE DIVISION.
A000-FIRST-PARA.
INITIALIZE WS-NAME, WS-ADDRESS.
INITIALIZE WS-ID REPLACING NUMERIC DATA BY 12345.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
DISPLAY "Address : "WS-ADDRESS.
DISPLAY "House Number : "WS-HOUSE-NUMBER.
DISPLAY "Country : "WS-COUNTRY.
DISPLAY "Pincode : "WS-PINCODE.
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:
My name is :
My ID is : 12345
Address : 000 000000
House Number : 000
Country :
Pincode : 000000
Chuyển động từ
Động từ Move dùng để sao chép dữ liệu từ dữ liệu nguồn sang dữ liệu đích. Nó có thể được sử dụng trên cả hai mục dữ liệu cơ bản và nhóm. Đối với các mục dữ liệu nhóm, MOVE CORRESPONDING / CORR được sử dụng. Trong tùy chọn thử, MOVE CORR không hoạt động; nhưng trên máy chủ mainframe, nó sẽ hoạt động.
Để di chuyển dữ liệu từ một chuỗi, MOVE (x: l) được sử dụng trong đó x là vị trí bắt đầu và l là chiều dài. Dữ liệu sẽ bị cắt bớt nếu mệnh đề PIC mục dữ liệu đích nhỏ hơn mệnh đề PIC mục dữ liệu nguồn. Nếu mệnh đề PIC của mục dữ liệu đích nhiều hơn mệnh đề PIC của mục dữ liệu nguồn, thì ZEROS hoặc SPACES sẽ được thêm vào các byte phụ. Ví dụ sau đây làm cho nó rõ ràng.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9).
01 WS-NUM2 PIC 9(9).
01 WS-NUM3 PIC 9(5).
01 WS-NUM4 PIC 9(6).
01 WS-ADDRESS.
05 WS-HOUSE-NUMBER PIC 9(3).
05 WS-COUNTRY PIC X(5).
05 WS-PINCODE PIC 9(6).
01 WS-ADDRESS1.
05 WS-HOUSE-NUMBER1 PIC 9(3).
05 WS-COUNTRY1 PIC X(5).
05 WS-PINCODE1 PIC 9(6).
PROCEDURE DIVISION.
A000-FIRST-PARA.
MOVE 123456789 TO WS-NUM1.
MOVE WS-NUM1 TO WS-NUM2 WS-NUM3.
MOVE WS-NUM1(3:6) TO WS-NUM4.
MOVE 123 TO WS-HOUSE-NUMBER.
MOVE 'INDIA' TO WS-COUNTRY.
MOVE 112233 TO WS-PINCODE.
MOVE WS-ADDRESS TO WS-ADDRESS1.
DISPLAY "WS-NUM1 : " WS-NUM1
DISPLAY "WS-NUM2 : " WS-NUM2
DISPLAY "WS-NUM3 : " WS-NUM3
DISPLAY "WS-NUM4 : " WS-NUM4
DISPLAY "WS-ADDRESS : " WS-ADDRESS
DISPLAY "WS-ADDRESS1 : " WS-ADDRESS1
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 : 123456789
WS-NUM2 : 123456789
WS-NUM3 : 56789
WS-NUM4 : 345678
WS-ADDRESS : 123INDIA112233
WS-ADDRESS1 : 123INDIA112233
Động thái pháp lý
Bảng sau đây cung cấp thông tin về các động thái hợp pháp:
Chữ cái | Chữ và số | Số | |
---|---|---|---|
Chữ cái | Khả thi | Khả thi | Không thể |
Chữ và số | Khả thi | Khả thi | Khả thi |
Số | Không thể | Khả thi | Khả thi |
Thêm động từ
Thêm động từ được sử dụng để thêm hai hoặc nhiều số và lưu trữ kết quả trong toán hạng đích.
Cú pháp
Dưới đây là cú pháp để Thêm hai hoặc nhiều số -
ADD A B TO C D
ADD A B C TO D GIVING E
ADD CORR WS-GROUP1 TO WS-GROUP2
Trong cú pháp-1, A, B, C được thêm vào và kết quả được lưu trữ trong C (C = A + B + C). A, B, D được thêm vào và kết quả được lưu trong D (D = A + B + D).
Trong cú pháp-2, A, B, C, D được thêm vào và kết quả được lưu trong E (E = A + B + C + D).
Trong cú pháp-3, các mục nhóm con trong WS-GROUP1 và WS-GROUP2 được thêm vào và kết quả được lưu trữ trong WS-GROUP2.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9) VALUE 10 .
01 WS-NUM2 PIC 9(9) VALUE 10.
01 WS-NUM3 PIC 9(9) VALUE 10.
01 WS-NUM4 PIC 9(9) VALUE 10.
01 WS-NUMA PIC 9(9) VALUE 10.
01 WS-NUMB PIC 9(9) VALUE 10.
01 WS-NUMC PIC 9(9) VALUE 10.
01 WS-NUMD PIC 9(9) VALUE 10.
01 WS-NUME PIC 9(9) VALUE 10.
PROCEDURE DIVISION.
ADD WS-NUM1 WS-NUM2 TO WS-NUM3 WS-NUM4.
ADD WS-NUMA WS-NUMB WS-NUMC TO WS-NUMD GIVING WS-NUME.
DISPLAY "WS-NUM1 : " WS-NUM1
DISPLAY "WS-NUM2 : " WS-NUM2
DISPLAY "WS-NUM3 : " WS-NUM3
DISPLAY "WS-NUM4 : " WS-NUM4
DISPLAY "WS-NUMA : " WS-NUMA
DISPLAY "WS-NUMB : " WS-NUMB
DISPLAY "WS-NUMC : " WS-NUMC
DISPLAY "WS-NUMD : " WS-NUMD
DISPLAY "WS-NUME : " WS-NUME
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 : 000000010
WS-NUM2 : 000000010
WS-NUM3 : 000000030
WS-NUM4 : 000000030
WS-NUMA : 000000010
WS-NUMB : 000000010
WS-NUMC : 000000010
WS-NUMD : 000000010
WS-NUME : 000000040
Trừ động từ
Subtract verb được sử dụng cho các phép tính trừ.
Cú pháp
Dưới đây là cú pháp cho các phép toán Trừ -
SUBTRACT A B FROM C D
SUBTRACT A B C FROM D GIVING E
SUBTRACT CORR WS-GROUP1 TO WS-GROUP2
Trong cú pháp-1, A và B được cộng và trừ từ C. Kết quả được lưu trong C (C = C- (A + B)). A và B được cộng và trừ từ D. Kết quả được lưu trong D (D = D- (A + B)).
Trong cú pháp-2, A, B, C được cộng và trừ từ D. Kết quả được lưu trong E (E = D- (A + B + C))
Trong cú pháp-3, các mục nhóm con trong WS-GROUP1 và WS-GROUP2 được trừ đi và kết quả được lưu trữ trong WS-GROUP2.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9) VALUE 10 .
01 WS-NUM2 PIC 9(9) VALUE 10.
01 WS-NUM3 PIC 9(9) VALUE 100.
01 WS-NUM4 PIC 9(9) VALUE 100.
01 WS-NUMA PIC 9(9) VALUE 10.
01 WS-NUMB PIC 9(9) VALUE 10.
01 WS-NUMC PIC 9(9) VALUE 10.
01 WS-NUMD PIC 9(9) VALUE 100.
01 WS-NUME PIC 9(9) VALUE 10.
PROCEDURE DIVISION.
SUBTRACT WS-NUM1 WS-NUM2 FROM WS-NUM3 WS-NUM4.
SUBTRACT WS-NUMA WS-NUMB WS-NUMC FROM WS-NUMD GIVING WS-NUME.
DISPLAY "WS-NUM1 : " WS-NUM1
DISPLAY "WS-NUM2 : " WS-NUM2
DISPLAY "WS-NUM3 : " WS-NUM3
DISPLAY "WS-NUM4 : " WS-NUM4
DISPLAY "WS-NUMA : " WS-NUMA
DISPLAY "WS-NUMB : " WS-NUMB
DISPLAY "WS-NUMC : " WS-NUMC
DISPLAY "WS-NUMD : " WS-NUMD
DISPLAY "WS-NUME : " WS-NUME
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 : 000000010
WS-NUM2 : 000000010
WS-NUM3 : 000000080
WS-NUM4 : 000000080
WS-NUMA : 000000010
WS-NUMB : 000000010
WS-NUMC : 000000010
WS-NUMD : 000000100
WS-NUME : 000000070
Nhân động từ
Multiply verb được sử dụng cho các phép toán nhân.
Cú pháp
Dưới đây là cú pháp để nhân hai hoặc nhiều số -
MULTIPLY A BY B C
MULTIPLY A BY B GIVING E
Trong cú pháp-1, A và B được nhân và kết quả được lưu trong B (B = A * B). A và C được nhân và kết quả được lưu trong C (C = A * C).
Trong cú pháp-2, A và B được nhân và kết quả được lưu trong E (E = A * B).
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9) VALUE 10 .
01 WS-NUM2 PIC 9(9) VALUE 10.
01 WS-NUM3 PIC 9(9) VALUE 10.
01 WS-NUMA PIC 9(9) VALUE 10.
01 WS-NUMB PIC 9(9) VALUE 10.
01 WS-NUMC PIC 9(9) VALUE 10.
PROCEDURE DIVISION.
MULTIPLY WS-NUM1 BY WS-NUM2 WS-NUM3.
MULTIPLY WS-NUMA BY WS-NUMB GIVING WS-NUMC.
DISPLAY "WS-NUM1 : " WS-NUM1
DISPLAY "WS-NUM2 : " WS-NUM2
DISPLAY "WS-NUM3 : " WS-NUM3
DISPLAY "WS-NUMA : " WS-NUMA
DISPLAY "WS-NUMB : " WS-NUMB
DISPLAY "WS-NUMC : " WS-NUMC
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 : 000000010
WS-NUM2 : 000000100
WS-NUM3 : 000000100
WS-NUMA : 000000010
WS-NUMB : 000000010
WS-NUMC : 000000100
Chia động từ
Động từ chia được sử dụng cho các phép toán chia.
Cú pháp
Dưới đây là cú pháp cho các phép chia:
DIVIDE A INTO B
DIVIDE A BY B GIVING C REMAINDER R
Trong cú pháp-1, B được chia cho A và kết quả được lưu trong B (B = B / A).
Trong cú pháp-2, A được chia cho B và kết quả được lưu trong C (C = A / B) và phần còn lại được lưu trong R.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9) VALUE 5.
01 WS-NUM2 PIC 9(9) VALUE 250.
01 WS-NUMA PIC 9(9) VALUE 100.
01 WS-NUMB PIC 9(9) VALUE 15.
01 WS-NUMC PIC 9(9).
01 WS-REM PIC 9(9).
PROCEDURE DIVISION.
DIVIDE WS-NUM1 INTO WS-NUM2.
DIVIDE WS-NUMA BY WS-NUMB GIVING WS-NUMC REMAINDER WS-REM.
DISPLAY "WS-NUM1 : " WS-NUM1
DISPLAY "WS-NUM2 : " WS-NUM2
DISPLAY "WS-NUMA : " WS-NUMA
DISPLAY "WS-NUMB : " WS-NUMB
DISPLAY "WS-NUMC : " WS-NUMC
DISPLAY "WS-REM : " WS-REM
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 : 000000005
WS-NUM2 : 000000050
WS-NUMA : 000000100
WS-NUMB : 000000015
WS-NUMC : 000000006
WS-REM : 000000010
Báo cáo điện toán
Câu lệnh Compute được sử dụng để viết các biểu thức số học trong COBOL. Đây là sự thay thế cho Cộng, Trừ, Nhân và Chia.
Example
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 9(9) VALUE 10 .
01 WS-NUM2 PIC 9(9) VALUE 10.
01 WS-NUM3 PIC 9(9) VALUE 10.
01 WS-NUMA PIC 9(9) VALUE 50.
01 WS-NUMB PIC 9(9) VALUE 10.
01 WS-NUMC PIC 9(9).
PROCEDURE DIVISION.
COMPUTE WS-NUMC= (WS-NUM1 * WS-NUM2) - (WS-NUMA / WS-NUMB) + WS-NUM3.
DISPLAY "WS-NUM1 : " WS-NUM1
DISPLAY "WS-NUM2 : " WS-NUM2
DISPLAY "WS-NUM3 : " WS-NUM3
DISPLAY "WS-NUMA : " WS-NUMA
DISPLAY "WS-NUMB : " WS-NUMB
DISPLAY "WS-NUMC : " WS-NUMC
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 : 000000010
WS-NUM2 : 000000010
WS-NUM3 : 000000010
WS-NUMA : 000000050
WS-NUMB : 000000010
WS-NUMC : 000000105
- Thêm ghi chú
- Đánh dấu trang này
- Báo cáo lỗi
- Suggestions
Lưu Đóng