1、过程部初步过程部初步 COBOL过程部是过程部是COBOLCOBOL程序的核心部分,他决定计算机应做什么操程序的核心部分,他决定计算机应做什么操作作 。过程部具有以下特点过程部具有以下特点:过程部的语句都以一个动词开始,如过程部的语句都以一个动词开始,如MOVE,OPEN,READ,WRITEMOVE,OPEN,READ,WRITE等。它表示计算等。它表示计算机应执行的操作机应执行的操作 语句中的动词后面一般要跟以一个操作的对象,操作对象可以是数据名或文语句中的动词后面一般要跟以一个操作的对象,操作对象可以是数据名或文件名件名 过程部的语句一律从过程部的语句一律从B B区开始书写,一个语句可以
2、在一行或多行上区开始书写,一个语句可以在一行或多行上 过程部(过程部(PROCEDURE DIVISION)COBOL输入输出语句:输入输出语句:语句语句描述描述ACCEPT从终端接受一个数据从终端接受一个数据DISPLAY向指定的输出设备上输出信息向指定的输出设备上输出信息OPEN打开指定的文件打开指定的文件READ从指定的文件中读入一条记录从指定的文件中读入一条记录WRITE向指定的文件中写入一条记录向指定的文件中写入一条记录CLOSE关闭指定的文件关闭指定的文件过程部(过程部(PROCEDURE DIVISION)COBOL其中:其中:标识符指的是能唯一的标识一个数据项的数据名标识符指的
3、是能唯一的标识一个数据项的数据名 ACCEPT后面只能跟一个标识符,不能出现两个或后面只能跟一个标识符,不能出现两个或两个以上标识符,但可以用组合项两个以上标识符,但可以用组合项 接收语句接收语句(ACCEPT(ACCEPT语句语句)ACCEPT ACCEPT 标识符标识符 FROM FROM 助忆名助忆名 过程部(过程部(PROCEDURE DIVISION)COBOL其中:其中:如果没有如果没有UPONUPON可选项,则在计算机隐含指定的输出设备上显示可选项,则在计算机隐含指定的输出设备上显示数据数据 每执行一个每执行一个DISPLAYDISPLAY语句,总是从一个新行开始显示的语句,总是
4、从一个新行开始显示的 在运行正式程序时,一般不用在运行正式程序时,一般不用ACCEPTACCEPT和和DISPLAYDISPLAY,以提高计算,以提高计算机效率,减少程序员的干预机效率,减少程序员的干预 显示语句显示语句(DISPLAY(DISPLAY语句语句)DISPLAY DISPLAY 标识符标识符1|1|常量常量1 1,标识符,标识符2|2|常量常量2 2 UPONUPON 助忆名助忆名 过程部(过程部(PROCEDURE DIVISION)COBOL其中:其中:在在READREAD语句中操作的对象是文件语句中操作的对象是文件,每执行一次每执行一次READREAD语句,就从语句,就从指
5、定文件中读入一条记录指定文件中读入一条记录在计算机内存区中专门开辟一片存储单元(输入记录区)来存在计算机内存区中专门开辟一片存储单元(输入记录区)来存放从文件读入的信息放从文件读入的信息 文件读完时的处理文件读完时的处理,这是由这是由READREAD语句中的语句中的“AT ENDAT END”子句来实子句来实现的现的 以用一个以用一个READREAD语句读入一条记录,并马上将记录区的内容转送语句读入一条记录,并马上将记录区的内容转送到另一数据项中去到另一数据项中去 读语句读语句(READ(READ语句语句)READ READ 文件名文件名 RECORD INTO RECORD INTO 标识符
6、标识符 ;AT END ;AT END 执行语句执行语句 过程部(过程部(PROCEDURE DIVISION)COBOL其中:其中:输出在环境部中确定所用的输出设备输出在环境部中确定所用的输出设备 在用在用WRITEWRITE语句输出一个输出记录之前应当向该记录区传送数语句输出一个输出记录之前应当向该记录区传送数据据可以用一个可以用一个WRITEWRITE语句先把内存中另一数据项的内容传给输出语句先把内存中另一数据项的内容传给输出的记录区然后再输出的记录区然后再输出 当不出现当不出现BEFOREBEFORE或或AFTERAFTER时,大多数系统按等价于时,大多数系统按等价于AFTER 1 A
7、FTER 1 处处理理 写语句(写语句(WRITEWRITE语句)语句)WRITE WRITE 记录名记录名 FROM FROM 标识符标识符1 1 BEFORE|AFTER ADVANCING BEFORE|AFTER ADVANCING 标识符标识符2|2|助忆名助忆名|PAGE LINE|LINES|PAGE LINE|LINES过程部(过程部(PROCEDURE DIVISION)COBOL其中:其中:程序如果需要读文件或写文件,则该文件必须先用程序如果需要读文件或写文件,则该文件必须先用OPENOPEN语句打开语句打开 一个一个OPENOPEN语句可以打开一个或多个文件语句可以打开一
8、个或多个文件打开语句打开语句(OPEN(OPEN语句语句)OPEN INPUT|OUTPUT OPEN INPUT|OUTPUT 文件名文件名1 1,文件名,文件名2 2 过程部(过程部(PROCEDURE DIVISION)COBOL其中:其中:一个文件的读或写操作已完成,就应关闭这个不再一个文件的读或写操作已完成,就应关闭这个不再使用的文件使用的文件CLOSECLOSE与与OPENOPEN用法不同,只需指出文件名即可用法不同,只需指出文件名即可 在程序中在程序中CLOSECLOSE与与OPENOPEN要相互对应要相互对应 文件关闭后就不能再对文件在进行读写操作,如有文件关闭后就不能再对文件
9、在进行读写操作,如有需要,可再打开需要,可再打开 关闭语句关闭语句(CLOSE(CLOSE语句语句)CLOSE CLOSE 文件名文件名1 1,文件名,文件名2 2过程部(过程部(PROCEDURE DIVISION)COBOL算术运算语句算术运算语句 语句语句描述描述ADDADD加法加法SUBSTRACTSUBSTRACT减法减法MULTIPLYMULTIPLY乘法乘法DIVIDEDIVIDE除法除法COMPUTECOMPUTE计算计算过程部(过程部(PROCEDURE DIVISION)COBOL加法语句加法语句(ADD(ADD语句语句)的几种形式的几种形式 ADD A TO B ADD
10、A TO B A+B=B A+B=B ADD A,B TO C ADD A,B TO C A+B+C=C A+B+C=C ADD A,B GIVING C ADD A,B GIVING C A+B=C A+B=C ADD A,ADD A,B TO C,D B TO C,D A+B+C=C,A+B+D=D A+B+C=C,A+B+D=D 其中:其中:在在TO TO 和和GIVING GIVING 后面只能跟数据名,而不能跟常量后面只能跟数据名,而不能跟常量 TO TO 前后的数据名的次序不要随便改换前后的数据名的次序不要随便改换 GIVING GIVING的后面可以跟几个数据名的后面可以跟几个数
11、据名 参加运算的只能是数值量,它们的长度不应超过参加运算的只能是数值量,它们的长度不应超过1818位数字位数字 过程部(过程部(PROCEDURE DIVISION)COBOL减法语句减法语句(SUBTRACT(SUBTRACT语句语句)的几种形式的几种形式 SUBTRACT B FROM A SUBTRACT B FROM A A-B=A A-B=A SUBTRACT B,C FROM A SUBTRACT B,C FROM A A-B-C=A A-B-C=A SUBTRACT B,C FROM A,T SUBTRACT B,C FROM A,T A-B A-B C=A C=A T T B
12、B C=T C=T SUBTRACT B,SUBTRACT B,C FROM A GIVING T C FROM A GIVING T A-B-C=TA-B-C=T其中其中:GIVINGGIVING后面不能跟常量后面不能跟常量 如不带如不带GIVINGGIVING部分,则部分,则FROMFROM后面也不能跟后面也不能跟过程部(过程部(PROCEDURE DIVISION)COBOL乘法语句乘法语句(MULTIPLY(MULTIPLY语句语句)的几种形式的几种形式 MULTIPLY A BY B MULTIPLY A BY B A*B=B A*B=B MULTIPLY A BY B GIVING
13、 C MULTIPLY A BY B GIVING C A*B=C A*B=C MULTIPLY A BY B,C MULTIPLY A BY B,C A*B=B,A*C=CA*B=B,A*C=C其中:其中:不带不带GIVINGGIVING部分时,部分时,BYBY后面不能跟常量后面不能跟常量带带GIVINGGIVING部分时,部分时,BYBY后面可以是常数,而后面可以是常数,而GIVINGGIVING后面不能是常量后面不能是常量 存放值的项只能是数据名,不能是常量存放值的项只能是数据名,不能是常量 过程部(过程部(PROCEDURE DIVISION)COBOL除法语句除法语句(DIVIDE(
14、DIVIDE语句语句)的几种形式的几种形式 DIVIDE A INTO DIVIDE A INTO B B B/A=B B/A=B DIVIDE A INTO B GIVING C DIVIDE A INTO B GIVING C B/A=CB/A=C DIVIDE A BY B GIVING C DIVIDE A BY B GIVING C A/B=CA/B=C 其中:其中:当用当用GIVINGGIVING部分时,第一个运算量可以除第二个运算量,此时用部分时,第一个运算量可以除第二个运算量,此时用INTO INTO 允许允许GIVINGGIVING后有几个标识符后有几个标识符 如除不尽则多余
15、的位数被截去如除不尽则多余的位数被截去 过程部(过程部(PROCEDURE DIVISION)COBOL四种算术运算的小结四种算术运算的小结 一个语句只能进行一种单一的运算,不能在一个语句中实现两种一个语句只能进行一种单一的运算,不能在一个语句中实现两种不同的运算不同的运算 加法和减法可以进行两个以上数值量的计算加法和减法可以进行两个以上数值量的计算 四种算术运算,都有两种形式,即带四种算术运算,都有两种形式,即带GIVINGGIVING和不带和不带GIVINGGIVING的的 过程部(过程部(PROCEDURE DIVISION)COBOL计算语句计算语句(COMPUTE(COMPUTE语句
16、语句)COMPUTE COMPUTE 标识符标识符1,1,标识符标识符2 2 =算术表达式算术表达式其中:其中:算术表达式是由算术初等量(数值常量、数值型数据项),算术表达式是由算术初等量(数值常量、数值型数据项),算术运算符算术运算符(+(+、-等等),括号,所组成的有意义的式子,括号,所组成的有意义的式子 所有运算符两侧均应留一空格所有运算符两侧均应留一空格 ,括号的外侧应留空格,内,括号的外侧应留空格,内侧不要留空格侧不要留空格 过程部(过程部(PROCEDURE DIVISION)COBOL 传送语句传送语句(MOVE(MOVE语句语句)MOVE MOVE 标识符标识符1|1|常量常量
17、1 1 TOTO 标识符标识符2 2 ,标识符标识符3 3 MOVEMOVE语句用来实现数据的传送,将一个数据从一个内语句用来实现数据的传送,将一个数据从一个内存域送到另一个内存域中。可以将常量(包括数值常存域送到另一个内存域中。可以将常量(包括数值常量、非数值常量、表意常量)或一数据项的内容传送量、非数值常量、表意常量)或一数据项的内容传送给另一数据项。给另一数据项。过程部(过程部(PROCEDURE DIVISION)COBOL传送语句传送语句(MOVE(MOVE语句语句)的传送原则的传送原则 MOVE A TO B MOVE A TO B发送项发送项接受项接受项如果接收项和发送项在数据部
18、中描述的类型和长度相同,则按字节一一对应如果接收项和发送项在数据部中描述的类型和长度相同,则按字节一一对应的传送的传送 如果接收项和发送项长度不相同,而两者都是数值数据项,则按如果接收项和发送项长度不相同,而两者都是数值数据项,则按“小数点对小数点对齐齐”原则处理原则处理 对字母或字符数据(非数值型数据)的传送,按对字母或字符数据(非数值型数据)的传送,按“左对齐左对齐”原则处理原则处理 MOVEMOVE语句可以将一初等项内容传送给另一初等数据项,也可以将一组合项内语句可以将一初等项内容传送给另一初等数据项,也可以将一组合项内容传送给一初等项,也可以将一初等项内容传送给一组合项容传送给一初等项
19、,也可以将一初等项内容传送给一组合项 过程部(过程部(PROCEDURE DIVISION)COBOLl转移语句转移语句(GOTO(GOTO语句语句)GO TO GO TO 过程名过程名 说明:这是一个无条件转移语句说明:这是一个无条件转移语句l条件语句条件语句(IF(IF语句语句)IF IF 条件条件 语句组语句组 IF IF 条件条件 语句组语句组1 ELSE 1 ELSE 语句组语句组2 2 过程部(过程部(PROCEDURE DIVISION)COBOL关系运算符关系运算符 COBOLCOBOL关系运算符关系运算符意意义义相当数学上的符号相当数学上的符号IS GREATEIS GREA
20、TER R THAN THAN大于大于 IS LESS THAN IS LESS THAN 小于小于 IS EQUAL TOIS EQUAL TO等于等于=NOT GREATENOT GREATER R THAN THAN 不大于不大于NOT LESS THANNOT LESS THAN不小于不小于NOT EQUAL TO NOT EQUAL TO 不等于不等于过程部(过程部(PROCEDURE DIVISION)COBOLl停止语句停止语句(STOP(STOP语句语句)STOP RUN|STOP RUN|常量常量 其中:其中:当用当用STOP RUNSTOP RUN时,执行此语句将程序停止运行,停时,执行此语句将程序停止运行,停止后不能再接着向下运行止后不能再接着向下运行 用用STOP STOP 常量常量 ,表示程序暂时挂起不往下执行,显表示程序暂时挂起不往下执行,显示出此常量示出此常量 过程部(过程部(PROCEDURE DIVISION)
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100