COBOL语言概述.docx

上传人:b****3 文档编号:6316886 上传时间:2023-05-09 格式:DOCX 页数:15 大小:28.34KB
下载 相关 举报
COBOL语言概述.docx_第1页
第1页 / 共15页
COBOL语言概述.docx_第2页
第2页 / 共15页
COBOL语言概述.docx_第3页
第3页 / 共15页
COBOL语言概述.docx_第4页
第4页 / 共15页
COBOL语言概述.docx_第5页
第5页 / 共15页
COBOL语言概述.docx_第6页
第6页 / 共15页
COBOL语言概述.docx_第7页
第7页 / 共15页
COBOL语言概述.docx_第8页
第8页 / 共15页
COBOL语言概述.docx_第9页
第9页 / 共15页
COBOL语言概述.docx_第10页
第10页 / 共15页
COBOL语言概述.docx_第11页
第11页 / 共15页
COBOL语言概述.docx_第12页
第12页 / 共15页
COBOL语言概述.docx_第13页
第13页 / 共15页
COBOL语言概述.docx_第14页
第14页 / 共15页
COBOL语言概述.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

COBOL语言概述.docx

《COBOL语言概述.docx》由会员分享,可在线阅读,更多相关《COBOL语言概述.docx(15页珍藏版)》请在冰点文库上搜索。

COBOL语言概述.docx

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个字符。

五.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+BaB

ADD15TOC15+CaC

ADDA,BTOCA+B+CaC

ADD15,25TOC15+25+CaC

ADDA,BGIVINGCA+B–C

ADD15,25GIVINGT15+25aT

ADDA,BTOC,DA+B+CaC,A+B+DaD

2.SUBTRACT(减法语句)

举例:

SUBTRACTBFROMAA-BaA

SUBTRACTB,CFROMAA-B-CaA

SUBTRACTB,CFROMA,TA-B-CaA,T-B-CaT

SUBTRACTB,CFROMAGIVINGXA-B-CaX

3.MULTIPLY(乘法语句)

举例:

MULTIPLYABYBA*BaB

MULTIPLY0.5BYB0.5*BaB

MULTIPLYABYBGIVINGCA*BaC

MULTIPLY1.5BY3GIVINGC,A1.5*3aC,1.5*3aA

MULTIPLYABYB,CA*BaB,A*CaC

4.DIVIDE(除法语句)

举例:

DIVIDEAINTOBB/AaB

DIVIDEAINTOBGIVINGCB/AaC

DIVIDEABYBGIVINGCA/BaC

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)数据的层次结构:

记录a组合项a初等项

(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为在某些情况下是正确的

横接收项

竖发送项数值型数值编辑型字母型字符型字符编辑型组合项

整数非整数

数值型整数YYYYYYY

非整数YYYNNNY

数值编辑型NNNNYYY

字母型NNNYYYY

字符型ZZZZYYY

编辑字符型NNNNYYY

数值常量YYYNNNY

非数值常量NNNYYYY

ZEROYYYNYYY

SPACENNNYYYY

组合项ZZZZYYY

2.组合项的传送

(1)发送项和接收项都是组合项,而且其结构和描述均相同,则可看作将各初等项一一对应传送。

(2)如发送项与接收项长度相同,但数据结构形式不同,则将发送项的内容原样不变地自左而右顺序地传送到接收项。

3.对应传送(带CORRESPONDING子句的MOVE语句)

(1)数据名的受限与受限名的传送

数据名和限定符之间用OF或IN来连接。

举例:

MOVeA1OFAOFSUMTOT1.

(2)用CORRESPONDING子句的传送——对应传送(同名传送)

作用:

把一个组合项中若干项传送给另一组合项中同名的项。

格式:

MOVECORRESPONDING/CORR标识符1TO标识符2

二.算术运算语句的较高技巧

1.四舍五入处理(ROUNDED子句)

作用:

按照数据项的描述要求对多余位截断,然后对被截断的后一位数进行四舍五入处理。

举例:

ADDA,BTOCROUNDED

A+B+C值C描述有无ROUNDEDC内容

186.7851999有187

186.7851999V9有186.8

186.7851999V99有186.79

186.7851999V999有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表示不能比较。

横-客体

竖-主体数值型数值常量非数值常量字母型字符型组合项

数值型YYNNNN

数值常量YZZNNN

非数值常量NZZNN

字母型NNNNNN

字符型NNNNNN

组合项NNNNNN

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

运算次序是:

NOTaANDaOR

五.字符串连接语句(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语句)

作用:

提供一个段名,被PERFORM调用的语句序列由此公共汇集点,返回到PERFORM的下一个语句去。

举例:

PERFORMATHRUB

……

A.IFX>YGOTOB

MOVEXTOT.

B.       EXIT.

八.修改语句(ALTER语句)

格式:

ALTER过程名1TO[PROCEEDTO]过程名2

[,过程名3TO[PROCEEDTO]过程名4]……

作用:

用来改变GOTO的转向点。

该语句使以过程名1,过程名3,……命名的各段中的GOTO语句的转向点分别被修改为过程名2,过程名4……。

注意,过程名1,过程名3……各段只能由一条GOTO语句单独组成。

数据部之二

-数据部的较高技巧

一.数据在计算机内的表示形式

1.字符数据在内存中的存储形式

(1)ACSII

(2)EBCDIC

2.数值型数据在内存中的存储形式

(1)外部十进制(或称扩张十进制)形式

(2)外部浮点数形式

(3)内部十进制(又称缩合十进制)形式

(4)定点二进制形式

(5)内部浮点形式

二.用法子句(USAGE子句)

作用:

可以使程序设计者自由选择数据在内存中的存放形式。

格式:

[USAGEIS]DISPLAY/COMPUTATIONAL/COMP

说明:

1。

DISPLAY表示是“显示型的用法”,表示此数据项适于显示,打印。

2.COMPUTATIONAL=COMP,表示是“计算型的用法”,适于计算。

3.如省略USAGE子句,则隐含表示为用DISPLAY形式。

三.符号子句(SIGN子句)

作用:

用来指定数值型数据描述体中运算符号的状态和位置。

格式:

[SIGNIS]LEADING/TRAILING[SEPARATECHARACTER]

说明:

1。

没有SIGN子句时,数值的符号是存放在

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2