本文主要是介绍cobol基本动词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
cobol基本动词
基本动词用于过程部中的数据处理。每个语句总是以cobol动词开头。
input(输入)/output(输出)
输入输出动词用于从用户获取数据。并显示cobol程序的输出。
accept
用于从操作系统或者用户获取数据,例如日期、时间等。如果程序从用户获取数据,需要通过jcl传递,从操作系统获取数据from选项如下:
accept yourname.
accept currdate from system-date.
display
用于显示cobol程序的输出。
例:
display yourname.
display '66666'.
initialize(初始化)
用来初始化组或基本项。数据名为rename的子句不能被初始化。
数字数据项由zeroes代替。
字母数据项或字母数字由spaces代替。
如果包含replacing语句,则数据项可被初始化为给定替换的值。
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.
move(移动)
移动动词是用来将数据从源数据复制到目标数据的。
它可以用于基本和组数据项。
对于组数据项,使用MOVE CORRESPONDING/CORR。
在尝试其它选项的时候,MOVE CORR不工作;但是在大型机服务器上工作。
对于从字符串移动数据,则使用MOVE(x:l),其中x是起始位置,l是长度。
如果目标数据项PIC子句少于源数据项PIC子句,则数据将被截断。
如果目标数据项PIC子句多于源数据项PIC子句,则将添加额外的ZEROS或SAPCES字节。
例:
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-NUM1DISPLAY "WS-NUM2 : " WS-NUM2DISPLAY "WS-NUM3 : " WS-NUM3DISPLAY "WS-NUM4 : " WS-NUM4DISPLAY "WS-ADDRESS : " WS-ADDRESSDISPLAY "WS-ADDRESS1 : " WS-ADDRESS1STOP RUN.
合法移动
字母 | 字母数字 | 数字 | |
---|---|---|---|
字母 | 可能 | 可能 | 不可能 |
字母数字 | 可能 | 可能 | 可能 |
数字 | 不可能 | 可能 | 可能 |
add(加法)
加法动词用于两个或多个数字相加,并将结果存储在目标运算对象中。
语法
以下为两个或多个数字相加的语法:
ADD A B TO C DADD A B C TO D GIVING EADD CORR WS-GROUP1 TO WS-GROUP2
在语法句1中,A,B,C相加,结果存储在C(C=A+B+C)。A,B,D相加,结果存储在D(D=A+B+D)。
在语法句2中,A,B,C,D相加,结果存储在E(E=A+B+C+D)。
在语法句3中,WS-GROUP1和WS-GROUP2中的子组项相加,结果存储在WS-GROUP2中。
例:
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-NUM1DISPLAY "WS-NUM2 : " WS-NUM2DISPLAY "WS-NUM3 : " WS-NUM3DISPLAY "WS-NUM4 : " WS-NUM4DISPLAY "WS-NUMA : " WS-NUMADISPLAY "WS-NUMB : " WS-NUMBDISPLAY "WS-NUMC : " WS-NUMCDISPLAY "WS-NUMD : " WS-NUMDDISPLAY "WS-NUME : " WS-NUMESTOP RUN.
subtract(减法)
用于减法运算
语法
SUBTRACT A B FROM C DSUBTRACT A B C FROM D GIVING ESUBTRACT CORR WS-GROUP1 TO WS-GROUP2
在语法句1中,A和B相加并从C中减去,结果存储在C(C=C-(A+B))。A和B相加并从D中减去,结果存储在D(D=D-(A+B))。
在语法句2中,A,B,C相加并从D中减去,结果存储在E(E=D-(A+B+C))。
在语法句3中,WS-GROUP1和WS-GROUP2中的子组项相减,结果存储在WS-GROUP2中。
例:
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-NUM1DISPLAY "WS-NUM2 : " WS-NUM2DISPLAY "WS-NUM3 : " WS-NUM3DISPLAY "WS-NUM4 : " WS-NUM4DISPLAY "WS-NUMA : " WS-NUMADISPLAY "WS-NUMB : " WS-NUMBDISPLAY "WS-NUMC : " WS-NUMCDISPLAY "WS-NUMD : " WS-NUMDDISPLAY "WS-NUME : " WS-NUMESTOP RUN.
multiply(乘法)
用于乘法运算
语法
MULTIPLY A BY B CMULTIPLY A BY B GIVING E
在语法句1中,A和B相乘,结果存储在B(B=AB)。A和C相乘,结果存储在C(C=AC)。
在语法句2中,A和B相乘,结果存储在E(E=A*B)。
例:
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-NUM1DISPLAY "WS-NUM2 : " WS-NUM2DISPLAY "WS-NUM3 : " WS-NUM3DISPLAY "WS-NUMA : " WS-NUMADISPLAY "WS-NUMB : " WS-NUMBDISPLAY "WS-NUMC : " WS-NUMCSTOP RUN.
divide(除法)
用于除法运算
语法
DIVIDE A INTO BDIVIDE A BY B GIVING C REMAINDER R
在语法句1中,B除以A,结果存储在B(B=B/A)。
在语法句2中,A除以B,结果存储在C(C=A/B),余数存储在R。
例:
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-NUM1DISPLAY "WS-NUM2 : " WS-NUM2DISPLAY "WS-NUMA : " WS-NUMADISPLAY "WS-NUMB : " WS-NUMBDISPLAY "WS-NUMC : " WS-NUMCDISPLAY "WS-REM : " WS-REMSTOP RUN.
compute(计算)
用于在cobol中写入算术表达式,替代加减乘除。
例:
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-NUM1DISPLAY "WS-NUM2 : " WS-NUM2DISPLAY "WS-NUM3 : " WS-NUM3DISPLAY "WS-NUMA : " WS-NUMADISPLAY "WS-NUMB : " WS-NUMBDISPLAY "WS-NUMC : " WS-NUMCSTOP RUN.
注:本系列文章参考下面网站
参考地址
这篇关于cobol基本动词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!