本文概述
- 输入/输出动词
- 数据处理/算术动词
- 输入/输出动词
- 接受
- 显示
- 数据处理/算术动词
- 初始化
- 移动
- 加
- 减去
- 乘
- 划分
- 计算
- 字符串处理动词
- String
- 解锁
- 检查
- 文件处理动词
- 打开
- 关
- 读
- 写
- 改写
- 开始
- 删除
- 程序分支动词
- 呼叫
- 出口
- 退出程序
- 去
- 表现
- 停
- 停止运行
输入/输出动词 输入/输出动词用于获取用户数据并显示COBOL程序的输出。在此过程中, 使用以下两个动词:
接受
接受动词从OS或用户获取数据。它获取日期, 日期, 时间等数据。
如果程序接受用户数据, 则该数据需要由用户传递。从操作系统提取数据时, 我们可以使用FROM选项, 如下例所示:
ACCEPT JT-SUBJECT-NAME.ACCEPT JT-DATE FROM SYSTEM-DATE.
显示
该动词显示COBOL程序的输出。
DISPLAY JT-SUBJECT-NAME.DISPLAY "System date is : " WS-DATE.
例子:
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION.WORKING-STORAGE SECTION.01 JT-SUBJECT-NAME PIC X(25).01 JT-USER-DATE PIC X(10).01 JT-DATE PIC X(6).PROCEDURE DIVISION.ACCEPT JT-SUBJECT-NAME.ACCEPT JT-USER-DATE.ACCEPT JT-DATE FROM DATE.DISPLAY "Name :" JT-SUBJECT-NAME.DISPLAY "Date Entered by the User: " JT-USER-DATE.DISPLAY "System Date : " JT-DATE.STOP RUN.
编译并运行该程序后, 该程序将提示你输入名称和日期。输入主题名称和日期。
文章图片
然后按Enter。它将显示以下输出:
输出如下:
文章图片
数据处理/算术动词 这些动词用于数据处理和执行算术运算。
初始化
该动词用于初始化特定项目或组项目。零替换数字数据项。无法使用RENAME子句初始化数据名称。
字母数字或字母数据对象被替换为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 00011.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 CORRESPONDING / CORR。
使用MOVE(x:l), 其中x是起始位置, l是从字符串传输数据的长度。如果目标数据项的PIC子句小于源数据项的PIC子句, 则数据将被截断。如果目标数据项的PIC子句在上面, 则源数据项的PIC子句, 其他字节将包括ZEROS或SPACES。
例子:
让我们看一个例子, 使所有事情变得清晰:
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{literal-1 / data-item-1 } ..TOtarget-data-item-1 ..ADD{literal-1 / data-item-1 } ..GIVINGtarget-data-item-1 ..
让我们看一些例子:
范例1:
ADD10TO A.
这里, 假设A的值为5;执行上述语句后, a将为15。均值(10 + A)。
范例2:
ADD A B C TO D GIVING E
在此, 将A, B, C, D相加并将结果存储在E中(E = A + B + C + D)。
范例3:
ADD CORR WS-A TO WS-B
在此, 添加A和B中的子组项, 并添加结果, 结果存储在B中。
例子:
现在, 让我们看一下通过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-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.
输出如下:
文章图片
减去
该动词用于执行减法运算。
语法如下:
SUBTRACTdata-item1/constant FROM data-item2.SUBTRACTdata-item1/constant FROM data-item2 GIVING data-item3 ROUNDED.
在这里, ROUNDED是可选的。在使用SUBTRACT动词之前, 有一些规则:将FROM单词之前的所有值相加并从FROM单词之后的每个数据项/常量中减去。
- 使用GIVING选项时, 结果将存储在单词GIVING之后的数据项中。
- 不使用GIVING选项时, 结果将存储在FROM后面给出的数据项中。
SUBTRACT 10 FROM A
在这里, 将从A中减去10, 结果将存储在A.中, 即(10 + A)。
范例2:
SUBTRACT A B C FROM GIVING E
此处, A, B, C与D相加和相减。结果存储在E中(E = D-(A + B + C))。
范例3:
SUBTRACT CORR WS-GROUP1 TO WS-GROUP2
在此, 减去WS-GROUP1和WS-GROUP2中的子组项, 并将结果存储在WS-GROUP2中。
例子:
现在, 让我们看一下通过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 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.
输出如下:
文章图片
乘
乘法动词用于执行乘法运算。
语法如下:
MULTIPLYdata-item1 or constant BY data-item2.MULTIPLYdata-item1 or constant BY data-item2 GIVING data-item3 ROUNDED.
在这里, ROUNDED是可选的。
范例1:
MULTIPLY A BY B
此处, A和B中的值将相乘, 结果将存储在B中。(B = A * B)。
范例2:
MULTIPLY A BY B C
此处, A和B中的值将相乘, 结果存储在B中(B = A * B)。 A和C中的值相乘, 结果存储在C中(C = A * C)。
范例3:
MULTIPLY A BY B GIVING E
在此, 将A和B中的值相乘, 结果存储在E中(E = A * B)。
例子:
现在, 让我们看一下通过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 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动词用于执行除法运算。
语法如下:
DIVIDEdata-item1/constant INTO data-item2.DIVIDEdata-item1/constant BY (or INTO) data-item2 GIVING data-item3 ROUNDED? REMAINDER data-item4.
范例1:
DIVIDE A INTO B
在此, 将B的值除以A的值, 并将结果存储在B中(B = B / A)。
DIVIDE A BY B GIVING C REMAINDER R
在此, A的值除以B的值, 结果存储在C中(C = A / B), 余数存储在R中。
例子:
现在, 让我们看一下通过COBOL中的程序的一个示例:
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.
输出如下:
文章图片
计算
COBOL中的COMPUTE动词可编写算术表达式。计算动词替代加, 减, 乘和除动词。
例子:
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-动词详细图解】输出如下:
文章图片
推荐阅读
- COBOL-安装详细步骤图解
- COBOL-字符串处理
- COBOL-循环语句
- COBOL-程序结构
- COBOL-简介
- COBOL-内部排序
- COBOL-文件处理动词
- COBOL-部门
- COBOL-文件处理