COBOL语言总结.docx
- 文档编号:7621478
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:31
- 大小:279.75KB
COBOL语言总结.docx
《COBOL语言总结.docx》由会员分享,可在线阅读,更多相关《COBOL语言总结.docx(31页珍藏版)》请在冰豆网上搜索。
COBOL语言总结
COBOL语言概述
一.COBOL程序的结构
1.部
IDENTIFICATIONDIVISION标识部
ENVIRONMENTDIVISION环境部
DATADIVISION数据部
PROCEDUREDIVISION过程部
2.节(SECTION)和段(PARAGRAPH)
(1)部-节-段
(2)标识部下面不设节,直接设段
(3)过程部可以设节,下面再设段,也可以直接设段
3.句子、语句和子句
每一段由若干句子(Sentence)组成,一个句子以句号加上一个以上的空格来结束。
句子由语句(Statement)组成。
语句中又可以包含若干子句(clause),每一个子句也有一个动词(但这个动词往往是可以省略的),它指定某一方面的特定功能。
二.COBOL源程序的书写格式
1.1-6列:
标号区
2.第7列:
续行标志区(“-”为续行,“*”为注解)
3.8-11列:
A区(部头,节头,段头,层号01、77,文件描述符FD等)
4.12-72列:
B区(正文)
5.73-80列:
注释区
三.COBOL字符
数字0-9,大写字母A-Z,小写字母a-z,
专用字符15个{+-*/=,.;‘()<>$空格}
四.常量
1.数值常量
(1)小数点不能多于一个,而且不能出现在常数最右边。
(2)数值常量的长度不能超过18位数字。
(3)至少要有一个数字,不能有多于一个符号。
(4)数字间不能有空格,空格是分界符。
2.非数值常量
(1)用’’把字符串包起来
(2)假如要把’’放到非数值常量中,用QUOTE保留字,
如MOVEQUOTE‘CHINA’QUOTETOA
(3)长度不应超过120个字符。
3.表意常量
表意常量
所表示的值
ZERO/ZEROS/ZEROES
表示一个或多个零字符
SPACE/SPACES
表示一个或多个空格字符
HIGH-VALUE/HIGH-VALUES
表示一个或多个具有“最高值”的字符(每个字符的二进制表示为11111111)
LOW-VALUE/LOW-VALUES
表示一个或多个具有“最小值”的字符(每个字符的二进制表示为00000000)
QUOTE/QUOTES
表示一个或多个引号字符
ALL常量
表示由一个或多个该常量组成的字符串
五.COBOL的数据关系
过程部初步
一.输入输出语句
1.ACCEPT(接收语句):
直接从中断键盘或系统指定的输入设备上输入少量的数据。
语法:
ACCEPT标识符[FROM助忆名]
2.READ(读语句):
从外部文件上读入数据输到程序中的数据项中。
语法:
READ文件名RECORD[INTO标识符][;ATEND执行语句]
3.WRITE(写语句):
将内存区中的数据输出到外部设备
语法:
WRITE记录名[FROM标识符1][BEFOREADVANCING标识符2/整数LINE/LINES]
AFTER助忆名/PAEG
4.OPEN(打开语句):
程序若要读和写文件,先要把文件打开
语法:
OPENINPUT/OUPUT文件名1[,文件名2……]
5.CLOSE(关闭语句):
关闭文件。
语法:
CLOSE文件名1[,文件名2……]
二.算术运算语句
1.ADD(加法语句)
举例:
ADDATOBA+BB
ADD15TOC15+CC
ADDA,BTOCA+B+CC
ADD15,25TOC15+25+CC
ADDA,BGIVINGCA+B--C
ADD15,25GIVINGT15+25T
ADDA,BTOC,DA+B+CC,A+B+DD
2.SUBTRACT(减法语句)
举例:
SUBTRACTBFROMAA-BA
SUBTRACTB,CFROMAA-B-CA
SUBTRACTB,CFROMA,TA-B-CA,T-B-CT
SUBTRACTB,CFROMAGIVINGXA-B-CX
3.MULTIPLY(乘法语句)
举例:
MULTIPLYABYBA*BB
MULTIPLY0.5BYB0.5*BB
MULTIPLYABYBGIVINGCA*BC
MULTIPLY1.5BY3GIVINGC,A1.5*3C,1.5*3A
MULTIPLYABYB,CA*BB,A*CC
4.DIVIDE(除法语句)
举例:
DIVIDEAINTOBB/AB
DIVIDEAINTOBGIVINGCB/AC
DIVIDEABYBGIVINGCA/BC
5.COMPUTE(计算语句)
语法:
COMPUTE标识符1[,标识符2]……=算术表达式
举例:
COMPUTET=(A+B)*C/D
注意:
(1)所以运算符两侧应留一空格
(2)括号外侧应留空格,内侧可不要留空格
三.MOVE(传送语句)
语法:
MOVE标识符1/常量1TO标识符2[,标识符3]……
四.GOTO(转移语句)
语法:
(1)GOTO过程名
(2)GOTO过程名1[,过程名2]……过程名n,DEPENDINGON标识符
五.IF(条件语句)
1.关系运算符
COBOL关系运算符
意义
ISGREATERTHAN
IS>THAN
大于
ISLESSTHAN
IS 小于 ISEQUALTO IS=TO 等于 NOTGREATERTHAN NOT> 不大于 NOTLESSTHAN NOT< 不小于 NOTEQUALTO NOT= 不等于 2.IF语句的两种形式 (1)IF条件语句组 (2)IF条件语句组1ELSE语句组2 3.IF语句的一般格式 IF语句组1/NEXTSENTENCE[ELSE语句组2/NEXTSENTENCE] 六.STOP(停止语句) 语法: STOPRUN/常量 标识部和环境部 一.标识部 1.必写部分 IDENTIFICATIONDIVISION PROGRAM-ID.程序名. 2.任选部分 [AUTHOR作者姓名.] [INSTALLATION.计算机设置的场所.] [DATE-WRITTEN.源程序编写的日期.] [DATE-COMPILED.源程序编译的日期.] [SECURITY.保密程度.] 二.环境部 1.环境部的一般形式 ENVIRONMENTDIVISION.(环境部) CONFIGURATIONSECTION.(配置节) SOURCE-COMPUTER.源计算机名 OBJECT-COMPUTER.目标计算机名 [SPECIAL-NAMES.专用名描述项] [INPUT-OUTPUTSECTION.(输入输出节) FILE-CONTROL.{文件描述体}…… [I-O-CONTROL.输入输出控制描述体]] 2.配置节(CONFIGURATIONSECTION) (1)源计算机段和目标计算机段的一般格式 SOURCE-COMPUTER. OBJECT-COMPUTER. [MEMORYSIZEIS整数{WORDS/CHARACTERS/MODULES}] (2)专用名段 格式: SPECIAL-NAMES. [DECIMAL-POINTISCOMMA.] [CURRENCYSIGNIS非数值常量.] [专用名IS助记名.] 3.输入输出节(分为输入输出控制段与文件控制段) 文件控制段 格式: INPUT-OUTPUTSECTION.(输入输出节) FILE-CONTROL.(文件控制段) SELECT文件名ASSIGNTO外部文件名. 说明: SELECT的三种用法 (1) 在SELECT子句的“ASSIGNTO”的后面写上磁盘上实际的文件名。 (2) 在SELECT子句中只指出外部设备名。 (3) 在一些中、大型计算机系统,在SELECT子句中用该系统指定的逻辑名作为外部文件名,然后用作业控制语句将该逻辑名与实际的设备和文件相联系。 数据部 (一) 一.概述 1.数据有两种: 孤立的数据项,组合的数据项 2.数据的层次与层号 (1)数据的层次结构: 记录组合项初等项 (2)层次的规定如下: 用来描述数据层次结构的层号从01开始,到49。 记录的最高层次定为01号。 层号小的组合项包含层号大的数据项(组合项或初等项)。 一个层号为K的组合项包括它下面所有层号比它大的组合项和初等项,直到遇到层号小于K或等于K的层次为止。 3.数据部的结构 (1)文件节(FILESECTION) 用来描述程序中用到的输入文件和输出文件及其记录中各数据项的属性。 (2)工作单元节(WORKING-STORAGESECTION) 用来描述程序中用到的数据项。 (3)联接节(LINKAGESECTION) 用来描述与调用程序间发生数据传递的数据项。 (4)报表节(REPORTSECTION) 为了完成报表编制功能,此节用来规定欲输出的报表的“体裁“,设计各报表栏的打印形式和方法等。 二.文件节 1.文件描述 格式: FD文件名LABEL{RECORDIS/RECORDSARE}{STANDARD/OMITTED}[DATA{RECORDIS/RECORDSARE}数据名] 2.记录描述 记录描述体由01层号开头,后跟记录名。 如果记录下面不再分项,即记录本身就是一个初等项,则这种描述体最简单。 三.字型子句(PIC子句) 1.数值型数据的描述 (1)“9”描述符: 表示在该位置上可以放入一个0-9之间的数字 举例: 02XPIC9999. 02YPIC9(5). (2)“V”描述符: 支持在数值型数据结构中隐含的小数点位置 举例: 03MPIC999V999. (3)“P”描述符: 对低位上有若干个零的数,可以用该描述符。 举例: 01APIC9P(9).表示10的9次方 01BPICPPPP99.表示0.000023 (4)“S”描述符: 如果想在数据项中放入一个带符号的数,可以用该描述符。 对于类似PICS99的数据项,系统在内存中该数据项的最后一个字节中,放入一个标记,表示此数为负。 二.字母型数据的描述 “A”描述符: 这种类型的数据项中只能放字母或空格 三.字符型数据的描述 (1)字符型数据的规定 概念: 由任意的COBOL字符组成的数据,称字符型数据。 说明: I.字符型数据可以用X描述符来描述,也可以用9和A描述符来描述。 II.字母型数据可以用A来描述,也可以用X。 III.字符型数据中可以放数字。 四.编辑型描述符 1.插入小数点“.”,用“.”描述符。 2.插入逗号“,”作分位号,用“,”描述符。 3.插入零,用“0”描述符。 4.插入空格,用“B”描述符。 5.插入正负号,用“+”或“-”描述符。 6.插入“$” (1)加到数字前。 (2)在数字前加正负号和$。 7.浮动插入正负号和“$” 8.取消高位零,用“Z”和“*”描述符。 9.插入“DB“和“CR”字符: 此两个描述符只能用作固定插入,而且只作最后一个描述符号。 当数值为正时,此两次留两个空格;为负时,在编辑型数据项中最后两个字节中置DB或CR。 五.PIC子句小结 1.格式: PICTURE/PICIS描述字符串 2.每一种类型数据可以使用的描述字符如下: 数据类型 在PIC子句中允许使用的描述字符 数值数据项 9VSP 字母数据项 A 字符数据项 9AX 编辑数值数据项 9PV.,BZ+-$*0CRDB 编辑字符数据项 AX9B0 3.描述字符的含义 描述字符 含义 9 表示一个数字的位置 A 表示一个字母的位置 X 表示一个字符的位置 V 表示隐含小数点的位置 S 表示数值数据带符号 P 表示十进制比例换算,即指明落在数据域外的十进制小数点位置 $ 插入货币号位置 . 插入小数点位置 插入逗号的位置 + 一律加符号 - 对负数加负号,对正数前留一空格 Z 取消高位零,以代空格 * 取消高位零,代以* B 插入空格的位置 0 插入零的位置 DB(借方) 数据为负时,在数据后面出现DB,数据为正时,数据后空两格 CR(贷方) 数据为负时,在数据后面出现CR,数据为正时,数据后空两格 四.工作单元节(WORKING-STORAGESECTION) 1.工作单元节的作用 程序中用的数据项分两部分: 一部分是属于输入或输出文件的,另一部分是非输入或 输出的数据。 在工作单元节中描述的数据项也有两种形式: 一种是孤立的数据项,它们是初等项。 一种是组合项。 COBOL规定,孤立的数据项的描述体以层号77开头,组合项描述体以01到 49之间的一个数作层号。 在次序上常先写77层,再写01-49层。 2.赋初值子句(VALUE子句) 举例: 77APIC99VALUEIS0. 77TPICX(9)VALUE‘fogshadow’. 说明: 只有对工作单元节中的数据项可以赋初值。 过程部之二 一.传送语句(MOVE语句)的较高技巧 1.各种类型数据间的传送 (1)同类型数据间的传送 (2)编辑传送。 注意: 传送的方向必须是由数值型数据传送给编辑型数据,而不能由编辑型数据传送 给数值型数据。 (3)不同类型数据间的传送规则。 说明: Y为允许传送,N为不允许,Z为在某些情况下是正确的 横-接收项 竖-发送项 数值型 数值编辑型 字母型 字符型 字符编辑型 组合项 整数 非整数 数值型 整数 Y Y Y Y Y Y Y 非整数 Y Y Y N N N Y 数值编辑型 N N N N Y Y Y 字母型 N N N Y Y Y Y 字符型 Z Z Z Z Y Y Y 编辑字符型 N N N N Y Y Y 数值常量 Y Y Y N N N Y 非数值常量 N N N Y Y Y Y ZERO Y Y Y N Y Y Y SPACE N N N Y Y Y Y 组合项 Z Z Z Z Y Y Y 2.组合项的传送 (1)发送项和接收项都是组合项,而且其结构和描述均相同,则可看作将各初等项一一对应传送。 (2)如发送项与接收项长度相同,但数据结构形式不同,则将发送项的内容原样不变地自左而右顺序地传送到接收项。 3.对应传送(带CORRESPONDING子句的MOVE语句) (1)数据名的受限与受限名的传送 数据名和限定符之间用OF或IN来连接。 举例: MOVA1OFAOFSUMTOT1. (2)用CORRESPONDING子句的传送——对应传送(同名传送) 作用: 把一个组合项中若干项传送给另一组合项中同名的项。 格式: MOVECORRESPONDING/CORR标识符1TO标识符2 二.算术运算语句的较高技巧 1.四舍五入处理(ROUNDED子句) 作用: 按照数据项的描述要求对多余位截断,然后对被截断的后一位数进行四舍五入处理。 举例: ADDA,BTOCROUNDED A+B+C值 C描述 有无ROUNDED C内容 186.7851 999 有 187 186.7851 999V9 有 186.8 186.7851 999V99 有 186.79 186.7851 999V999 有 186.785 如果计算结果有多个,则应该分别说明哪一个接收项要进行舍入处理,ROUNDED应写在有关的接收项(结果数据项)的数据名后面,如 ADDA,B,CTOD,E,FROUNDED,GROUNDED,H 2.长度溢出处理 当计算结果的整数部分的长度如果比结果数据项描述所规定的整数部分长,则发生长度溢出,结果的高位部分被截断。 ONSIZEERROR子句提供“溢出”处理。 即当发生溢出错误的时候,按程序设计者事先指定的操作处理。 举例: MULTIPLYABYBGIVINGC ONSIZEERRORDISPLAY‘SIZEERROR‘ STOPRUN. 3.对应项间的运算(带CORRESPONDING子句的算术运算语句) 格式: ADDCORRESPONDING/CORR标识符1TO标识符2[ROUNDED] [;ONSIZEERROR强制语句] SUBTRACTCORRESPONDING/CORR标识符1TO标识符2[ROUNDED] [;ONSIZEERROR强制语句] 4.除法语句中的余数子句(REMAINDER子句) 举例: DIVIDE1.5INTO7GIVINGCREMAINDERD. 三.IF语句的高级技巧 1.IF语句的嵌套 举例: (注意IF与ELSE的一一配对) IFA=B MOVEBTOT IFA=C MOVECTOR IFX SUBTRACTXFROMY IFN=M IFP=Q DISPLAYP,Q ELSENEXTSENTENCE ELSENEXTSENTENCE ELSENEXTSENTENCE ELSENEXTSENTENCE ELSENEXTSENTENCE 2.关系表达式条件 以下为关系条件的比较方式,其中,Y表示作为数值型比较,N表示作为非数值型(即字符型比较),Z表示不能比较。 横-客体 竖-主体 数值型 数值常量 非数值常量 字母型 字符型 组合项 数值型 Y Y N N N N 数值常量 Y Z Z N N N 非数值常量 N Z Z N N 字母型 N N N N N N 字符型 N N N N N N 组合项 N N N N N N 3.符号条件 格式: 数据名/数值表达式IS[NOT]POSITIVE/NEGATIVE/ZERO 举例: (1)IFXISPOSITIVE与IFX>0等价 (2)IFXISNEGATIVE与IFX<0等价 (3)IFXISZERO与IFX=0等价 4.类型条件 格式: 标识符IS[NOT]NUMERIC/ALPHABETIC 其中,NUMERIC表示数值类型,ALPHABETIC表示字母类型。 5.条件名条件 作用: 用来代替一系列繁杂的IF-ELSE语句。 格式: 88条件名VALUEIS/ARE常量1[THROUGH/THRU常量2] [常量3[[THROUGH/THRU常量4]]…… 举例: 首先在数据部说明 77X(条件变量)PIC9(6). 88X1VALUE0THRU99. 88X2VALUE100THRU999. 88X3VALUE1000THRU4999. 88X4VALUE5000THRU100000. 经过上面的说明后,可以在过程部中直接使用条件名条件。 IFX1MOVE0.03TOR.(在0<=X<100时,R=0.03) IFX2MOVE0.04TOR.(在100<=X<1000时,R=0.04) IFX3MOVE0.05TOR.(在1000<=X<5000时,R=0.05) IFX4MOVE0.06TOR.(在5000<=X<=100000时,R=0.06) 6.复合条件 逻辑运算符有: AND、OR、NOT 运算次序是: NOTANDOR 五.字符串连接语句(STRING语句) 六.字符串分解语句(UNSTRING语句) 七.检测语句(INSPECT语句) 八.转换语句(TRANSFORM语句) 过程部之三 —执行语句(PERFORM语句) 一.执行语句的作用 类似于子程序 二.执行语句的最基本形式 格式: PERFORM过程名1[THROUGH/THRU过程名2] 三.执行语句的使用规则 1.PERFORM语句的嵌套 2.在PERFORM语句所执行的语句序列中,可以含有转移语句,可以使流程转到语句序列之外,但一般应该转回到此语句序列,以便能最后能执行此语句序列的最后一个句子。 四.使用PERFORM语句实现循环 格式: PERFORM过程名1[THROUGH/THRU过程名2]整数/标识符TIMES 说明: 1.标识符应为整数数据项 2.如果此标识符的值在执行语句序列中有变化,不会影响执行次数。 即以它开始时候的值来决定执行的次数。 五.执行语句的较复杂的形式 1.格式: PERFORM过程名1[THROUGH/THRU过程名2]UNTIL条件 作用: 反复执行指定的语句序列,直到给定的条件满足为止。 2.格式: PERFORM过程1[THROUGH/THRU过程名2] VARYING标识符1FROM常数1/标识符2BY常数2/标识符3UNTIL条件 举例: PERFORMT1THRUT2VARYINGXFROMA BYBUNTILX>5 其作用是执行T1到T2语句序列,X是“循环变量”,是整型数据项。 A为初值,B为步长,它们都是整数或整数数据项。 六.执行语句的多重循环形式 格式: PERFORM过程名1[THROUGH/THRU]过程名2 [VARYING参数1FROM初值1BY步长1UNTIL条件1] [AFTER参数2FROM初值2BY步长2UNTIL条件2] [AFTER参数3FROM初值3BY步长3UNTIL条件3] 说明: 1。 最后面的循环体先执行。 2.COBOL允许用到三重循环。 七.出口语句(EXIT语句) 作用: 提供一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- COBOL 语言 总结