01Cobol基础知识讲义_第1页
01Cobol基础知识讲义_第2页
01Cobol基础知识讲义_第3页
01Cobol基础知识讲义_第4页
01Cobol基础知识讲义_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 关于COBOL的初步知识一. COBOL语言的特点 COBOL是Common Business-Oriented Language(公用面向商业的语言)的缩写,主要供数据处理、数据收集及分析之用。COBOL自60年代初开始广泛应用于计算机应用领域(商业和其他领域)。事实上,除了商业之外,各种管理工作都广泛使用COBOL,如各种统计工作,财会工作,企业计划编制,作业制度,情报检索,人事管理等。COBOL针对商业世界的使用,是真正商用应用程序开发的首选语言。1 适于数据处理领域。2 采用英语语法的高级语言,可读性、可维护性、可移植性较强。3 通用性强,标准化程度较高。4 结构严谨,层次分明

2、。5 缺点是比较繁琐。二 最简单的COBOL程序介绍例:IDENTIFICATION DIVISION.(标识部)PROGRAM-ID. EXAM1.(程序标识段)ENVIRONMENT DIVISION.(设备部)DATA DIVISION.(数据部)PROCEDURE DIVISION.(过程部)A. DISPLAY THIS IS A COBOL PROGRAM. STOP RUN.例:IDENTIFICATION DIVISION.(标识部)PROGRAM-ID. EXAM.(程序标识段)ENVIRONMENT DIVISION.(设备部)DATA DIVISION.(数据部)WORK

3、ING-STORAGE SECTION.(工作单元节)77 A PICTURE IS 9(3).(对进行描述)77 B PICTURE IS 9(3).(对进行描述)PROCEDURE DIVISION.(过程部)S. ACCEPT A.(输入值) ACCEPT B.(输入值)ADD A TO B.(A+B->B)DISPLAY A,B.(显示和值) STOP RUN. 三 COBOL程序的结构1 部每个程序都包括四个部:IDENTIFICATION DIVISION (标识部)提供程序的一般性文档说明,主要用来指定源程序名。ENVIRONMENT DIVISION (环境部)列出程序中

4、所用到的文件。程序中不需要外部文件时,环境部为空,也可以省略部标题。DATA DIVISION (数据部)程序中所用到的全部数据(包括:文件数据-用于输入输出、静态数据、参数等)都应在数据部中说明它们的类型和所占内存的情况。PROCEDURE DIVISION (过程部)包含构成程序的过程性语句,用来给出程序要执行的指令,使计算机产生相应的操作。2 节和段 标识部下只有各个段。除标识部以外,每个部下可以有若干个节(SECTION),每个节以“节头”作标识。每个节下又可包括若干段(PARAGRAPH),每个段用“段名”标识。各个段内有各种COBOL元素。3 句子,语句和子句 在过程部中,每一段由

5、若干个句子(Sentence)组成。一个句子是以英文句号来结束的。句子又由语句(Statement)组成。一个语句中又可以包含若干个子句(Clause)。 注意:部标题、节标题、段名、数据项目描述及句子后必须用英文句号结束,否则程序无法编译。4 描述体(描述款目)在数据部中有若干个节,每个节中有若干个描述体,每个描述体又有若干个子句构成。四 源程序的书写格式1 16列,为“序号区”,为6位整数序号,不是程序本身的内容。序号不是必须的,但其所占区域要保留。2 第7列,为“指示符区(续行标志区)”。连接符“-”表示本行是紧接在上一行的后面。“*”或“/”表示本行为注释行。“D”表示本行为调试行。3

6、 811列,为“A区”,部头,节头,段头,层号01,层号77以及文件描述符FD,程序结束标题等应从A区开始书写,但不一定从第8列开始写。4 1272列(现在有时厂家规定可到80列),为“B”区,过程部中的句子只能从B区开始书写。5 7380列,为“注释区”。在写程序时,应注意以下几点:1大写或小写字母均可,习惯用大写字母。2相邻的两个字之间必须留一个以上的空格。3运算符和等号左右两边必须各留一个空格。4逗号,句号,分号的左边不能留空格,而右边应有空格。五 COBOL字符和COBOL单字 COBOL字符集包括以下字符: 09, az, AZ, + - * / = , . ; ” ( ) <

7、 > $空格 : COBOL单字分三种:保留字、用户自定义字及系统名称。 COBOL单字的规则如下:1 字长为130个字符之间。2 只能由字母,数字和连字符“-”组成,第一个和最后一个字符不能用连字符。3 字中不能出现空格。4 小写字母与大写字母等价。5 不能用保留字作为用户定义字和系统名称,但用户定义字和系统名称可以用同一个单词。用户自定义字:文件、数据、标号、程序等所取的名称。系统名称:COBOL保留字,用于与操作环境通信,又COBOL厂家定义。分为:Computer name、Implementers name、Language name。保留字:有300多个。如:+、ACCEPT

8、、ADD、BEFORE、DATA。六 常量1 数值常量(数字直接数) 例: 123, +45.67, -89.652 非数值常量(非数字直接数):字符串内的引号用两个连续引号表示。 例:abcd, Expired,3 象征常量:用保留字表示某些常用常量(直接数)。例:ZERO ZEROS ZEROES SPACE SPACES HIGH-VALUE HIGH-VALUES LOW-VALUE LOW-VALUES QUOTE QUOTES ALL 常量七.处理数据的特点:层次的概念;记录和文件的概念。八 程序文本的复制与替换操作1. COPY语句COPY语句用COBOL源文本text-name

9、替换从COPY字开始到终止句号之前的内容。2. REPLACE语句 REPLACE语句将COBOL源程序某个段中的文本进行替换。替换从REPLACE语句的第一个格式开始,到REPLACE OFF 语句结束。第二章 标识部和环境部一 标识部(IDENTIFICATION DIVISION)(一)必写部分IDENTIFICATION DIVISION.PROGRAM-ID. 程序名.(二)任选部分 一般格式: AUTHOR. 作者姓名INSTALLATION. 设计这个程序的公司或部门。DATE-WRITTEN. 编写日期,可记入修订史,修改日期、原因及人员。DATE-COMPILED. 编译日期

10、SECURITY. 保密程度的描述。 注:标识部中的段标题只能按部描述中指定的顺序出现。3. 环境部(ENVIRONMENT DIVISION)环境部指定程序中与特定计算机或操作系统相关的方面,指明用到哪些设备,哪些文件,将程序中用到的内部文件名与外部文件(或外部设备)联系起来。如果程序不需要任何环境部提供的项目,则可以省略环境部。一般格式:ENVIRONMENT DIVISION.CONFIGURATION SECTION. 配置节SOURCE-COMPUTER.OBJECT-COMPUTER.SPECIAL-NAMES.INPUT-OUTPUT SECTION. 输入/输出节FILE-CO

11、NTROL.I-O-CONTROL.1 配置节包括SOURCE-COMPUTER, OBJECT-COMPUTER和SPECIAL-NAMES(专用名段)。SOURCE-COMPUTER段标识编译程序的计算机。若该段省略,则编译程序的计算机是源计算机。如果指定WITH DEBUGGING MODE 从句,则编译所有源调试行,否则把调试行作为说明语句。OBJECT-COMPUTER段标识编译程序运行的计算机。SPECIAL-NAMES段用于把系统中原规定的一些设备名或功能名或符号改为用户自己指定的名字或符号。SPECIAL-NAMES. CLASS REAL-NUMBER IS012345678

12、9+-.-可用于类条件测试 DECIMAL-POINT IS COMMA. -逗号用作小数点,句号用作编辑符 CURRENCY SIGN IS “Y”. -表示货币符号的字符,DEFAULT$2 输入输出节输入输出节只用于文件,它把内部文件与外部文件(包括外部设备)联系起来。它有两个段:文件控制段:FILE-CONTROL段是给文件命名,指出存放该文件的外部设备及其他有关文件控制信息。对每个文件包含一个项目。FILE-CONTROL. SELECT FILE-1 ASSIGN TO “FILE-1.TXT”. SELECT FILE-2 ASSIGN TO DISK. SELECT FILE-

13、3 ASSIGN TO PRINTER. 输入输出控制段: I-O-CONTROL段包含定义程序返回点,不同文件共享的内存区和多文件卷中文件位置的项目。第三章 数据部一 数据部的节 数据部包含程序引用的所有数据的定义,如文件记录、变量、表格和报表。COBOL将数据部分成节,每个节是可选的,但程序中的节应按指定顺序定义。DATA DIVISION.FILE SECTION. 文件节WORKING-STORAGE SECTION. 工作存储节LINKAGE SECTION . 连接节COMMUNICATION SECTION. 通信节REPORT SECTION. 报表节1 文件节程序中每一个输入

14、或输出文件都要在文件节中定义。包括:(1) 文件名和文件属性。(2) 文件中包括的记录名。(3) 每个记录中数据的层次关系。(4) 记录中各数据项的数据形式和占内存的大小。DATA DIVISION. (数据部)FILE SECTION. (文件节)FD FILE-1. (文件名) LABEL RECORD IS OMITTED DATA RECORD IS STUDENT-SCORE. 01 STUDENT-SCORE. (记录名) 03 NAME PIC X(10). 03 NUM PIC 9(06).03 CORUSE-SCORE.05 CORUSE-1 PIC 9(03).05 COR

15、USE-2 PIC 9(03).05 CORUSE-3 PIC 9(03).2 工作存储节包含程序所需的临时结果和初始化静态数据的数据定义。WORKING-STORAGE SECTION.77 X PIC S99 VALUE -21.01 A PIC 9(08).01 B. 03 B1 PIC X(04). 03 B2 PIC X(02). 03 B3 PIC X(02).3 连接节本节只用于子程序,包含调用程序传递的数据(即参数)。LINKAGE SECTION.01 LCMIN. COPY RCI001.01 LCMOT. COPY RCJ001.4 通信节通信节描述作为程序间接口的数据和

16、消息控制系统,用以实现与通信设备相关的消息分析的COBOL方法。属过时部分,很少使用。5 报表节报表节描述实现COBOL报告编写工具的系统所需的数据。 REPORT SECTION.RD EMPLOYEE-REPORT PAGE LIMIT 60 LINES HEADING 1 FOOTING 58 FIRST DETAIL 3.二COBOL数据的类型及层次 (一)数据类型 (1)numeric(数字)(2)numeric-edited(数字编辑)(3)alphabetic(字母)(4)alphanumeric(字母数字)(5)alphanumeric-edited(字母数字编辑)所有数据类型

17、缺省作为字符串存放在内存中,唯一可以用不同方式存储的数据类别是数字型数据(通过USAGE子句)。对数字型数据制订不同方式存储,提高计算效率。 (二)数据的层次和层号 COBOL中把有从属关系的数据用层次关系来描述。数据的层次结构是:记录组合项基本项。层次规定如下:(1)用来描述数据的层次结构的层号从01开始,到49结束,即可用的层号为0149。(2)从属项的层号比其上属项的层号高。(3)如果几个数据项都从属于同一组合项但互不从属,则这几个数据项应具有相同的层号。(4)77层项目用于某个组的数据项,如程序中的临时变量。(5)66层和88层是特殊层。88层是对特殊数据项目条件名保留的。(在讲过程部

18、的条件语句时再详细介绍。)66层是用于更明现有数据项或数据项组。(讲RENAMES语句时再介绍。) (三)限定数据 (四)FILLER关键字 需要定义部分记录,但这部分在程序中永远不会用到,则可用保留字FILLER占有这个记录部分的位置。举例:一个打印用的记录行,有固定的空格时。 如果组项目不需按名称引用,则可以用FILLER关键字作为数据名,不用生成组名,但FILLER组名中定义的每个数据项应当唯一。三. 数据部用子句(一)PIC子句PIC是PICTURE的缩写,PIC子句用来描述每一个基本数据项,定义基本项目的具体长度、格式和数据类型。01 A. 03 A1 PIC 9999. 03 A2

19、 PIC AAAA. 03 A3 PIC XXXX. (A)字母数据字母数据限于字母表中使用的字符和空格符,用A描述符表示,每个字符用一个A表示。01 X PIC A(4).MOVE AB C TO X.(B) 字符数据(字母数字)字符数据可以包含计算机字符集中的任何字符。字符数据项目的格式字符串可用用A、 X、 9表示,至少要包含一个X,是非数值类型的,不能用于运算。01 X PIC X(4).01 Y PIC X(8).01 Z PIC A(5)X9(2).MOVE BOOK TO XMOVE 1234 TO XMOVE COBOL-85 TO YMOVE COBOL-85 TO Z(C)

20、 字符编辑数据(字母数字)要把字符数据格式化成特定形式,则可以用字符编辑数据。字符编辑数据用特定字符表示格式。字符编辑数据项目的格式字符串可用A、 X、 9、B、0和/ 表示,至少要有一个A或X和一个B(空格)或0(0)或/(斜杠)。01 EDITED-DATE PICTURE IS 99/XXX/9999.MOVE 05May1909 TO EDITED-DATE 则EDITED-DATE的值为05/May/1909 (D)数字数据数字数据由数字组成,包括其隐含的小数点和操作符号,表示的是实际数字值, 可用于数据运算。数字数据只能包含字符9,V,S和P的组合,至少要有一个9,最多18个9,至

21、少一个V和S。1“9”描述符 表示数字存放位置, 不能放入空格,不能表示小数和负数。算进项目长度中。 描 述 数值 内存中表示 长度 数值范围 01 X PIC 999 123 123 3 0999 01 Y PIC 9(4) 4567 4567 4 09999 01 Z PIC 99 12.34 12 2 01 T PIC 99 -12.34 12 22“V”描述符 指出在数据中隐含的小数点的位置,不占内存,不算进项目长度中。运算时按隐含的小数点位置对准进行运算。显示时只显示内存中的内容,不显示小数点。不包含V的项目假设的小数点位于最右边。 描 述 数值 内存中表示 长度 数值范围 01 X

22、 PIC 99V99. 87.5 8750 4 0.0099.99 01 Y PIC 9(3)V9(2). 781 78100 5 0.000999.99 01 Z PIC V999 1.234 234 3 01 T PIC 999V 123 123 33“P”描述符 表示数据项的比例因子,不占内存,不算进项目长度中。当数值很大,前面或后面若干位为0,为了节省内存可以用“P”描述符。P只能出现在开头或末尾,而不能同时在两处出现。显示时只显示内存中实际存放的数字而不显示隐含的P(即0)。 描 述 数值 内存中表示 长度 数值范围 01 X PIC 9P(4). 10000 1 1 19*1000

23、0 01 Y PIC PPP99. 0.00023 23 2 0.000010.000994“S”描述符 表示一个带符号的数,符号不算如项目长度中,除非包括SIGN IS SEPARATE 从句。如有S则必须是最左边一个描述符。如无S则总是表示为正值。 描 述 数值 内存中表示 长度 数值范围 01 X PIC S9(3)V9(2) 126.89 12689 5 -999.99999.99 01 Y PIC S9(3)V9(2) -1126.897 12689 5(E) 数字编辑数据为了使输出数据更易读,可以定义数字编辑数据。数字编辑数据可以用于显示数字,但所有计算中只能用数字数据。数字编辑数

24、据项目的格式字符串只能包含字符9、Z、B、0、/、P、V、,、。、*、+、-、CR、DB的组合。它必须包含118个9字符,包含至少一个除9、P、V以外的字符。1“.”描述符表示插入小数点的位置,只能在格式字符串中使用一次,不能与V和P同时使用。01 W PIC 9(3).9(2).01 V PIC 9(3)V9(2). MOVE 123.45 TO V MOVE V TO W 错误:01 W PIC S9(3).9(2).2“,”描述符表示插入逗号的位置,尽管它通常作千位分隔符,但也可以插入格式字符串其他地方。 01 W PIC 999,999.99. MOVE 123456.78 TO W

25、输出表示: 123,456.783“0”描述符表示插入0。4“B”描述符表示插入空格。01 W PIC 9(3).01 V PIC B9(3)B.MOVE 123 TO W.MOVE W TO V.5“+”或“-”描述符表示在输出的数值前(或后)加正号或负号。当用“+”时,不论数值为正或负一律加符号。当用“-”时,当数值为正时,数值前空一格,数值为负时,加一负号。01 X PIC S99.01 Y PIC +99.01 Z PIC -99.01 U PIC 99+.01 V PIC 99-.6插入“$”01 A PIC $999.99.01 B PIC +$999.99.01 C PIC -$

26、999.99.7浮点插入形式(浮动插入正负号和“$”)“$”, “+” , “-”的位置是浮动的,能够使符号紧挨着数字之前输出。在编辑型数据的描述中,指定浮动插入的字符个数应足够,以免数据被截断。浮动字符前不能再出现其它符号,即浮动字符应为第一个描述字符。01 A1 PIC S9(3)V99.01 A2 PIC +.99.01 A3 PIC $.99.01 A4 PIC +.+.01 A5 PIC $.$. 错误: 01 A1 PIC +$.99.8零抑制格式(取消高位零,用“Z”和“*”描述符)01 A1 PIC S9(3)V99.01 A2 PIC ZZZZ.99.01 A3 PIC *.

27、99.(1) 不能同时用Z浮动和+,-, $浮动 错误: ZZ$9.99 或 +ZZ.99(2)单个的+, -, $可以与Z或*连用01 A1 PIC +ZZZ.99.01 A2 PIC -*(3).99.01 A3 PIC $ZZZ.99.(3)如果使“Z”或“*”对应与所有的数字字符,当数值为0时,则所用数字位全部由空格或*代替。小数点位置上,由空格代替(用Z时),或保留“.”(用*时)。01 A1 PIC ZZZ.ZZ.01 A2 PIC *.*.(4)可与“,”连用 01 A1 PIC Z,ZZZ.99.9插入“DB”和“CR”字符 DB(DEBIT,借方)和CR(CREDIT,贷方)

28、只能用作固定插入,而且只作最后一个描述符号。当数值为负时,在编辑型数据项中最后两个字节中置DB或CR,数值为正时,此两字节留空格。01 A1 PIC $9(3).99DB.01 A2 PIC $999.99CR.10PIC子句小结 描述字符 含义 9 表示一个数字位置 A 表示一个字母位置 X 表示一个字符位置 V 表示隐含的小数点位置 S 表示数值数据带符号 P 表示十进比例换算 $ 插入货币号 . 插入小数点位置 , 插入逗号位置 + 一律加符号 - 对负数加负号,对正数前留一空格 Z 取消高位零,用空格代替 * 取消高位零,用*代替 B 插入空格 0 插入零 DB(借方) 数据为负时,在

29、数据后面插入DB,为正时,空两格 CR(贷方) 数据为负时,在数据后面插入CR,为正时,空两格(二) REDEFINES子句REDEFINES子句可以用不同数据描述同一计算机内存,适用于基本数据项和组数据项。层号 数据名1 REDEFINES 数据名2 02 A.03 A1 PIC 9(4).03 A2 PIC X(6).03 A3 PIC X(4).02 B REDEFINES A.03 B1 PIC X(5).03 B2 PIC 9(6).03 B3 PIC 99V9.02 C REDEFINES A.03 C1 PIC X(5).03 C2 PIC X(4).03 C3 PIC X(5)

30、. 规则:(1)数据名2与数据名1的层号必须相同。内存中的值为数据名1和数据名2共享。(2)用REDEFINES子句的描述体应紧跟在被重新定义的数据项的描述之后,中间不能插入其它项的说明。当进行多次重定义,必须紧跟出现,而且要求使用最初定义的数据名。(3)不能用于文件节或报表节的01层,可用于工作单元节的01层。(4)用REDEFINES子句可以改变数据的结构,REDEFINES从句定义的区域长度应小于等于原区域长度。(5)REDEFINES子句应在其它子句之前。(6)使用REDEFINES子句的数据项不能使用VALUE子句赋初值。(7)数据名2不能包含OCCURS子句。 03 A PIC X

31、(8) VALUE ABCDEFGH. 03 B REDEFINES A.05 B1 PIC X(4). 05 B2 PIC X(4).(三)USAGE子句USAGE子句可以指定计算机内存中的数据项格式,充分利用计算机内存空间和算术功能。USAGE子句不影响项目的使用(但过程部的有些语句将某些操作数限于某种USAGE从句)。USAGE子句可以用于基本和组数据项目。 USAGE IS BINARYDISPLAY COMPUTATIONAL COMP COMPUTATIONAL-1 COMP-1 COMPUTATIONAL-2 COMP-2 COMPUTATIONAL-3 COMP-3 COMPU

32、TATIONAL-4 COMP-4 COMPUTATIONAL-5 COMP-5 INDEX PACKED-DECIMAL缺省为DISPLAY。BINARY、COMPUTATIONAL、PACKED-DECIMAL只用于数字数据项。BINARY指定项目存放成二进制数。在PIC子句中描述字符9的个数为14时,占内存字节为2;个数为59时,占内存字节为4;个数为1018时,占内存字节为8。COMPUTATIONAL由厂家定义。大多选择与BINARY相同。COMPUTATIONAL-1由厂家定义。大多定义为单精度内部浮点数字项,用内存4Byte。(不用PIC)COMPUTATIONAL-2由厂家定义

33、。大多定义为双精度内部浮点数字项,用内存8Byte。(不用PIC)PACKED-DECIMAL指定数字按缩和十进制存放,以减少每个数字的存储量。每个数字4位或每个字节表示2个数字。符号也占半个字节,放在最后面(无符号,用1111;+号,用1100;-号,用1101)。COMPUTATIONAL-3由厂家定义。大多选择与PACKED-DECIMAL一致。COMPUTATIONAL-4由厂家定义。大多选择与PACKED-DECIMAL一致。COMPUTATIONAL-5由厂家定义。类似于USAGE COMP,但与在某些平台上的字节顺序相反。在支持小尾字节顺序的平台上,COMP-5执行速度更快。(C

34、OMP-X类似于COMP-5,但按大尾字节顺序存放。)INDEX用法是特殊用法,指定用该项目作为表格索引。采用INDEX用法的项目只能在过程部的某些语句中,不能有PIC从句。注:USAGE从句用于组层时作用于组中每个基本项目。如用BINARY时,组中的所有基本项目都要用数字。03 A PIC 9(4) COMP.03 B PIC 9(4).03 C COMP.05 C1 PIC S9(3).05 C2 PIC S9(6).(四)SIGN子句 SIGN子句可以指定格式字符串包含S字符的数字数据项中符号的位置。 SIGN IS LEADING SEPARATE CHARACTER TRAILING

35、 通过LEADING或TRAILING 来指定符号在数字的第一位(LEADING)或最后一位(TRAILING)。符号的具体表示由厂家指定。 如果有SEPARATE子句,则符号用标准字符+或-表示,符号位记入数据项的长度。(五)OCCURS子句 OCCURS子句指定数据项为固定项目数或可变项目数的表格(即数组)。OCCURS子句不能用于01和77层,可以用于基本或组数据项目。详细内容见表格处理。(六)SYNCHRONIZED子句 SYNCHRONIZED子句指定基本数据项在计算机内存自然边界上的对齐。 指定SYNCHRONIZED子句时的具体效果由厂家指定。可参看教科书的25章。(七)JUST

36、IFIED子句 JUSTIFIED子句(简称JUST)只能用于非编辑的字母数字基本数据项。即数据放进这个项目时,它与最右边的字符对齐。数据太长时左边截尾,太短时则左边填充。标准规则为与最左边的字符对齐并在右边截尾或填充。(八)BLANK WHEN ZERO子句BLANK WHEN ZERO子句只能用于数字型或数字编辑型的基本项。使用时,当数据项的值为零时,内容改变为空格。03 A PIC $(5).99 BLANK WHEN ZERO.03 B PIC Z,ZZ9.99 BLANK WHEN ZERO.03 C PIC *.* BLANK WHEN ZERO.(BLANK子句不起作用)(九)赋

37、初值子句(VALUE 子句) 程序中的数据往往需要赋初值,可以用VALUE子句来实现。 01 A1 PIC 99 VALUE 12. 01 A2 PIC X(5) VALUE COBOL. 01 A3 PIC S99V99 VALUE -12.34. 01 T. 03 A4 PIC 9(6) VALUE ZERO. 03 A5 PIC X(6) VALUE SPACES. 03 A6 PIC X(6) VALUE ALL A.03 A7 VALUE 1234. - 组项目被初始化了,则下属项目不能有05 A71 PIC 99. VALUE子句。 05 A72 PIC 99.四66层RENAME

38、S项目用66层RENAMES项目可以在不改变数据项的长度的前提下,重新定义数据区的名称和数据结构的形式。原各基本项的类型和长度不变。即是说该格式可以更名现有数据项或数据项组,或以原定以未允许的方式组合。66 数据名1 RENAMES 数据名2 THRU 数据名3 01 A. 03 B05 G05 H 03 C05 I05 J03 D03 E 03 F66 K RENAMES G THRU I.66 M RENAMES B THRU C.66 N RENAMES E.(1)层号只能用66,它必须紧跟在01层记录中最后一个数据描述体之后。(2)只能用于工作单元节中,不能用于文件节中。(3)指定数据

39、名3时,数据名3必须在数据名2后面定义,不能从属于数据名2。此时数据名1是一组项目。第四章 过程部一简介过程部是COBOL程序的最后一个部分。包含程序运行时要执行的所有语句。以PROCEDURE DIVISION开头,包含对数据操作的程序逻辑。过程部的组件包括语句、句子、段和节。(1) 语句(statement):以动词开头的单词、直接数和分隔符的组合。语句应一律从B区(12列开始)开始写,续行也应从B区开始。(2) 句子(sentence):以英文句号(.)结尾的一系列语句。(3) 段(paragraph):由段名、句号分隔符和零或几条句子组成。段的最后一条语句要用英文句号结束。(4) 节(

40、section):由节标题加上保留字SECTION和分隔符句号。注:段名应在节中保持唯一性、节名应在程序中保持唯一性。段名不能与节名重复。引用段名时可以用所属的节限定如下:GO TO PARA-1 IN SECTION-22.例1:PROCEDURE DIVISION. (过程部头)A SECTION. (A节)A1. MOVE 1 TO I. (A1段) MOVE 2 TO J.A2. ADD I TO J. (A2段)B SECTION. (B节)例2:PROCEDURE DIVISION.DISPLAY HOW DO YOU DOSTOP RUN.例3:MOVE 100 TO X.ADD

41、 Y TO Z.IF X > 100 GO TO FINISH.二算术运算语句1 加法语句(ADD 语句)ADD A TO B A + B BADD 15 TO C 15 + C CADD A, B TO C A + B + C CADD 15, 25 TO C 15 + 25 + C CADD A, B GIVING C A + B CADD 15, 25 GIVING C 15 + 25 CADD A, B TO C, D A + B + C C, A + B + D D2 减法语句(SUBTRACT语句)SUBTRACT B FROM A A B A SUBTRACT B, C F

42、ROM A A B C A SUBTRACT B, C FROM A, T A B C A, T B C T SUBTRACT B, C FROM A GIVING X A B C X3乘法语句(MULTIPLY 语句) MULTIPLY A BY B A * B B MULTIPLY A BY B GIVING C A * B C MULTIPLY A BY B, C A * B B, A * C C4除法语句(DIVIDE语句) DIVIDE A INTO B B / A B DIVIDE A INTO B GIVING C B / A C DIVIDE A BY B GIVING C A

43、 / B C DIVIDE A BY B GIVING C REMAINDER D A / B 商C, 余数D REMAINDER子句 :取得余数。存放余数的数据项可以时数字或数字编辑数据项。余数计算取决于每个操作数的符号和小数点位置。 例: 77 Q PIC S99V9. 77 R PIC S99V9. DIVIDE 3 INTO 7 GIVING Q REMAINDER R Q=2.3 R=0.15计算语句(COMPUTE语句) COMPUTE语句可以进行复杂的四则运算,也可实现指数运算。 COMPUTE T = (A + B) * C / D COMPUTE T = X * 2 COMP

44、UTE T = 1 / (1 / A + 1 / B) 运算次序:()单边运算符、例1:IDENTIFICATION DIVISION.PROGRAM-ID EX1.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.77 X PIC 9999.77 A PIC 9977 B PIC 99.77 C PIC 99.PROCEDURE DIVISION. ACCEPT A. ACCEPT B. ACCEPT C. COMPUTE X = (A + B) / C. DISPLAY X. STOP RUN.6四舍五入处理(ROUNDE

45、R子句) 接收项目后边的ROUNDER短语表示运算产生的数值先进行四舍五入处理再存入接收项目中。对多个接收项目,舍入处理对各个项目独立进行。 ADD A, B TO C ROUNDER ADD A, B, C TO D, E ROUNDER, F ROUNDER7长度溢出处理(ON SIZE ERROR短语) 结果绝对值大于接收项目最大存储能力时,会发生SIZE ERROR条件。01 A PIC 9V9 VALUE 1.2.1 B PIC 9V9 VALUE 9.0.01 C PIC 9V9. MULTIPLY A BY B GIVING C ON SIZE ERROR DISPLAY SIZ

46、E ERROR.8带CORRESPONDING子句的算术运算语句(数据项同名时编写多条语句的缩写方法。) 算术运算语句中的ADD和SUBTRACT语句除了可以用来使两个或多个单个的数据项进行运算外,还可以用来使两个组合项中的对应项进行加,减运算。进行运算的各项必须是数值型初等项。(数据项目不一定要格式相同。数据项的顺序也无关紧要。) 02 A. 02 B.03 A1 PIC 9(3). 03 A1 PIC 99V99.03 A2 PIC 99V99. 03 A2 PIC 9V9.03 A3 PIC 9V9. 03 A3 PIC 99V99.ADD CORR A TO B.三传送语句(MOVE语句)MOVE语句用来实现数据的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论