COBOL谭浩强版学习笔记(3)

2018-11-22 19:26

88 X2 VALUE 100 THRU 999. 88 X3 VALUE 1000 THRU 4999. 88 X4 VALUE 5000 THRU 100000.

经过上面的说明后,可以在过程部中直接使用条件名条件。 IF X1 MOVE 0.03 TO R. (在0<=X<100时,R=0.03) IF X2 MOVE 0.04 TO R. (在100<=X<1000时,R=0.04) IF X3 MOVE 0.05 TO R. (在1000<=X<5000时,R=0.05) IF X4 MOVE 0.06 TO R. (在5000<=X<=100000时,R=0.06) 6.复合条件

逻辑运算符有:AND、OR、NOT 运算次序是:NOT?AND?OR

五.字符串连接语句(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 标识符1 FROM 常数1/标识符2 BY 常数2/标识符3 UNTIL 条件 举例:PERFORM T1 THRU T2 VARYING X FROM A

BY B UNTIL X>5

其作用是执行T1到T2语句序列,X是“循环变量”,是整型数据项。A为初值,B为步长,它们都是整数或整数数据项。

六.执行语句的多重循环形式

格式:PERFORM 过程名1 [THROUGH/THRU] 过程名2

[VARYING 参数1 FROM 初值1 BY 步长1 UNTIL 条件1] [AFTER 参数2 FROM 初值2 BY 步长2 UNTIL 条件2] [AFTER 参数3 FROM 初值3 BY 步长3 UNTIL 条件3] 说明:1。最后面的循环体先执行。 2.COBOL允许用到三重循环。

七.出口语句(EXIT语句)

作用:提供一个段名,被PERFORM调用的语句序列由此公共汇集点,返回到PERFORM的下一个语句去。 举例:PERFORM A THRU B ??

A. IF X>Y GO TO B MOVE X TO T. B. EXIT.

八.修改语句(ALTER语句)

格式:ALTER 过程名1 TO [PROCEED TO] 过程名2 [,过程名3 TO [PROCEED TO] 过程名4]??

作用:用来改变GO TO的转向点。该语句使以过程名1,过程名3,??命名的各段中的GO TO语句的转向点分别被修改为过程名2,过程名4??。注意,过程名1,过程名3??各段只能由一条GO TO语句单独组成。

数据部之二

-数据部的较高技巧

一.数据在计算机内的表示形式 1.字符数据在内存中的存储形式 (1)ACSII (2)EBCDIC

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

(1)外部十进制(或称扩张十进制)形式 (2)外部浮点数形式

(3)内部十进制(又称缩合十进制)形式 (4)定点二进制形式 (5)内部浮点形式

二.用法子句(USAGE子句)

作用:可以使程序设计者自由选择数据在内存中的存放形式。 格式:[USAGE IS] DISPLAY/COMPUTATIONAL/COMP 说明:1。DISPLAY表示是“显示型的用法”,表示此数据项适于显示,打印。

2.COMPUTATIONAL=COMP,表示是“计算型的用法”,适于计算。 3.如省略USAGE子句,则隐含表示为用DISPLAY形式。

三.符号子句(SIGN子句)

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

格式:[SIGN IS] LEADING/TRAILING [SEPARATE CHARACTER]

说明:1。没有SIGN子句时,数值的符号是存放在数据项最后一个字节中的。

2.用SIGN子句可以指定符号在数值的前部还是后部(LEADING/TRAILING)。 3.指定符号单独占一个字节,用“SEPARATE”可选项,内存中增加一个字节。 4.SIGN子句只能用于PIC字符串中含有“S”的数值型数据描述体中。

5.使用SIGN子句的数据项的用法应该是USAGE DISPLAY(显式的或隐含的)。 举例:02 A PIC S9(3) USAGE DISPLAY SIGN IS LEADING.

四.重定义子句(REDEFINES子句) 作用:不同的数据项可以共用内存中的同一段空间。例如已给数据项A分配了一段内存空间,在经过某一段的过程后,A已经不再使用了,但它仍占着内存这部分空间,为了节约内存,可以将另一数据项B也分配在A所占的这段内存空间。 格式:层号 数据名1 REDEFINES 数据名2 举例:02 A PIC X(5).

02 B REDEFINES A PIC 9(5).

说明:1。数据名2 与数据名1的层号必须相同。

2.用REDEFINES子句的描述体应该紧跟在被重新定义的数据项的描述之后,中间不能插入其它项的描述说明。

3.可以多次重定义,但必须紧跟出现,而且要求使用最初定义的数据名。 4.REDEFINES子句不能用于文件节的01层中。

5.用REDEFINES子句可以改变数据结构,但数据名1、2的长度应该相等。 6.REDEFINES子句应在其它子句之前。

7.重定义子句所在的数据描述体中不能使用初值子句赋初值。.

五.重命名子句(RENAMES子句)

作用:在不改变数据项的长度的前提下,重新定义数据区的名称和数据结构的形式(包括初等项的类型和长度)。可以把原来已经定义的某些数据项重新组合成一个新项,并以一个新名字来代表它。但用重命名子句不能改变原来各初等项的类型、长度等属性。

格式:66 数据名1 RENAMES 数据名2 [THRU 数据名3] 说明:只能用于工作单元节中,不能用于文件节中

六.遇零置空子句(BLANK子句)

作用:当数据项的值为零时,使它的内容改变为空白(空格)。这个子句只能用于数值型或编辑型的初等项。 举例:03 A PIC 9999 BLANK WHEN ZERO.

七.对齐子句(JUSTIFIED子句)

作用:字符或字母型数据传送的时候是按标准的对齐方式,即“左对齐”,若想改为“右对齐”,可以用JUSTIFIED子句。

格式:JUSTIFIED/JUST RIGHT

举例:77 B PIC X(5) JUSTIFIED RIGHT

八.同步安置子句(SYNCHRONIZED子句)

作用:一个机器字一般定为4个字节,从内存中取数据的时候是以机器字为单位的,而数据存放则是按字节连续存放的,这里面就存在一个边界对齐的矛盾,会影响目标程序运行时间。用同步安置子句可以指定数据项在内存中如何按自然边界来安置。

格式:SYNCHRONIZED/SYNC LEFT/RIGHT

说明:1。用SYNC LEFT时,左对齐,右边补零或空格。 2.用SYNC RIGHT时,右对齐,左边补零或空格。 举例:01 A.

02 A1 PIC 9(3) SYNC LEFT VALUE 82. 03 A2 PIC X(3) SYNC RIGHT VALUE ‘ABC’

九.复写语句(COPY语句)

作用:把“源程序库”中的某些记录描述和数据描述插入到自己的源程序中。

格式:COPY 库名 [REPLACING 标识符1/常量1/字1 BY 标识符2/常量2/字2]

子程序

一.概述

举例:编一个打印一行“*”符号的子程序 1. 主程序(只写与调用子程序有关的部分)

IDENTIFICATION DIVISION. (标识部) PROGRAM-ID. A. (程序名为A) ENVIRONMENT DIVISION. (环境部) ??

DATA DIVISION. (数据部) ??

PROCEDURE DIVISION. (过程部) ??

CALL B. (调用子程序B) ??

2. 子程序

IDENTIFICATION DIVISION. PROGRAM-ID. B.

ENVIRONMENT DIVISION. DATA DIVISION.

WORKING-STORAGE SECTION. 77 X PIC X(80).

PROCEDURE DIVISION. MOVE ALL’*’ TO X. DISPLAY X.

EXIT PROGRAM.

可以看到程序A和程序B分别是两个程序,各有自己的程序名,都有四大部分。

二.调用程序与被调用程序间的数据联系 格式:调用语句

CALL 子程序名 USING 数据名1 [,数据名2]??] 被调用程序中过程部部头的一般格式为

PROCEDURE DIVISION [USING 数据名1[,数据名2]??] 说明:1。两部分相对应的参数个数、长度必须相等。

2.参数是在内存中建立关联,类似于C++中的传递引用参数。

三.子程序的结构 1.标识部

说明子程序的名字,以供调用。 2.环境部 3.数据部

(1)文件节(FILE SECTION)

(2)工作单元节(WORKING-STORAGE SECTION) (3)联接节(LINKAGE SECTION):如果子程序过程部部头的USING子句中有数据名,则此数据名应在此节中加以说明。 4.过程部

过程部的部头:PROCEDURE DIVISION USING 数据名1,数据名2,?? 过程部中应该包括一个程序出口语句:EXIT PROGRAM.

表的建立与查找

一.表的概念

COBOL语言中的表(TABLE)类似于其他高级语言中的数组(ARRAY)。 表中,序号称为下标,相对地址称为位标,下标和位标称为“出现号”。

二.表的建立(OCCURS子句) 格式:OCCURS 整数 TIMES 举例:01 PRODUCT-RECORD. 03 RODUCT OCCURS 20 TIMES.

04 QUANTITY-OF-PRODUCTION PIC 9(6). 04 QANTITY-OF-SALES PIC 9(6). 04 QANTITY-OF-HAND PIC 9(6).

说明:1。OCCURS子句不能出现在77层,因为77层是独立的数据项。 2.OCCURS子句不能用于01层。

3.只有当OCCURS所说明的数据是初等项时,才能在该数据项的描述中使用PIC子句。

4.不能用VALUE子句对表赋初值,不能同时用OCCURS子句和VALUE子句来描述同一数据项。

三.可变长表

格式:OCCURS 整数1 TO 整数2 TIMES DEPENDING ON 数据名1 说明:根据数据名1的值来确定数据项重复的次数。


COBOL谭浩强版学习笔记(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年顺义区青少年科技创新大赛活动方案毕业设计策划方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: