COBOl常用操作.docx
- 文档编号:8215400
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:23
- 大小:110.63KB
COBOl常用操作.docx
《COBOl常用操作.docx》由会员分享,可在线阅读,更多相关《COBOl常用操作.docx(23页珍藏版)》请在冰豆网上搜索。
COBOl常用操作
COBOL概述
COBOL是CommonBusinessOrientedLanguage的缩写。
它不仅是商业数据处理的理想语言,
而且广泛用于数据管理领域,因此COBOL语言也被称为“用于管理的语言”。
一。
COBOL语言的特点
最适于数据处理领域:
算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑 关系,大量的分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。
二。
COBOL的组成部分:
1。
标识部(IDENTIFICATIONDIVISION):
用于标识程序名。
2。
环境部(ENVIRONMENTDIVISION):
用于说明程序运行的环境。
3。
数据部(DATA DIVISION):
用于说明程序中涉及的所有数据。
4。
过程部(PROCEDUREDIVISION):
是程序的核心部分,它决定计算机应进行什么操作。
三。
最简单的COBOL程序举例:
COL1---6 7 8 12---7273---80
IDENTIFICATIONDIVISION。
PROGRAM-ID。
PSAMPLE1。
ENVIRONMENTDIVISION。
DATADIVISION。
PROCEUREDIVISION。
DISPLAY‘THISISACOBOLPROGRAM.’
STOPRUN。
四。
COBOL源程序的书写格式:
第1至6列为“标号区”。
第7列为“续行标志区”
第8至此11列,称为“A区”。
程序中有些内容如部头,节头,段头,层号01,层号77及文件
描述符FD等应从A区开始写。
第12至此72列,称为“B区”。
写程序中的正文部分。
如过程部中的句子只能从B区开始写。
第73至80列,称为“注释区”。
五。
COBOL字符集包括:
数字0---9,字母A---Z,a---z,专用字符:
+ - */=,.;‘()<>$及空格。
属于系统字符集而不属于COBOL字符集的字符只能出现 在COBOL程序中的字符串里。
六。
常量:
COBOL常量分为数值常量(如100,-29),非数值常量(如‘ABC’)和表意常量(如ZERO,SPACE,HIGH-VALUE,LOW-VALUE,QUOTE,ALL常量)。
七。
COBOL所处理的数据的特点
层次的概念:
数据间存在的从属关系。
文件的概念:
多个记录可以组成一个文件。
记录的概念:
具有一定层次关系的一组数据项的最大集合,它是内存中具有独立逻辑含义的最大存取项,具有最高层次。
CHAPTER2过程部初步-----最基本的过程部语句
一。
输入输出语句。
1。
ACCEPT语句:
直接从终端键盘或系统指定的输入设备上输入数据。
ACCEPT 标识符[FROM助忆名]
注:
A。
标识符(identifier)指的是能唯一地标识一个数据项的数据名,不能唯一地标识一个
数据项的数据名不是标识符。
标识符可以是组合项。
B。
在ACCEPT语句中如不写FROM部分,如ACCEPT A ,则表示从系统隐含指定的
设备上读入一个数据给A。
如果不想从指定的设备上输入,则要用FROM选项,
这时“助忆名”需要在环境部中事先说明和那种外部设备相联系。
如:
ENVIRONMENT DIVISION。
(环境部)
CONFIGRATION SECTION。
(配置节)
SPECIAL-NAMES。
(专用名段)
CONSOLE IS ABC
如在过程部中有ACCEPT T FROMABC。
则表示要从控制台接收数据
2。
DISPLAY语句:
从计算机内存中输出到某一指定的输出设备上。
DISPLAY {标识符1,常量1}[标识符2,常量2]。
。
。
[UPON助忆名]
(标识符和助忆名的说明同上)
ACCEPT语句和DISPLAY语句不必定义文件适用于少量的数据输入输出。
3。
READ语句:
COBOL语言中数据的输入输出主要是通过对外部文件的读写进行的。
READ语句就是从外部文件上读入数据输出到程序中的数据项中。
在程序中用到的所有文件都需要在环境部中指定程序中用到的文件名与实际外部文件的联系。
数据部也要对文件加以描述。
指定数据结构各数据项所占的内存单元长度以及数据形式。
COBOL的存取是以文件为对象以记录为单位的。
READ语句的最简单的格式为:
READ 文件名
ENVIRONMENT DIVISION。
INPUT-OUTPUT SECTION。
FILE-CONTROL。
SELECT IN-FILLE ASSIGN TO 外部文件名。
为了存储读入的记录,必须在内存开辟一个与文件记录长度相等的存储区,即‘输入文件纪录区’。
每一个输入文件都有相应的‘输入文件纪录区’,与之一一对应。
亦即在数据部中描述文件的数据结构。
3。
READ语句:
假设 IN-FILE 文件每一记录中包含的内容为:
产品代码,产品数量,产品单价,生产日期。
设某一记录的具体数据
如下:
0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 9 9 9 0 3 2 2
prodcode quantity price year mon day
如果我们希望读入该记录并对各数据项进行处理,则需要在 ‘输入纪录区’中划分出各数据项,以便存放相应的数据。
定义输入纪录区以及划分记录区中各数据项的工作是由数据部来完成的。
下面我们简单介绍数据部定义记录区方法,针对上面输入数据的特点,我们可以在数据部中对记录区作如下描述:
DATA DIVISION。
FD IN-FILE LABLE RECORD IS STANDARD。
01 IN-RECORD。
(定义记录区名为IN-RECORD)
02 PROD-CODE PIC 9(4)。
02 PROD-QUANTITY PIC 9(5)。
02 PROD-PRICE PIC 9(6)。
02 MANU-DATE。
(生产日期为一组合项)
05 DATE-CCYY PIC 9(4)。
05 DATE-MM PIC 9
(2)。
05 DATE-DD PIC 9
(2)。
其中,FD即FILEDESCRIPTION,表示从该行起是‘文件描述体’。
LABLERECORDISSTANDARD:
所有的磁盘文件和磁带文件都必须写明此句。
01层定义‘输入纪录区’的名字为IN-RECORD,由于01层属于FD描述体,因此也就指定了IN-RECORD和IN-FILE的关系。
亦即从IN-FILE读入的数据存放在IN-RECORD记录区中。
这样,在执行一次READ语句后,文件中一个记录的数据便输入到内存记录区,按排列顺序分别送到记录区中各数据项中。
注意文件的各记录中的数据是不分数据项的,只是按一定的顺序把数据存放在各字节中。
所以数据部对记录区中各数据项的描述应该与文件的记录中各数据排列次序和长度相一致。
READ语句的一般形式:
READ 文件名 RECORD[INTO 标识符] [AT END 执行语句],例如:
READ IN-FILE INTOTEMP-RECORD AT END STOP RUN 该语句除了将读到的数据传送到IN-RECORD之外,还传送到TEMP-RECORD中。
在遇到文件尾时,程序结束运行。
4。
WRITE语句:
将内存中的数据输出到外部设备,主要是由WRITE语句来完成的。
WRITE语句的最简单的格式为:
WRITE 记录名(注意WRITE语句的操作对象是记录,所以是‘记录名’而不是‘文件名’)
与输入文件相似输出文件也要在环境部中指定所对应的实际存在的外部文件:
ENVIRONMENT DIVISION。
INPUT-OUTPUT SECTION。
FILE-CONTROL。
SELECT OUT-FILLE ASSIGN TO 打印机名。
也要在数据部中定义输出记录区:
DATA DIVISION。
FD OUT-FILE LABLE RECORD IS OMITTED。
01 OUT-RECORD。
02 PROD-CODE PIC 9(4)。
02 PROD-QUANTITY PIC 9(5)。
02 PROD-PRICE PIC 9(6)。
02 MANU-DATE
05 DATE-CCYY PIC 9(4)。
05 DATE-MM PIC 9
(2)。
05 DATE-DD PIC 9
(2)。
LABLERECORDISOMITTED:
凡输出设备是打印机的都必须写明此句。
如输出设备是磁盘,则仍用LABLERECORDISSTANDARD。
01层定义‘输出纪录区’的名字为OUT-RECORD,由于01层属于FD描述体,因此也就指定了
OUT-RECORD和OUT-FILE的关系。
在用WRITE语句输出一个记录之前,应向输出记录区传送数据。
如已将数据传送到上述各数据项中,则在执行WRITE OUT-RECORD语句后,则记录区中的数据通过打印机打印出来。
WRITE语句的一般形式:
标识符2 LINE
BEFORE 整数 LINES
WRITE 记录名 [FROM 标识符1] AFTER ADVANCING 助忆名
PAGE
5。
OPEN语句:
程序中如果需要读写文件,则该文件必须先用OPEN语句打开,系统在执行READ,WRITE以前先检查该文件是否已在规定的外部设备上准备就绪。
OPEN语句的一般格式为:
INPUT 文件名1[,文件名2]。
。
。
OPEN OUTPUT 文件名3[,文件名4]。
。
。
。
。
。
6。
CLOSE语句:
当对一个文件的读或写的操作已完成,就应关闭该文件。
CLOSE语句的一般格式为:
CLOSE 文件名 1 [,文件名2]。
。
。
COBOL通过2位长度的文件状态字(FILE-STATUS)来表示文件的操作结果是否成功,常见的文件状态值及意义:
二。
算数运算语句
1。
ADD语句:
格式1:
ADD 标识符1 ,标识符2。
。
。
TO标识符m[,标识符n]。
。
。
常量1 ,常量2
格式2:
ADD 标识符1 ,标识符2 ,标识符3
常量1 ,常量2 ,常量3
。
。
。
GIVING标识符m[,标识符n]。
。
。
2。
SUBTRACT语句:
格式1:
SUBTRACT 标识符1 ,标识符2。
。
。
FROM标识符m[,标识符n]。
。
。
常量1 ,常量2
格式2:
SUBTRACT 标识符1 ,标识符2 。
。
。
FROM 标识符
常量1 ,常量2 常量
GIVING标识符n[,标识符p]。
。
。
3。
MULTIPLY语句:
格式1:
MULTIPLY 标识符1 BY 标识符2[,标识符3]。
。
。
常量1,
格式2:
MULTIPLY 标识符1 BY 标识符2 GIVING标识符3[,标识符4]。
。
。
常量1 , 常量2
4。
DIVIDE语句:
格式1:
DIVIDE 标识符1 INTO 标识符2[,标识符3]。
。
。
常量1
格式2:
DIVIDE 标识符1 INTO 标识符2 GIVING标识符3[,标识符4]。
。
。
常量1 BY 常量2
B 注意:
DIVIDE A INTO B 是指 B/A
DIVIDE A INTO C B GIVING C 是指 B/A
DIVIDE A BY B C GIVING C 是指 A/B
5。
COMPUTE语句:
COMPUTE 标识符1 [,标识符2]。
。
。
=算术表达式
运算的优先级由高到低顺序为:
(),正负号 ,**,*或 / ,+或-
如:
C=3,D=5,E=2,F=1则:
COMPUT A,B=-(C+D)*2/ E**3- F=-3
三。
传送语句(MOVE)
MOVE语句用来实现内存中数据的传送(而不是内存和外设之间的传送)。
MOVE语句的一般格式为:
MOVE 标识符1 TO 标识符2[,标识符3]。
。
。
常量1
MOVE语句的传送规则:
1,如果接收项和发送项在数据部中描述的类型和长度相同,则按字节一一对应传送。
2,如果接收项和发送项长度不相同,而二者都是数值数据项,则按小数点对齐处理。
3,对字母或字符数据(非数值型数据)的传送,按左对齐处理。
4,初等项和组合项之间可以相互传送。
关于各类数据之间的传送规则将在第五章中介绍。
四。
转移语句(GO TO)
当需要使程序改变正常执行的顺序时,可以使用无条件转移语句GO TO。
其一般格式为:
格式1:
GO TO 过程名
格式2:
GO TO 过程名1 [,过程名2]。
。
过程名n DEPENDING ON 标识符
注意:
只能转移到段或节的开头,不能转移到段或节的当中某一语句。
段名或节名为过程名。
五。
条件语句(IF)
当需要根据给出的某些条件是否满足来决定应执行哪一部分语句时,可以使用条件语句IF。
其一般格式为:
IF 条件 语句组1 ELSE 语句组1 [END-IF]
NEXT SENTENCE NEXT SENTENCE
COBOL关系运算符:
IS GREATER THAN (>)
IS LESS THAN (<)
IS EQUAL TO (=)
NOT GREATER THAN (NOT>)(<=)
NOT LESS THAN (NOT<)(>=)
NOT EQUAL TO (NOT=)
注意:
句点在IF语句中的特殊作用。
如:
IF A> 0
DISPLAY A。
ADD A TO TOTAL。
DISPLAY TOTAL。
与 IF A > 0
DISPLAY A
ADD A TO TOTAL。
DISPLAY TOTAL。
就不同。
为避免出现问题应该使用显式终止符(END-IF,END-PERFORM等)代替隐式终止符(句点“。
”)
六。
停止语句(STOP)
其一般格式为:
STOP RUN
常量
STOP RUN 执行后,程序停止运行,停止后不能再接着运行,如需要,可重新运行一次。
STOP 常量,表示程序暂时挂起不往下执行,显示出此常量。
七。
返回语句(GOBACK)
停止运行,将控制权返回给上一级。
可用本语句代替STOP语句。
子程序必须用GOBACK而
不能用STOP:
因为STOP停止的是一个RUNUNIT(运行单元)。
CHAPTER2过程部初步-----最基本的过程部语句
一。
标识部(IDENTIFICATION DIVISION)
IDENTIFICATION DIVISION.
PROGRAM-ID. 程序名。
[AUTHOR。
作者名。
]
[INSTALLATION。
计算机设置场所。
]
[DATE-WRITTEN。
源程序编写日期。
]
[DATE-COMPILED。
源程序编译日期。
]
[SECURITY。
保密程度。
]
二。
环境部(ENVIRONMENT DIVISION)
ENVIRONMENT DIVISION.
CONFIGRATION SECTION。
SOURCE-COMPUTER。
源计算机名。
OBJECT-COMPUTER。
目标计算机名。
[SPECIAL-NAMES。
专用名描述项。
]
[INPUT-OUTPUT SECTION。
FILE-CONTROL。
{文件控制描述体}。
。
。
[I-O-CONTROL。
输入输出控制描述体]]
1。
CONFIGRATION SECTION。
专有名段的一般格式:
SPECIAL-NAMES。
[DICIMAL-POINT IS COMMA。
]
[CURRENCY SIGNIS 非数值常量。
]
[专用名 IS 助忆名。
]
2。
INPUT-OUTPUT SECTION。
INPUT-OUTPUT SECTION包括两个段,即:
FILE-CONTROL 和I-O-CONTROL。
FILE-CONTROL段是为文件分配外部文件。
I-O-CONTROL段的作用是可以指定目标程序运行时,几个文件共用一个内存区,以省内存。
在此暂不作介绍。
FILE-C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- COBOl 常用 操作