Cobol语言基础(2)

2020-05-05 15:57

05 PHONE-LAST-NAME PIC X(20). 05 PHONE-FIRST-NAME PIC X(20).

05 PHONE-NUMBER PIC X(15).

五.基本的过程部语句

1.输入输出语句:

(1)ACCEPT语句:直接从终端键盘或系统指定的输入设备上输入数据。 ACCEPT 标识符 [FROM 助忆名]

说明:A.标识符(identifier)指的是能唯一地标识一个数据项的数据名,不能唯一地标识一个数据项的数据名不是标识符。

B.在ACCEPT语句中如不写FROM部分,如ACCEPT A ,则表示从系统隐含指定的设备上读入一个数据给A。 如果不想从指定的设 备上输入,则要用FROM 选项,

如:ACCEPT NUM-DATA 运行到这语句时,系统会等待从键盘输入一个字符赋给变量 NUM-DATA .

(2)DISPLAY语句:从计算机内存中输出到某一指定的输出设备上。

DISPLAY { 标识符1,常量1}[标识符2,常量2]。。。[UPON 助忆名] ( 标识符和助忆名的说明同上)

如:DISPLAY NUM-DATA 将NUM-DATA的值显示到屏幕上。

ACCEPT语句和DISPLAY语句不必定义文件适用于少量的数据输入输出。 2.算数运算语句:

(1)ADD语句:

①ADD 标识符1 ,标识符2。。。 TO 标识符m [,标识符n]。。。 例如:ADD A TO B. 表示:B = B + A

②ADD 标识符1 , 标识符2。。。 GIVING标识符M 例如:ADD A , B GIVING C. 表示:C = B + A

(2)SUBTRACT语句:

SUBTRACT 标识符1 ,标识符2 。。。 FROM 标识符m [,标识符n]。。。 例如:SUBTRACT A FROM B. 表示:B = B - A

(3)MULTIPLY语句:

MULTIPLY 标识符1 BY 标识符2 [,标识符3]。。。 例如:MULTIPLY A BY B. 表示:B = B * A

(4)DIVIDE语句:

DIVIDE 标识符1 INTO 标识符2 [,标识符3]。。。 例如:DIVIDE A INTO B 表示: B = B / A

6

COMPUTE 语句:

COMPUTE 标识符1 [,标识符2 ]。。。= 算术表达式 例如: COMPUTE C = A + B.

(5)除法语句中的余数语句(REMAINDER 子句):DIVIDE 语句只能求商不能求余数。如想求余数,可用 REMAINDER 子句。

如: DIVIDE A INTO B GIVING C REMAINDER D 注意:(1)商和余数的值不仅取决于除数和被除数,还取决于数据部中对商和余数的描述。 (2)如用ROUNDED子句,它只对商起作用,余数不作四舍五入处理,在计算余 数时,仍按四舍五入前的值为准。 3.传送语句 (MOVE):

MOVE 语句用来实现内存中数据的传送(而不是内存和外设之间的传送)。 MOVE语句的一般格式为:

MOVE 标识符1 TO 标识符2 [,标识符3]。。。 MOVE语句的传送规则:

1,如果接收项和发送项在数据部中描述的类型和长度相同,则按字节一一对应传送。 2,如果接收项和发送项长度不相同,而二者都是数值数据项,则按小数点对齐处理。 3,对字母或字符数据(非数值型数据)的传送,按左对齐处理。 4,初等项和组合项之间可以相互传送。 4.转移语句(GO TO):

当需要使程序改变正常执行的顺序时,可以使用无条件转移语句 GO TO 。其一般格式为: GO TO 过程名

注意:只能转移到段或节的开头,不能转移到段或节的当中某一语句。段名或节名为过程名。 5.条件语句(IF):

当需要根据给出的某些条件是否满足来决定应执行哪一部分语句时,可以使用条件语句IF。 其一般格式为:

IF 条件 语句组1 ELSE 语句组1 注意:句点在IF 语句中的特殊作用。 如:IF A > 0

DISPLAY A。

ADD A TO TOTAL。 DISPLAY TOTAL。 与 IF A > 0

DISPLAY A

ADD A TO TOTAL。 DISPLAY TOTAL。

7

COBOL关系运算符:

IS GREATER THAN (>)

IS LESS THAN (<) IS EQUAL TO (=)

NOT GREATER THAN (NOT >) (<=) NOT LESS THAN (NOT <) (>=) NOT EQUAL TO (NOT =) 6.停止语句(STOP):

其一般格式为: STOP RUN 常量

STOP RUN 执行后,程序停止运行,停止后不能再接着运行,如需要,可重新运行一次。

STOP 常量,表示程序暂时挂起不往下执行,显示出此常量。 7. 执行语句(PERFORM):

在一个COBOL程序中,过程部中往往有一部分语句需要执行多次。为了让重复的部分在程序中只出现一次,可以把重复的部分单独写成一段或一节(有一个段名或节名),每次执行这部分语句时转去该段,执行完转回来。这时候就需要用到执行语句(PERFORM )。 A. 执行语句的一般形式: PERFORM 过程名1 使用PERFORM语句实现循环:

(1). PERFORM 过程名1 整数 TIMES 例如:PERFORM PRINT 8 TIMES 说明:执行PRINT过程8次。

(2). PERFORM 过程名1 UNTIL 条件

例如:PERFORM READ-FILE UNTIL END-OF-FILE = “Y” 说明:执行READ-FILE过程直到END-OF-FILE等于Y. (3).FERFORM 过程名1

VARYING 变量名 FROM 整数 TO 整数 UNTIL 条件

例如:PERFORM PROGRAM VARYING TEMP FROM 1 BY 1 UNTIL TEMP > 10. 8.习题:

1从屏幕中输入一组产品销售记录,每读入一个记录,计算出销售总额(数量X单价),循环输入

记录直到用户中止输入,.然后打印出全部产品的统计数据。输入数据形式如下:

格式 数据类型

(1) 销售时间: YYYYMMDD 9

8

(2) 产品编号: 9999 9 (3) 产品简称: XXXX X (4) 销售总量: 9999 9 (5) 单位价格: 999.99 9

提示: 程序中的循环控制要使用7中所述的方法,不可以使用GOTO语句。

六.对文件的操作

1.COBOL中文件的定义.

在程序的ENVIRONMENT DIVISION 里对用到的文件进行物理描述 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL.

SELECT PHONE-FILE

ASSIGN TO \

ORGANIZATION IS SEQUENTIAL. 文件名: PHONE-FILE

ASSIGN TO: 将文件映射到一个具体的文件上去

ORGANIZATION IS SEQUENTIAL: 说明这个文件是有序列的

ORGANIZATION IS LINE SEQUENTIAL: 文件是有序列的,每个记录为一行 2.在程序的DATA DIVISION 里对用到的文件进行逻辑描述::

DATA DIVISION. FILE SECTION. FD PHONE-FILE

LABEL RECORDS ARE STANDARD. 01 PHONE-RECORD.

05 PHONE-LAST-NAME PIC X(20). 05 PHONE-FIRST-NAME PIC X(20).

05 PHONE-NUMBER PIC X(15).

文件名: PHONE-FILE

LABEL RECORDS ARE STANDARD.: 表明这个文件是存储在磁盘或者磁带上的 文件中的记录(RECORD)名: PHONE-RECORD

文件的记录也就是一个结构体,定义了文件的所存储的信息. 3.对STANDARD文件的操作:

(1) OPEN语句:程序中如果需要读写文件,则该文件必须先用OPEN语句打开,系统在执行READ,WRITE以前先检查该文件是否已在规定的外部设备上准备就绪。

(2)打开控制语句为: OPEN MODE FILE-NAME

9

例如:

A. OPEN OUTPUT PHONE-FILE

(如果文件不存在,自动生成文件,向里面写入记录,如果文件存在, 文件中已有的记录被删除,写入新的记录)

B. OPEN EXTEND PHONE-FILE

(如果文件不存在,自动生成文件,向里面写入记录,如果文件存在, 文件中已有的记录仍保存,并写入新的记录)

C. OPEN INPUT PHONE-FILE

(如果文件存在,会打开文件读出记录, 文件不存在会发生错误) D. OPEN I-O PHONE-FILE

(如果文件存在,会打开文件读出或写入记录, 文件不存在会发生错误)

(3)关闭控制语句为:

CLOSE FILE-NAME.

(4)COBOL中对于文件操作错误的判定:

COBOL通过2位长度的文件状态字(FILE-STATUS)来表示文件的操作结果是否成功,常见的文件状态值及意义:

(5)读取记录 控制语句:

READ FILE-NAME

READ FILE-NAME NEXT RECORD READ FILE-NAME NEXT RECORD

ANT END

DO SOMETHING

10


Cobol语言基础(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018-2024年中国马饲养行业市场运营态势研究报告(目录) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: