COBOL - Động từ cơ bản

COBOL - Động từ cơ bản

Quảng cáo
Trang trước
Trang tiếp theo  

Độ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
Trang trước
In
Trang tiếp theo  
  • Print
  •  Thêm ghi chú
  •  Đánh dấu trang này
  •  Báo cáo lỗi
  •  Suggestions

Lưu Đóng

  • Về chúng tôi
  • Chính sách hoàn lại tiền
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • FAQ's
  • Contact
© Bản quyền 2020. Tất cả các quyền.