您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > COBOL语言基础教程
cobol语言基础培训教程2009年04月23日|5:23下午分类:大型机|Mainframe|标签:cobol数据类型、COBOL程序举例、cobol入门、cobol教程、cobol语言、大型机培训|CHAPTER1COBOL概述COBOL是CommonBusinessOrientedLanguage的缩写。它不仅是商业数据处理的理想语言,而且广泛用于数据管理领域,因此COBOL语言也被称为”用于管理的语言”。一。COBOL语言的特点最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑关系,大量的分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。二。COBOL的组成部分:1。标识部(IDENTIFICATIONDIVISION):用于标识程序名。2。环境部(ENVIRONMENTDIVISION):用于说明程序运行的环境。3。数据部(DATADIVISION):用于说明程序中涉及的所有数据。4。过程部(PROCEDUREDIVISION):是程序的核心部分,它决定计算机应进行什么操作。三。最简单的COBOL程序举例:COL1—67812—7273—80IDENTIFICATIONDIVISION。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部分,如ACCEPTA,则表示从系统隐含指定的设备上读入一个数据给A。如果不想从指定的设备上输入,则要用FROM选项,这时”助忆名”需要在环境部中事先说明和那种外部设备相联系。如:ENVIRONMENTDIVISION。(环境部)CONFIGRATIONSECTION。(配置节)SPECIAL-NAMES。(专用名段)CONSOLEISABC如在过程部中有ACCEPTTFROMABC。则表示要从控制台接收数据2。DISPLAY语句:从计算机内存中输出到某一指定的输出设备上。DISPLAY{标识符1,常量1}[标识符2,常量2]。。。[UPON助忆名](标识符和助忆名的说明同上)ACCEPT语句和DISPLAY语句不必定义文件适用于少量的数据输入输出。3。READ语句:COBOL语言中数据的输入输出主要是通过对外部文件的读写进行的。READ语句就是从外部文件上读入数据输出到程序中的数据项中。在程序中用到的所有文件都需要在环境部中指定程序中用到的文件名与实际外部文件的联系。数据部也要对文件加以描述。指定数据结构各数据项所占的内存单元长度以及数据形式。COBOL的存取是以文件为对象以记录为单位的。READ语句的最简单的格式为:READ文件名ENVIRONMENTDIVISION。INPUT-OUTPUTSECTION。FILE-CONTROL。SELECTIN-FILLEASSIGNTO外部文件名。为了存储读入的记录,必须在内存开辟一个与文件记录长度相等的存储区,即’输入文件纪录区’。每一个输入文件都有相应的’输入文件纪录区’,与之一一对应。亦即在数据部中描述文件的数据结构。3。READ语句:假设IN-FILE文件每一记录中包含的内容为:产品代码,产品数量,产品单价,生产日期。设某一记录的具体数据如下:00100100000100019990322prodcodequantitypriceyearmonday如果我们希望读入该记录并对各数据项进行处理,则需要在’输入纪录区’中划分出各数据项,以便存放相应的数据。定义输入纪录区以及划分记录区中各数据项的工作是由数据部来完成的。下面我们简单介绍数据部定义记录区方法,针对上面输入数据的特点,我们可以在数据部中对记录区作如下描述:DATADIVISION。FDIN-FILELABLERECORDISSTANDARD。01IN-RECORD。(定义记录区名为IN-RECORD)02PROD-CODEPIC9(4)。02PROD-QUANTITYPIC9(5)。02PROD-PRICEPIC9(6)。02MANU-DATE。(生产日期为一组合项)05DATE-CCYYPIC9(4)。05DATE-MMPIC9(2)。05DATE-DDPIC9(2)。其中,FD即FILEDESCRIPTION,表示从该行起是’文件描述体’。LABLERECORDISSTANDARD:所有的磁盘文件和磁带文件都必须写明此句。01层定义’输入纪录区’的名字为IN-RECORD,由于01层属于FD描述体,因此也就指定了IN-RECORD和IN-FILE的关系。亦即从IN-FILE读入的数据存放在IN-RECORD记录区中。这样,在执行一次READ语句后,文件中一个记录的数据便输入到内存记录区,按排列顺序分别送到记录区中各数据项中。注意文件的各记录中的数据是不分数据项的,只是按一定的顺序把数据存放在各字节中。所以数据部对记录区中各数据项的描述应该与文件的记录中各数据排列次序和长度相一致。READ语句的一般形式:READ文件名RECORD[INTO标识符][ATEND执行语句],例如:READIN-FILEINTOTEMP-RECORDATENDSTOPRUN该语句除了将读到的数据传送到IN-RECORD之外,还传送到TEMP-RECORD中。在遇到文件尾时,程序结束运行。4。WRITE语句:将内存中的数据输出到外部设备,主要是由WRITE语句来完成的。WRITE语句的最简单的格式为:WRITE记录名(注意WRITE语句的操作对象是记录,所以是’记录名’而不是’文件名’)与输入文件相似输出文件也要在环境部中指定所对应的实际存在的外部文件:ENVIRONMENTDIVISION。INPUT-OUTPUTSECTION。FILE-CONTROL。SELECTOUT-FILLEASSIGNTO打印机名。也要在数据部中定义输出记录区:DATADIVISION。FDOUT-FILELABLERECORDISOMITTED。01OUT-RECORD。02PROD-CODEPIC9(4)。02PROD-QUANTITYPIC9(5)。02PROD-PRICEPIC9(6)。02MANU-DATE05DATE-CCYYPIC9(4)。05DATE-MMPIC9(2)。05DATE-DDPIC9(2)。LABLERECORDISOMITTED:凡输出设备是打印机的都必须写明此句。如输出设备是磁盘,则仍用LABLERECORDISSTANDARD。01层定义’输出纪录区’的名字为OUT-RECORD,由于01层属于FD描述体,因此也就指定了OUT-RECORD和OUT-FILE的关系。在用WRITE语句输出一个记录之前,应向输出记录区传送数据。如已将数据传送到上述各数据项中,则在执行WRITEOUT-RECORD语句后,则记录区中的数据通过打印机打印出来。WRITE语句的一般形式:标识符2LINEBEFORE整数LINESWRITE记录名[FROM标识符1]AFTERADVANCING助忆名PAGE5。OPEN语句:程序中如果需要读写文件,则该文件必须先用OPEN语句打开,系统在执行READ,WRITE以前先检查该文件是否已在规定的外部设备上准备就绪。OPEN语句的一般格式为:INPUT文件名1[,文件名2]。。。OPENOUTPUT文件名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标识符1BY标识符2[,标识符3]。。。常量1,格式2:MULTIPLY标识符1BY标识符2GIVING标识符3[,标识符4]。。。常量1,常量24。DIVIDE语句:格式1:DIVIDE标识符1INTO标识符2[,标识符3]。。。常量1格式2:DIVIDE标识符1INTO标识符2GIVING标识符3[,标识符4]。。。常量1BY常量2Bà注意:DIVIDEAINTOB是指B/ADIVIDEAINTOCàBGIVINGC是指B/ADIVIDEABYBCàGIVINGC是指A/B5。COMPUTE语句:COMPUTE标识符1[,标识符2]。。。=算术表达式运算的优先级由高到低顺序为:(),正负号,**,*或/,+或-如:C=3,D=5,E=2,F=1则:COMPUTA,B=-(C+D)*2/E**3-F=-3三。传送语句(MOVE)MOVE语句用来实现内存中数据的传送(而不是内存和外设之间的传送)。MOVE语句的一般格式为:MOVE标识符1TO标识符2[,标识符3]。。。常量1MOVE语句的传送规则:1,如果接收项和发送项在数据部中描述的类型和长度相同,则按字节一一对应传送。2,如果接收项和发送项长度不相同,而二者都是数值数据项,则按小数点对齐处理。3,对字母或字符数据(非数值型数据)的传送,按左对齐处理。4,初等项和组合项之间可以相互传送。关于各类数据之间的传送规则将在第五章中介绍。四。转移语句(GOTO)当需要使程序改变正常执行的顺序时,可以使用无条件转移语句GOTO。其一般格式为:格式1:GOTO过程名格式2:GOTO过程名1[,过程名2]。。过程名nDEPENDINGON标识符注意:只能转移到段或节的开头,不能转移到段或节的当中某一语句。段名或节名为过程名。五。条件语句(IF)当需要根据给出的某些条件是否满足来决定应执行哪一部分语句时,可以使用条件语句IF。其一般格式为:IF条件语句组1ELSE语句组1[END-IF]NEXTSENTENCENEXTSENTENCECOBOL关系运算符:ISGREATERTHAN()ISLES
本文标题:COBOL语言基础教程
链接地址:https://www.777doc.com/doc-2906551 .html