COBOLCommonBusinessOrientedLanguage通用商业语言.docx

上传人:b****1 文档编号:13565629 上传时间:2023-06-15 格式:DOCX 页数:79 大小:65.43KB
下载 相关 举报
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第1页
第1页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第2页
第2页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第3页
第3页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第4页
第4页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第5页
第5页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第6页
第6页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第7页
第7页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第8页
第8页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第9页
第9页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第10页
第10页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第11页
第11页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第12页
第12页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第13页
第13页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第14页
第14页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第15页
第15页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第16页
第16页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第17页
第17页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第18页
第18页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第19页
第19页 / 共79页
COBOLCommonBusinessOrientedLanguage通用商业语言.docx_第20页
第20页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

COBOLCommonBusinessOrientedLanguage通用商业语言.docx

《COBOLCommonBusinessOrientedLanguage通用商业语言.docx》由会员分享,可在线阅读,更多相关《COBOLCommonBusinessOrientedLanguage通用商业语言.docx(79页珍藏版)》请在冰点文库上搜索。

COBOLCommonBusinessOrientedLanguage通用商业语言.docx

COBOLCommonBusinessOrientedLanguage通用商业语言

第一章COBOL概述

一、COBOL的语言特点:

COBOL:

CommonBusinessOrientedLanguage通用商业语言它是专门为数据管理而设计的计算机高级语言。

COBOL语言的主要特点:

1、适用于数据处理,(科学计算、数据处理、过程控制、计算机辅助设计、人工智能等)

数据处理的特点:

算术计算量多而逻辑处理少,输入输出量大;数据项之间有清晰的层次关系;大量的分类排序;对打印报表的高要求及多样化等等

2、通用性强使用是要注意它的特殊性,

COBOL有较高的标准化程序硬件集中管理不同厂家生产的计算机系统所提供的COBOL是COBOL的标准的全集或子集,设备的逻辑名可能不一样。

3、机构严谨、层次分明、比较接近于自然语言,便于初学者模仿。

二、COBOL的发展概况

1959年12月在美国提出了世界上第一个COBOL语言文本并于1960年4月由美国政府印刷局正式发表称之为COBOL—60COBOL61COBOL65

ANSI标准(美国国家标准化协会)

ANSICOBOL68->(修订扩充)-〉ANSICOBOL-74-〉ANSICOBOL-85

ISO标准(国际标准化组织)

ISOCOBOL-72->ISOCOBOL-78

三、COBOL源程序结构及书写格式

源程序示例:

例(P8)将A和B的值相加其和放在B中

源程序的结构

部(DIVISION):

标识部、环境部、数据部、过程部以部头开始以“.”和空格结束

节(SECTION):

每个节以节头作标识,以“.”和空格结束如WORKING_STORAGESECTION(工作单元节)

段(PARAGRAPH):

每个短都有一个段名,以“”和空格结束如PROGRAM__IDEXAM2

句子(SENTENCE):

用空格分开的多条语句称为句子最后以“.”和空格结束的一个语句序列

语句(STATEMENT):

一条完整的指令用于完成一定的操作

子句(CLAUSE):

用于完成某一方面的特定功能如环境部中的SELECT子句。

描述体:

在数据部中有若干个节,每个接中有若干个描述体,(每个描述体又有若干个子句构成)如数据项描述体77,文件描述体FD,记录描述体01等

注:

标识部只有段没有节,环境部既有节又有段;数据部只有节没有段;过程部中的段和节是有程序员自己定义的,如果使用了节则其后的段必须包含在此节中直到遇到下一个节为止。

书写格式COBOL的程序格式

标号区

续行标志

A区

B区(正文)

注释区

1-6列

第7列

8-11列

12-72列

73-80列

标号区:

标号不是程序的执行顺序它可写可不写写是要求按照从小到大的顺序但不一定连续标号有程序的编写者自定义。

续行区:

空格续行但插入一个空格

—绕行紧接不插入空格

*:

注释行

/:

换页打印源程序

A区:

COBOL规定:

部头、段头、节头、层号01、层号77、文件描述符FD、过程名等必须从A区开始书写(但不一定从第八列开始)其他层号也可以在A区书写

B区:

除了在A区书写的源程序内容外其他的内容都可以在B区书写

书写源程序注意事项:

(1)允许一行内书写多个语句(用空格分开)或一个语句写在几行上

(2)一个空格和多个空格作用相同

(3)相邻的两个字(保留字、自定义的名字)必须用空格分开

(4)运算符(+-*/)和等号两侧必须个留一个空格过程部中的“(”和“)”的外侧留而内侧不留空格

(5)逗号、点、分号的左边不留空格而右边留空格

四、COBOL字符集和COBOL字

1.COBOL字符集共51个不同的计算机系统可能不一样,有0-9,A-Z和15个专用字符

2.COBOL的字:

COBOL保留字:

在COBOL中作专门用途如ADD,SELECT,ZERO.SPACE

用户字:

如变量名、助记名、过程名、条件名等等

系统名:

由编译系统定义的字,如计算机名。

外部设备名等等

五、数据名和常量

1、数据名:

在其它语言中成为变量名

数据名不能去保留字,数据名中不能出现空格,最好去有意义的英文字

2、常量

(1)数值常量:

由正负号、小数点、0-9组成,但小数点不可以出现在常量的最右边,即整数是不加小数点因小数点在COBOL中有特殊用途。

数据常量的长度不可以超过18个数字(不包含小书店和符号)。

数据之间不能有空格。

(2)非数值常量:

用引号括起的字符串,使用单引号还是双引号又具体的计算机系统规定,非数值常量的长度不能超过120个字符(又具体的计算机系统确定)。

例:

MOVE‘ABC’TOA

MOVEQUOTE‘ABC’QUOTETOB

(3):

表意常量:

P20页表格

表意常量的说明:

1ZERO即可作为字符型常量也可作为表意型常量

2单数形式和复数形式等价

3表意常量与其他数据项连用是其他数据串长度与它的联用的数据项长度相同。

4单独使用是字符串长度为1。

如:

DISPLAYZERO;显示一个0

六:

COBOL所处理的数据的特点:

层次概念

工资统计

GZTJ

 

夜班补助

YBBZ

托儿费

TEF

水电费

SDF

实发工资

SFGZ

扣除

KC

收入

SR

职工名

ZGM

病事假

BSJ

房租费

FZF

附加工资

FJFZ

基本工资

JBGZ

01GZTJ

02ZGM

02SR

04JBGZ

04FJGZ

04YBBZ

02KC

04BSJ

04FZF

04SDF

04TEF

注意:

具有一定层次关系的一组数据项的最大集合。

文件:

文件是建立在外部介质上的纪录的集合任何一种外部设备的介质都可以作为文件的载体(如:

卡片文件、磁带文件、磁盘文件等等)

七:

源程序输入计算机的方式

(一)键盘输入:

先按一下TAB键从第八列开始,输入完一列按回车。

用于微机。

(二)卡片输入:

用于大、中型机算机上通过读卡机以批处理方式运行COBOL程序。

(三)软盘磁带输入。

一般的,在大中型计算机系统中,COBOL源程序一般用读卡机,也可以用键盘或其他的外设输入;在微型机算机系统中多用键盘输入,如果配有纸带输入机也可以用纸带输入。

第二章标识部和设备部

一、标识部:

程序编译时不生成任何目标代码。

部头和段头都在A区开始书写。

部头:

IDENTIFICATIONDIVISION

PROGRAM_ID程序名.

[AUTHOR.程序员名.]

段头:

[INSTALLATION.计算机设置的场所.]

[DATE_WRITTEN.源程序编写的日期.]

[DATE_COMPLLED.源程序编译的日期.]

[SECURITY.保密程序]

二、环境部(设备部):

COBOL源程序中唯一与硬件有关的部分。

可理解成源程序运行的环境指硬件环境。

ENVIRONMENTDIVISION.

[CONFIGURATIONSECTION.]

[SOURCE_COMPUTER.源计算机名.]

[OBJECT_COMPUTER.目标计算机名.]

[SPECIAL_NAMES.专用计算机名.];专用名段

[DECIMAL_POINTISCOMMA.]

[CURRENCYSIGNIS非数值常量.]

[专用名IS助记名.]

[INPUT_OUTPUTSECTION.];输入输出节

FILE_CONTROL.;文件控制段

SELECT文件名ASSIGNTO设备名.

SELECT文件名ASSIGNTO设备名.

[I-O-CONTROL.输入输出控制描述体.];输入输出控制段

用来指定目标程序运行时,几个文件共用一个内存区以节省内存。

(不做要求)

说明:

助记名:

用户自己定义的名字。

专用名:

系统规定的一些设备名或功能名或符号。

设备名是指系统规定的,各机器规定不同,使用适应查说明书。

系统名是由编译系统定义的字,如:

计算机名和外部设备名等等。

常用专用名:

打印机:

PRINTER

控制台:

CONSOLE

宽行打印机:

SYSOUT

读卡机:

SYSIN

磁带机:

TAPE

磁盘机:

DISK

注意:

SELECT子句应从B区开始书写。

例:

IDENTIFICATIONDIVISION.

PROGRAM_ID.EX1.

ENVIRONMENTDIVISION.

CONFIGURATIONSELECTION.

SOURCE_COMPUTER.FACOM_MISOF.

OBJECT_COMPUTER.FACOM_MISOF.

SPECIAL_NAMES.

CURRENCYIS‘Y’.

INPUT_OUTPUTSECTION.

FILE_CONTROL.

SELECTA1ASSIGNTOPRINTER.

SELECTA2ASSIGN

第三章过程部之一(最基本语句)

四.分支语句

(一)无条件转向语句Goto过程名

注:

过程是指过程部中的节名或段名,它代表一段过程。

(二)开关语句

GoTo过程名1[,过成名2]…..过程名nDEPENDINGON标记名

注:

表示符的值在1≤且≤n否则执行此语句是出错

例1:

银行有几种不同的利率(6%,%5,%4,2.5%)对不同的存储户根据其特点确定一个利率并计算利息(p45:

源程序略)

(三)条件语句(IF)

1.IF语句的基本形式:

格式一:

IF条件语句(称为语句组或句子较合适,以下类同)

格式二:

IF条件语句1ELSE语句2

格式三:

IF条件

语句1语句2

ELSE

NEXTSENTENCE

NEXT SENTENCE

例1 某公司对顾客购买商品的1000件以上的给3%的优惠

IFQUANTITYISNOTLESSTHAN1000

MULTIPLY0.97BYPRICE

例2:

某公司对顾客购买商品1000件以上的给3%优惠,否则给1%的优惠

IFQUANTITY<1000

MULTIPLY0.99BYPRICE

ELSE

MULTIPLY0.97BYPRICE

例3:

IFB**2—4*A*CNOT<0

NEXTSENTENCE

ELSEDISPLAYB**2—4*A*CNOT<0

STOPRUN.

例4:

IFA>B

MOVEATOBIFA>B

ELSE<=====〉MOVEATOB

NEXTSENTENCE

2.关系比较符

数字符号

COBOR数符

>

<

=

<>

ISGREATERTHAN或>

ISLESSTHAN或<

ISEQUALTO或=

NOTGREATERTHAN或NOT>

NOTLESSTHAN或NOT<

NOTEQUALTO或NOT=

注:

比较原则对字符型数据根据计算机系统采用的字符编码(ASCⅡ码或EBCDIC码)。

流程图示

打开/关闭文件

处理:

算术运算,数据传输,编辑操作等

判断

一个过程的起点和终点

卡片的输入/输出

打印的输出

磁盘输入/输出

磁带输入/输出

连接符

 

五.文件的基本操作语句

(一)打开语句OPEN

格式:

INPUT文件名1,文件名2

OPEN

OUTPUT文件名3,文件4

例:

OPENINPUTx1,x2,x3

OPENOUTPUTY1,Y2,Y3

或OPENINPUTx1,x2,x3

OUTPUTINPUTY1,Y2,Y3

(二)关闭语句close

格式:

close文件名1,文件名2…….

例Closex1,x2,x3,Y1,Y2,Y3

(三)读语句READ

该语句是从外部数据中读一条纪录到内存的对应输入区。

每一个输入文件在内存区都有一个对应的输入记录区。

格式:

READ文件名RECODEINTO表示符,ATEND强制语句

说明:

INTO…将输入记录区的内容使送到另一个数据项中

故此时当前纪录同时存在于内存的输入纪录区和数据项两个域中。

READCARD-FILEINTOAATENDGoToA1.

READCARD-FILEATENDGOTOA1.

MOVECARD-RECORDTOT

ATEND……:

当数据文件中的最后一条纪录读出后,则下一次读语句将

转去执行ATEND后面的强制语句,所谓强制是指一定要执行的语句如:

MOVEDISPLAYSTOPRUN等而不带ELSE子句得IF不属于强制语句

注:

<1>读入一个字句后要处理完毕读下一条纪录

<2>READ语句必须作为一个句子使用即必须依句点和空格结束;

例:

数据文件的操作

1∽2列年(YEAR)

3∽4列月(MONTH)

5∽6列日(DAYY)注:

DAY是保留字

7∽10列产品代码(PRODUCT-CODE)

11∽14顾客代码(CUSTOMER-CODE)

15∽20数量(OUANTITY)

21∽26单价(UNIT-PRICE)

27∽80空白

某张卡片纪录数据如下:

8203100010000200020000200

∨∨∨∨∨∨∨

年月日产品号顾客号数量单价

(2)在环境部中对数据文件对应的数据的设备进行描述

ENVIRONMENTDIVISION环境部

INPUT-OUTPUTSECTION输入输出节

FILE-CONTROL.文件控制段

L:

SELECTCARD-FILEASSIGNTOSYSIN读卡机

<3>在数据部中对纪录进行描述

FILESELECT

FDCARD-FILELABELRECORDISOMITTED.

01CARD-RECORD(记录名)

02DATE-C.(组合项)

03YEARPIC99.

03MONTHPIC99.

03DAYYPIC99.

02PRODUCT-CODEPIC9(4).

02CUSTOMER-CODEPIC9(4).

02QUANTITYPIC9(6).

02UNIT-PRICEPIC9(6).

02FILLERPICX(54)

注:

FILLER是保留字为填充项数据名但不能单独使用可以作为纪录或者组合项的一部分一起被引用

<4>在过程部中对文件操作

OPENINPUTCARD-FILE.

READING-DATA.(段名)

READCARD-FILEATENDGOTOA1.

ADDQUANTITYTOTOTAL.

GOTOREADING-DATA

A1:

DISPLAYTOTAL

CLOSECARD-FILE.

STOPRUN.

(四).写语句WRITE

写语句数将内存中输出记录缓冲区的内容输出到对应的输出文件上

格式:

WRITE记录名FORM表示符

表示符2LINE

BEFORE(移动行数)

(先打印后移动)

ADVANCING整数LINES

(先移动后打印)

AFTER助记名

(特殊控制)

(换页)

PAGE

说明:

(10)FORM表示符表示先把内存区中的一个数据项的内容送给输出记录区,然后在输出记录区的内容

如:

WRITETFROMT1AFTER3

MOVET1TOT

WRITETAFTER3

(2)执行完WRITE语句后,需要改变输出区的内容,再执行WRITE语句

(3)在许多计算机系统的COBOR中,输出记录区的第一个字符作用“纵向走纸控制“用不输出。

01T

02FILLERPICX(走纸控制位)

02T-RECPICX(120)输出信号区(假设打印机每行可容120个字符)

(4)有些计算机系统提供一些专用名来实现特殊的输出

控制如:

重叠打印,移到本页末尾等功能。

用户可以在设备部的专用名段中定义一个助记名与此专用名相联系,来实现特殊控制,即WRITE语句中

助记名

功能

PAGE

例:

将从控制台输入三个数据,经过计算机后从打印机输出

(P65源程序略)

第三章过程部之一

一、加法语句(ADD)

格式1:

标识符1,标识符2标识符m[ROUNDED][ONSIZE

ADD……TOERROR]

常量,常量2

格式2:

标识符1标识符2,标识符3

ADD,

常量1常量2,常量3

……GIVING标识符m,标识符n……

注:

格式中的标志符,是指能唯一标志一个数据项的数据名。

例:

ADDATOB;A+B=>B

ADD15TOC;15+C=>C

ADDA,BTOC;A+B=C=>C

ADD15,25TOC;15+25+C=>C

ADDA,25GIVINGT;15+25=>T

ADDA,BTOC,D;A+B+C=>C,A+B+D=>D

ADDA,XGIVINGY,Z;A+X=>Y,A+X=>Z

若有记录如下:

例:

01A01B

02B102B2

03C03C

03D03D

则:

ADDCTOD×

ADDCOFB1TODOFB1√

ADDCOFB2TODOFB2√

(二)减法语句SUBTRACT

格式1:

标志符1,标识符2

SUBSTRACT……FROM标识符m,标识符n……

常量1,常量2

格式2:

标志符1,标识符2标识符m

SUBTRACT……FORM

常量1,常量2常量m

GIVING标识符n, 标识符p……

例;

SUBTRACTBFROMA;A-B=>A

SUBTRACTB,CFROMA;A-B-C=>A

SUBTRACTB,CFROMA,T;A-B-C=>A,T-B-C=>T

SUBTRACTB,CFROMAGIVINGX;A-B-C=>X(A的值恒不变)

(三)乘法指令MULTIPLY

标识符1

格式1:

MULTIPLY常量1BY标识符2标识符3……

标识符1标识符2

格式2:

MULTIPLY常量1BY常量2GIVING标识符3标识符4……

例:

MULTIPLYABYB;A×B=>B

MULTIPLY0.5BYB;0.5×B=>B

MULTIPLYABYBGIVINGC;A×B=>C

MULTIPLY1.5BY3GIVINGC,A;1.5×3=>C,1.5×3=>A

MULTIPLYABYB,C;A×B=>B,A×C=>C

(四)除法指令DIVIDE

标识符1

格式1:

DIVIDE常量1INTO标识符2,标识符3……

标识符1INTO标识符2

格式2:

DIVIDE常量1BY常量2

GIVIGNG标识符3,标识符4……

例:

DIVIDEAINTOB;

=>B

DIVIDEAINTOBGIVINGC;

=>C

DIVIDEABYBGIVINGC;

=>C

DIVIDEABYB;

=>B

DIVIDEABYBGIVINGC,D,E;

=>C,

=>D,

=>E

注:

进行除法运算时,若除不尽则多余位截去。

若除数为0,则引起长度溢出错误.。

例:

计算A-B+C

ADDATOC

SUBTRACTBFROMC

例2:

A*B*C

MULTIPLIYABYB

MULTIPLUYBBYC

例3:

阅读程序:

P35源程序略。

(计算语句)COMPUTER

格式:

COMPUTER{标识符号[ROUNDED]}……算术表达式[ONSIZEERROR]+、-、*、/、**单边运算符(+、-)

例:

W-

W-(A+B)/C+D

X

+X-3X**2+X-3

+C(-X+1)

B/A+C*(X+1)**2

-A

-A-(A**2)-A

A/-(B**2)

注意:

①所有运算符两侧均应留一部分空格

②括号的外侧应留空格,内侧不要留空格. 初等项、组合项

例:

阅读程序:

P38

三传送语句 标志符1

MOVETO 标志符2[,标志符3]……

常量1

数值常量、非数值常量、表意常量

例:

MOVE1285TOA

MOVEZEROTOCOUNT

MOVESPACETOBLANKFIELD

MOVE‘BOOK’TOT

MOVE‘1981/8/30’TOW、X、Y

MOVEAMOUNTTOTOTAL

说明:

①对数值型数据,按小数点对齐的原则向两边扩展,不足的补零,多佘位截断.

②对非数值型数据.按”左对齐的原则传送,”不足位补空格,多佘位截断.

例:

MOVEA(123.45)TOB(PIC999V99)

A:

1

2

3△

4

5

1

2

3△

4

5

1

2

3△

4

5

1

2

3△

4

5

1

2

3△

4

5

2

3△

4

5

3△

4

5

△4

5

B、PIC999V99

PIC99V99

PIC9V99

PICV99

例:

MOVE‘CHINA’TOB

C

H

I

N

A

C

H

I

N

C

H

B

PICA(6)

PICA(4)

PICA

(2)

③另外MOVE可以将一个组合项内容传送给一个初等项,或一个初等项传送给一个组合项或一个组合项内容传给另一个组合项.

初等项初等项(又称基本项)

组合项目组合项

二、输入输出语句

(一)接收语句ACCEPT

格式:

ACCEPT标志符[FROM助记名]

省略[]表示系统隐含指定的设备上读入一个数据。

不省略时表示从助名代表的外部设备上输入数据。

助记名代表哪个逻辑设备名。

需要在环境部的专用名段中指定。

例:

ENVIRONMENTDIVISION.

CONHGURATIONSECTION.

SPECIAL-NAMES.

CONSOLEISABC

ACCEPTAFROMABC

注:

①若标识符为组合项,则输入时应一次输入该组合项中各个初等项的值.

②接收数

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

当前位置:首页 > PPT模板 > 可爱清新

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

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