COBOL学习

COBOL概述

          什么是COBOL语言:

           COBOL是Common Business Oriented Language的缩写,是面向商业通用编程语言。它是专门为商业数据处理而设计的计算机高级程序语言。广泛用于数据管理领域。应用于多个行业如:银行,证券,金融,制造,等等。
           COBOL程序的基本结构:
                       标识部(IDENTIFICATION DIVISION)
                              用来标识程序名称,记录程序的文档记录住处如作者和日期等。
                        环境部(ENVIRONMENT DIVISION)
                               用来描述程序运行和编译的计算机环境,内部数据文件与系统设备的对应关系。
                        数据部(DATA DIVISION)
                                定义程序中所有数据的类型和所占内在的大小。
                         过程部(PROCEDURE DIVISION)
                                 编写程序要执行的语句,是程序的核心。
            COBOL学习_第1张图片
                     部下设置节,节下设置段或描述体,段下或节一包含句子。
                     节是由一个或者多个段组成的。节的定义从一个节名开始到下一个节名或文本结束为止。
                             定义格式:节名            SECTION(节名分为系统定义和用户定义两种。)
                      段由一个或多个句子组成,段的定义从段名开始到下一个段名或文本结束为止。
                             定义格式:段名.(段名+点)  (段名分为系统定义和用户自定义两种)
                      文件描述体只能在数据部中定义,用于描述外部文件的属性及其记录的格式。
                              定义格式:FD 文件名.   (文件描述体用FD(file definition)语句定义)。
                      句子是完整的指令,用相应的动词表示其操作,以一个句号加一个以上的空格来结束。
 
            COBOL程序的书写区域               
                      标准COBOL程序每行80列,被分为五人区域。
                      第01——06列为“标识区”
                               标号是6位数字,应从小到大,但不一定连续,标号只是方便查阅程序,可以省略。
                      第7列为“注释区”
                                “*”:表示本行为注释行,用于注释程序说明。
                       第08——11列为“A区”
                                  程序中一列语句必须从该区开始书写:部名、节名、段名,描述符(FD),01和07层。
                       第12——72列为“B区”
                                  程序正文部分,过程部语句必须从该区开始书写。
                       第73——80列为“注释区”
                                   行注释区,写入此区的内容在编译时被忽略(一般不推荐使用。)
 
           COBOL程序的书写格式
                        大小写字母等价,但是引号中的字符除外。
                        相邻的两个COBOL字之间有一个以上的空格。
                         运算符和=左右必须各有一个以上的空格;圆括号外面必须有一个以上的空格,内侧不必。
                         逗号、分号、句号左边不能有空格,而右边应有。
            COBOL的字符
                          COBOL的字符集包括:数字0-9,字母A-Z,a-z,15个专用符号:+ - * / = ,(逗号)  .(句号) ;(分号) '(引号) $ () <> 空格。属于系统字符集而不属于COBOL字符集的字符,只能出现在COBOL的字符串或注释行中。
                          COBOL字是由上述字符组成的最小单位。(保留字、用户字)
                          保留字:规定五种类型专门用途的字(300多个)
                                  键字:如MOVE ADD 等
                                  可选字:如USAGE IS等
                                  专用字符:如运算符:+ - * /等;比较符><=等
                                  表意常量:如ZERO/ZEROS/ZEROES;SPACE/SPACES;QUOTE/QUOTES;HIGH-VALUE/HIGH-VALUES;LOW-VALUE/LOW-VALUES;ALL;NULL/NULLS
                                   专用寄存器:如:LENGTH OF;RETURN-CODE等。
                          用户字:用户自定义的名字。
                                  如:程序名、文件名、节名、段名、数据名等。
 
                          数据名:相当于其它语言中的变量名,它代表一个具体的数据项。
                                 只能由字母(至少一个),数字和连字符“-”组成,连字符不能出现在两端,不能包含空格。
                                 数据名长度不能超过30个字符
                                尽量使用有意义的英文
                                不能使用保留字作为数据名,多使用连字符,如NAME-OF-STUDENT
                          常量:COBOL常量分为数据常量,非数值常量,表意常量
                                 数值常量:由数字0-9,正负号和小数点组成,如:123,25.67,-73
                                 非数值常量:用匹配的引号(单引号)括起来的字符串,如‘$123’ ,由纯数字组成的非数值常量不能用于数学运算,如‘123’和123不同。
                                 表意常量:
                                  COBOL学习_第2张图片  
 

 

标识部

           标识部的作用

                      标识部是COBOL程序的第一部分,用来为程序设定标识,以便识别,每个程序(包括主程序和子程序)都必须有一个名字,系统按名字对程序管理和调用。标识部下面不设置节,只设置段,部名和段名都从A区开始书写。

            书写格式

                      COBOL学习_第3张图片

             PROGRAM-ID命名规则

                      只能使用字母、数字和连字符

                      最少一个字符,不能以连字符开头或者结尾

                      最长30个字符,但通常工作中要求不超过8个字符(和分区数据集下的member名一致)

                     书写格式:PROGRAM-ID.     PROGRAM-NAME.

 

环境部

             环境部的作用

                     环境部用来说明程序运行的软硬件环境,是COBOL程序中唯一与设备相关的部分,将程序中的内部文件与外部文件建立起联系。

                     环境部包括两个节:配置节和输入输出节(当无配置说明和文件应用时可省略。)

                     COBOL学习_第4张图片

                     配置节包括三个段

                     COBOL学习_第5张图片

                     输入输出节

                     COBOL学习_第6张图片

                     COBOL学习_第7张图片

数据部

             1、数据部的作用

                          程序中涉及到的全部数据(输入、输出、中间)都要在此定义,对它们的属性进行说明。主要描述以下属性:

                          数据类型(数值/字符)和存储形式(长度)

                          数据项之间的关系(层次和层号)

                          文件与记录的关系

             2、数据部的结构

                          根据数据项的用途不同,数据部可以分为:

                          文件节(file section)

                                  用来描述程序中用到的输入输出文件及记录中各数据项的属性

                          工作单元节(working-storage section)

                                  用来描述程序中用到的中间数据

                          联接节(linkage section)

                                   用来描述与调用程序间发生数据传递的数据项(即参数)

             3、数据定义

                          COBOL中把有层属关系的数据用层次关系来描述

                          COBOL学习_第8张图片

                          层次规定:

                          COBOL学习_第9张图片

                          COBOL学习_第10张图片

             4、文件节(file section)

                         程序中的每个输入、输出文件的数据格式都要在此描述,包括:

                                 文件名称和属性

                                 文件中包括的记录的名字

                                 每个记录中数据的层次关系

                                 记录中各数据项的格式和占内存的大小

                         文件的描述一般格式

                                 FD 文件名(内部文件名)

                                 01 记录名

                                       05 数据项1 PIC 。。。。。。

                                       05 数据项2 PIC 。。。。。。

                                 FD语句是文件描述体,用来描述文件与记录的属性,如记录名称、格式、长度

                                 FD语句下所有的数据组和和数据项组成了该文件的一条记录

                                 记录描述:记录描述体由01层号开始,后跟记录名。用于定义记录的数据格式,即各下层的数据项的数据类型和长度。如果记录本身就是一个初等项,则在记录名后描述记录型和长度。

                                举例说明:

                                COBOL学习_第11张图片

             5、工作单元节(working-storage section)

                        COBOL学习_第12张图片

                        COBOL学习_第13张图片

             6、COBOL中的数据类型(数值型、字母型、字符型、编辑型)

                        COBOL学习_第14张图片

                        COBOL学习_第15张图片

                        COBOL学习_第16张图片

                        COBOL学习_第17张图片

                       COBOL学习_第18张图片

                       COBOL学习_第19张图片

             7、链接节(linkage    section)

                       作为主程序与子程序间参数传递的数据名定义在子程序的linkage section。也就是该子程序的接口。数据项的定义形式与在工作单元节一致。

                        COBOL学习_第20张图片

过程部

           1、过程部的作用。

                 编写程序要执行的语句,是程序的核心。

           2、INITIALIZE语句

                  COBOL学习_第21张图片

           3、ACCEPT语句:用于接收从键盘或指定设备上获得输入数据

                  COBOL学习_第22张图片

           4、DISPLAY语句:从计算机内存中的数据输出到某一指定的输出设备上,如监视器、系统输出流等。

                  COBOL学习_第23张图片

                  

           5、MOVE语句:相当地赋值语句,可以将常量或一个数据项的内容传送到另一个数据项中

                  COBOL学习_第24张图片

                  COBOL学习_第25张图片

                  COBOL学习_第26张图片

                  COBOL学习_第27张图片

                  COBOL学习_第28张图片

           6、文件操作语句(OPEN READ WRITE CLOSE)

                  COBOL学习_第29张图片

                  COBOL学习_第30张图片

                  COBOL学习_第31张图片

                 COBOL学习_第32张图片

                 COBOL学习_第33张图片

                 COBOL学习_第34张图片

           7、算术运算语句

                  COBOL学习_第35张图片

                  COBOL学习_第36张图片

                  COBOL学习_第37张图片

                  COBOL学习_第38张图片

                  COBOL学习_第39张图片

                  COBOL学习_第40张图片

           8、字符串语句(STRING UNSTRING INSPECT)

                  COBOL学习_第41张图片

                  COBOL学习_第42张图片

                  COBOL学习_第43张图片

                  COBOL学习_第44张图片

                  COBOL学习_第45张图片

           9、IF语句(条件转移语句。根据给出的判定条件是否满足,来决定执行哪一部分语句)

                  COBOL学习_第46张图片

                  COBOL学习_第47张图片

                  COBOL学习_第48张图片

                  COBOL学习_第49张图片

                                   

           10、EVALUATE语句(多分支选择结构)

                   COBOL学习_第50张图片

                   COBOL学习_第51张图片

                   COBOL学习_第52张图片                 

           11、PERFORM语句(作为执行语句和循环控制语句)

                   COBOL学习_第53张图片

                   COBOL学习_第54张图片            

           12、EXIT语句

                   提供一组过程的公共出口,或者说它指出了被调用过程的逻辑终点,一般用作perform语句序列的出口。EXIT必须是段中唯一的语句,前面必须有段名。

           13、CONTINUE语句

                     用来指定一个空操作,即什么也不做,用来占位置。程序将顺序执行到CONTINUE的下一条语句。

           14、GOTO语句

                    

           15、CALL语句(调用子程序)

                    COBOL学习_第55张图片

                    COBOL学习_第56张图片

                    COBOL学习_第57张图片

           16、GOBACK语句

                    返回语句。停止运行,将控制权返回给上一级。子程序必须用GOBACK,而不能用STOP,因为STOP停止的是一个RUN UNIT(运行单元)。

           17、STOP RUN语句

停止语句。STOP RUN在逻辑上应该是程序的最后一个语句。STOP RUN执行后,程序停止运行,停止后不能再接着运行,如需要,可再重新运行一次。主程序一般通过STOP RUN语句结束运行单元。

VSAM文件

           1、什么是VSAM

                 COBOL学习_第58张图片

           2、VSAM的组织形式和存取方法

                  COBOL学习_第59张图片

                  COBOL学习_第60张图片

           3、VSAM在环境部

                  COBOL学习_第61张图片

           4、VSAM在数据部

                  COBOL学习_第62张图片

           5、VSAM在过程部

                 COBOL学习_第63张图片

                COBOL学习_第64张图片

          

COBOL语言编程规范

                         COBOL学习_第65张图片

                        COBOL学习_第66张图片

你可能感兴趣的:(cobol)