01Cobol基础知识讲义.docx
- 文档编号:29876840
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:79
- 大小:60.48KB
01Cobol基础知识讲义.docx
《01Cobol基础知识讲义.docx》由会员分享,可在线阅读,更多相关《01Cobol基础知识讲义.docx(79页珍藏版)》请在冰豆网上搜索。
01Cobol基础知识讲义
第一章关于COBOL的初步知识
一.COBOL语言的特点
COBOL是CommonBusiness-OrientedLanguage(公用面向商业的语言)的缩写,主要供数据处理、数据收集及分析之用。
COBOL自60年代初开始广泛应用于计算机应用领域(商业和其他领域)。
事实上,除了商业之外,各种管理工作都广泛使用COBOL,如各种统计工作,财会工作,企业计划编制,作业制度,情报检索,人事管理等。
COBOL针对商业世界的使用,是真正商用应用程序开发的首选语言。
1.适于数据处理领域。
2.采用英语语法的高级语言,可读性、可维护性、可移植性较强。
3.通用性强,标准化程度较高。
4.结构严谨,层次分明。
5.缺点是比较繁琐。
二.最简单的COBOL程序介绍
例1:
IDENTIFICATIONDIVISION.(标识部)
PROGRAM-ID.EXAM1.(程序标识段)
ENVIRONMENTDIVISION.(设备部)
DATADIVISION.(数据部)
PROCEDUREDIVISION.(过程部)
A.DISPLAY‘THISISACOBOLPROGRAM.’.
STOPRUN.
例2:
IDENTIFICATIONDIVISION.(标识部)
PROGRAM-ID.EXAM2.(程序标识段)
ENVIRONMENTDIVISION.(设备部)
DATADIVISION.(数据部)
WORKING-STORAGESECTION.(工作单元节)
77APICTUREIS9(3).(对A进行描述)
77BPICTUREIS9(3).(对B进行描述)
PROCEDUREDIVISION.(过程部)
S.ACCEPTA.(输入A值)
ACCEPTB.(输入B值)
ADDATOB.(A+B->B)
DISPLAYA,B.(显示A和B值)
STOPRUN.
三.COBOL程序的结构
1.部
每个程序都包括四个部:
IDENTIFICATIONDIVISION
(标识部)提供程序的一般性文档说明,主要用来指定源程序名。
ENVIRONMENTDIVISION
(环境部)列出程序中所用到的文件。
程序中不需要外部文件时,环境部为空,也可以省略部标题。
DATADIVISION
(数据部)程序中所用到的全部数据(包括:
文件数据—-用于输入输出、静态数据、参数等)都应在数据部中说明它们的类型和所占内存的情况。
PROCEDUREDIVISION
(过程部)包含构成程序的过程性语句,用来给出程序要执行的指令,使计算机产生相应的操作。
2.节和段
标识部下只有各个段。
除标识部以外,每个部下可以有若干个节(SECTION),每个节以“节头”作标识。
每个节下又可包括若干段(PARAGRAPH),每个段用“段名”标识。
各个段内有各种COBOL元素。
3.句子,语句和子句
在过程部中,每一段由若干个句子(Sentence)组成。
一个句子是以英文句号来结束的。
句子又由语句(Statement)组成。
一个语句中又可以包含若干个子句(Clause)。
注意:
部标题、节标题、段名、数据项目描述及句子后必须用英文句号结束,否则程序无法编译。
4.描述体(描述款目)
在数据部中有若干个节,每个节中有若干个描述体,每个描述体又有若干个子句构成。
四.源程序的书写格式
1.1~6列,为“序号区”,为6位整数序号,不是程序本身的内容。
序号不是必须的,但其所占区域要保留。
2.第7列,为“指示符区(续行标志区)”。
连接符“-”表示本行是紧接在上一行的后面。
“*”或“/”表示本行为注释行。
“D”表示本行为调试行。
3.8~11列,为“A区”,部头,节头,段头,层号01,层号77以及文件描述符FD,程序结束标题等应从A区开始书写,但不一定从第8列开始写。
4.12~72列(现在有时厂家规定可到80列),为“B”区,过程部中的句子只能从B区开始书写。
5.73~80列,为“注释区”。
在写程序时,应注意以下几点:
1.大写或小写字母均可,习惯用大写字母。
2.相邻的两个字之间必须留一个以上的空格。
3.运算符和等号左右两边必须各留一个空格。
4.逗号,句号,分号的左边不能留空格,而右边应有空格。
五.COBOL字符和COBOL单字
COBOL字符集包括以下字符:
0~9,a~z,A~Z,+-*/=,.;’”()<>$空格:
COBOL单字分三种:
保留字、用户自定义字及系统名称。
COBOL单字的规则如下:
1.字长为1~30个字符之间。
2.只能由字母,数字和连字符“-”组成,第一个和最后一个字符不能用连字符。
3.字中不能出现空格。
4.小写字母与大写字母等价。
5.不能用保留字作为用户定义字和系统名称,但用户定义字和系统名称可以用同一个单词。
用户自定义字:
文件、数据、标号、程序等所取的名称。
系统名称:
COBOL保留字,用于与操作环境通信,又COBOL厂家定义。
分为:
Computername、Implementersname、Languagename。
保留字:
有300多个。
如:
+、ACCEPT、ADD、BEFORE、DATA。
六.常量
1.数值常量(数字直接数)
例:
123,+45.67,-89.65
2.非数值常量(非数字直接数):
字符串内的引号用两个连续引号表示。
例:
’abcd’,’Expired’,
3.象征常量:
用保留字表示某些常用常量(直接数)。
例:
ZEROZEROSZEROES
SPACESPACES
HIGH-VALUEHIGH-VALUES
LOW-VALUELOW-VALUES
QUOTEQUOTES
ALL常量
七. COBOL处理数据的特点:
层次的概念;记录和文件的概念。
八.程序文本的复制与替换操作
1.COPY语句
COPY语句用COBOL源文本text-name替换从COPY字开始到终止句号之前的内容。
2.REPLACE语句
REPLACE语句将COBOL源程序某个段中的文本进行替换。
替换从REPLACE语句的第一个格式开始,到REPLACEOFF语句结束。
第二章标识部和环境部
一.标识部(IDENTIFICATIONDIVISION)
(一)必写部分
IDENTIFICATIONDIVISION.
PROGRAM-ID.程序名.
(二)任选部分
一般格式:
[AUTHOR.作者姓名]
[INSTALLATION.设计这个程序的公司或部门。
]
[DATE-WRITTEN.编写日期,可记入修订史,修改日期、原因及人员。
]
[DATE-COMPILED.编译日期]
[SECURITY.保密程度的描述。
]
注:
标识部中的段标题只能按部描述中指定的顺序出现。
3.环境部(ENVIRONMENTDIVISION)
环境部指定程序中与特定计算机或操作系统相关的方面,指明用到哪些设备,哪些文件,将程序中用到的内部文件名与外部文件(或外部设备)联系起来。
如果程序不需要任何环境部提供的项目,则可以省略环境部。
一般格式:
ENVIRONMENTDIVISION.
CONFIGURATIONSECTION.配置节
SOURCE-COMPUTER.
OBJECT-COMPUTER.
SPECIAL-NAMES.
INPUT-OUTPUTSECTION.输入/输出节
FILE-CONTROL.
I-O-CONTROL.
1.配置节
包括SOURCE-COMPUTER,OBJECT-COMPUTER和SPECIAL-NAMES(专用名段)。
SOURCE-COMPUTER段标识编译程序的计算机。
若该段省略,则编译程序的计算机是源计算机。
如果指定WITHDEBUGGINGMODE从句,则编译所有源调试行,否则把调试行作为说明语句。
OBJECT-COMPUTER段标识编译程序运行的计算机。
SPECIAL-NAMES段用于把系统中原规定的一些设备名或功能名或符号改为用户自己指定的名字或符号。
SPECIAL-NAMES.
CLASSREAL-NUMBERIS "0123456789+-."----可用于类条件测试
DECIMAL-POINTISCOMMA.-----逗号用作小数点,句号用作编辑符
CURRENCYSIGNIS“Y”.-----表示货币符号的字符,DEFAULT$
2.输入输出节
输入输出节只用于文件,它把内部文件与外部文件(包括外部设备)联系起来。
它有两个段:
文件控制段:
FILE-CONTROL段是给文件命名,指出存放该文件的外部设备及其他有关文件控制信息。
对每个文件包含一个项目。
FILE-CONTROL.
SELECTFILE-1ASSIGNTO“FILE-1.TXT”.
SELECTFILE-2ASSIGNTODISK.
SELECTFILE-3ASSIGNTOPRINTER.
输入输出控制段:
I-O-CONTROL段包含定义程序返回点,不同文件共享的内存区和多文件卷中文件位置的项目。
第三章数据部
一.数据部的节
数据部包含程序引用的所有数据的定义,如文件记录、变量、表格和报表。
COBOL将数据部分成节,每个节是可选的,但程序中的节应按指定顺序定义。
DATADIVISION.
FILESECTION.文件节
WORKING-STORAGESECTION.工作存储节
LINKAGESECTION.连接节
COMMUNICATIONSECTION.通信节
REPORTSECTION.报表节
1.文件节
程序中每一个输入或输出文件都要在文件节中定义。
包括:
(1)文件名和文件属性。
(2)文件中包括的记录名。
(3)每个记录中数据的层次关系。
(4)记录中各数据项的数据形式和占内存的大小。
DATADIVISION.(数据部)
FILESECTION.(文件节)
FDFILE-1.(文件名)
LABELRECORDISOMITTED
DATARECORDISSTUDENT-SCORE.
01STUDENT-SCORE.(记录名)
03NAMEPICX(10).
03NUMPIC9(06).
03CORUSE-SCORE.
05CORUSE-1PIC9(03).
05CORUSE-2PIC9(03).
05CORUSE-3PIC9(03).
2.工作存储节
包含程序所需的临时结果和初始化静态数据的数据定义。
WORKING-STORAGESECTION.
77XPICS99VALUE-21.
01APIC9(08).
01B.
03B1PICX(04).
03B2PICX(02).
03B3PICX(02).
3.连接节
本节只用于子程序,包含调用程序传递的数据(即参数)。
LINKAGESECTION.
01LCMIN.
COPYRCI001.
01LCMOT.
COPYRCJ001.
4.通信节
通信节描述作为程序间接口的数据和消息控制系统,用以实现与通信设备相关的消息分析的COBOL方法。
属过时部分,很少使用。
5.报表节
报表节描述实现COBOL报告编写工具的系统所需的数据。
REPORTSECTION.
RDEMPLOYEE-REPORT
PAGELIMIT60LINES
HEADING1
FOOTING58
FIRSTDETAIL3.
二.COBOL数据的类型及层次
(一)数据类型
(1)numeric(数字)
(2)numeric-edited(数字编辑)
(3)alphabetic(字母)
(4)alphanumeric(字母数字)
(5)alphanumeric-edited(字母数字编辑)
所有数据类型缺省作为字符串存放在内存中,唯一可以用不同方式存储的数据类别是数字型数据(通过USAGE子句)。
对数字型数据制订不同方式存储,提高计算效率。
(二)数据的层次和层号
COBOL中把有从属关系的数据用层次关系来描述。
数据的层次结构是:
记录—组合项—基本项。
层次规定如下:
(1)用来描述数据的层次结构的层号从01开始,到49结束,即可用的层号为01~49。
(2)从属项的层号比其上属项的层号高。
(3)如果几个数据项都从属于同一组合项但互不从属,则这几个数据项应具有相同的层号。
(4)77层项目用于某个组的数据项,如程序中的临时变量。
(5)66层和88层是特殊层。
88层是对特殊数据项目条件名保留的。
(在讲过程部的条件语句时再详细介绍。
)66层是用于更明现有数据项或数据项组。
(讲RENAMES语句时再介绍。
)
(三)限定数据
(四)FILLER关键字
需要定义部分记录,但这部分在程序中永远不会用到,则可用保留字FILLER占有这个记录部分的位置。
举例:
一个打印用的记录行,有固定的空格时。
如果组项目不需按名称引用,则可以用FILLER关键字作为数据名,不用生成组名,但FILLER组名中定义的每个数据项应当唯一。
三.数据部用子句
(一)PIC子句
PIC是PICTURE的缩写,PIC子句用来描述每一个基本数据项,定义基本项目的具体长度、格式和数据类型。
01A.
03A1PIC9999.
03A2PICAAAA.
03A3PICXXXX.
(A)字母数据
字母数据限于字母表中使用的字符和空格符,用A描述符表示,每个字符用一个A表示。
01XPICA(4).
MOVE‘ABC’TOX.
(B)字符数据(字母数字)
字符数据可以包含计算机字符集中的任何字符。
字符数据项目的格式字符串可用用A、X、9表示,至少要包含一个X,是非数值类型的,不能用于运算。
01XPICX(4).
01YPICX(8).
01ZPICA(5)X9
(2).
MOVE’BOOK’TOX
MOVE’1234’TOX
MOVE’COBOL-85’TOY
MOVE’COBOL-85’TOZ
(C)字符编辑数据(字母数字)
要把字符数据格式化成特定形式,则可以用字符编辑数据。
字符编辑数据用特定字符表示格式。
字符编辑数据项目的格式字符串可用A、X、9、B、0和/表示,至少要有一个A或X和一个B(空格)或0(0)或/(斜杠)。
01EDITED-DATEPICTUREIS99/XXX/9999.
MOVE’05May1909’TOEDITED-DATE
则EDITED-DATE的值为‘05/May/1909’
(D)数字数据
数字数据由数字组成,包括其隐含的小数点和操作符号,表示的是实际数字值,可用于数据运算。
数字数据只能包含字符9,V,S和P的组合,至少要有一个9,最多18个9,至少一个V和S。
1.“9”描述符
表示数字存放位置,不能放入空格,不能表示小数和负数。
算进项目长度中。
描述数值内存中表示长度数值范围
01XPIC99912312330~999
01YPIC9(4)4567456740~9999
01ZPIC9912.34122
01TPIC99-12.34122
2.“V”描述符
指出在数据中隐含的小数点的位置,不占内存,不算进项目长度中。
运算时按隐含的小数点位置对准进行运算。
显示时只显示内存中的内容,不显示小数点。
不包含V的项目假设的小数点位于最右边。
描述数值内存中表示长度数值范围
01XPIC99V99.87.5875040.00~99.99
01YPIC9(3)V9
(2).7817810050.000~999.99
01ZPICV9991.2342343
01TPIC999V1231233
3.“P”描述符
表示数据项的比例因子,不占内存,不算进项目长度中。
当数值很大,前面或后面若干位为0,为了节省内存可以用“P”描述符。
P只能出现在开头或末尾,而不能同时在两处出现。
显示时只显示内存中实际存放的数字而不显示隐含的P(即0)。
描述数值内存中表示长度数值范围
01XPIC9P(4).10000111~9*10000
01YPICPPP99.0.000232320.00001~0.00099
4.“S”描述符
表示一个带符号的数,符号不算如项目长度中,除非包括SIGNISSEPARATE从句。
如有S则必须是最左边一个描述符。
如无S则总是表示为正值。
描述数值内存中表示长度数值范围
01XPICS9(3)V9
(2)126.89126895-999.99~999.99
01YPICS9(3)V9
(2)-1126.897126895
(E)数字编辑数据
为了使输出数据更易读,可以定义数字编辑数据。
数字编辑数据可以用于显示数字,但所有计算中只能用数字数据。
数字编辑数据项目的格式字符串只能包含字符9、Z、B、0、/、P、V、,、。
、*、+、-、CR、DB的组合。
它必须包含1~18个9字符,包含至少一个除9、P、V以外的字符。
1.“.”描述符
表示插入小数点的位置,只能在格式字符串中使用一次,不能与V和P同时使用。
01WPIC9(3).9
(2).
01VPIC9(3)V9
(2).
MOVE123.45TOV
MOVEVTOW
错误:
01WPICS9(3).9
(2).
2.“,”描述符
表示插入逗号的位置,尽管它通常作千位分隔符,但也可以插入格式字符串其他地方。
01WPIC999,999.99.
MOVE123456.78TOW
输出表示:
123,456.78
3.“0”描述符
表示插入’0’。
4.“B”描述符
表示插入空格。
01WPIC9(3).
01VPICB9(3)B.
MOVE123TOW.
MOVEWTOV.
5.“+”或“-”描述符
表示在输出的数值前(或后)加正号或负号。
当用“+”时,不论数值为正或负一律加符号。
当用“-”时,当数值为正时,数值前空一格,数值为负时,加一负号。
01XPICS99.
01YPIC+99.
01ZPIC-99.
01UPIC99+.
01VPIC99-.
6.插入“$”
01APIC$999.99.
01BPIC+$999.99.
01CPIC-$999.99.
7.浮点插入形式(浮动插入正负号和“$”)
“$”,“+”,“-”的位置是浮动的,能够使符号紧挨着数字之前输出。
在编辑型数据的描述中,指定浮动插入的字符个数应足够,以免数据被截断。
浮动字符前不能再出现其它符号,即浮动字符应为第一个描述字符。
01A1PICS9(3)V99.
01A2PIC++++.99.
01A3PIC$$$$.99.
01A4PIC++++.++.
01A5PIC$$$$.$$.
错误:
01A1PIC+$$.99.
8.零抑制格式(取消高位零,用“Z”和“*”描述符)
01A1PICS9(3)V99.
01A2PICZZZZ.99.
01A3PIC****.99.
(1)不能同时用Z浮动和+,-,$浮动
错误:
ZZ$$9.99或++ZZ.99
(2)单个的+,-,$可以与Z或*连用
01A1PIC+ZZZ.99.
01A2PIC-*(3).99.
01A3PIC$ZZZ.99.
(3)如果使“Z”或“*”对应与所有的数字字符,当数值为0时,则所用数字位全部由空格或*代替。
小数点位置上,由空格代替(用Z时),或保留“.”(用*时)。
01A1PICZZZ.ZZ.
01A2PIC***.**.
(4)可与“,”连用
01A1PICZ,ZZZ.99.
9.插入“DB”和“CR”字符
DB(DEBIT,借方)和CR(CREDIT,贷方)只能用作固定插入,而且只作最后一个描述符号。
当数值为负时,在编辑型数据项中最后两个字节中置DB或CR,数值为正时,此两字节留空格。
01A1PIC$9(3).99DB.
01A2PIC$999.99CR.
10.PIC子句小结
描述字符含义
9表示一个数字位置
A表示一个字母位置
X表示一个字符位置
V表示隐含的小数点位置
S表示数值数据带符号
P表示十进比例换算
$插入货币号
.插入小数点位置
,插入逗号位置
+一律加符号
-对负数加负号,对正数前留一空格
Z取消高位零,用空格代替
*取消高位零,用*代替
B插入空格
0插入零
DB(借方)数据为负时,在数据后面插入DB,为正时,空两格
CR(贷方)数据为负时,在数据后面插入CR,为正时,空两格
(二)REDEFINES子句
REDEFINES子句可以用不同数据描述同一计算机内存,适用于基本数据项和组数据项。
层号数据名1REDEFINES数据名2
02A.
03A1PIC9(4).
03A2PICX(6).
03A3PICX(4).
02BREDEFINESA.
03B1PICX(5).
03B2PIC9(6).
03B3PIC99V9.
02CREDEFINESA.
03C1PICX(5).
03C2PICX(4).
03C3PICX(5).
规则:
(1)数据名2与数据名1的层号必须相同。
内存中的值为数据名1和数据名2共享。
(2)用REDEFINES子句的描述体应紧跟在被重新定义的数据项的描述之后,中间不能插入其它项的说明。
当进行多次重定义,必须紧跟出现,而且要求使用最初定义的数据名。
(3)不能用于文件节或报表节的01层,可用于工作单元节的01层。
(4)用REDEFINES子句可以改变数据的结构,REDEFINES从句定义的区域长度应小于等于原区域长度。
(5)REDEFINES子句应在其它子句之前。
(6)使用REDEFINES子句的数据项不能使用VALUE子句赋初值。
(7)数据名2不能包含OCCURS子句。
03APICX(8)VALUE’ABCDEFGH’.
03BREDEFINESA.
05B1PICX(4).
05B2PICX(4).
(三)USAGE子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 01 Cobol 基础知识 讲义