COBOL语言之数组
数组子句(OCCURS 子句)
OCCURS 子句指定数据项为固定项目数或可变项目数的数组。OCCURS 子句不能
用于01 和77 层的项目,但可以用于基本或组合数据项目。如:
01 TIME-WORKED.
03 WEEK PIC 9 OCCURS 7 (TIMES).
COBOL 允许在OCCURS 子句所在组的下属项目中使用OCCURS 子句,从而提供多
维数组。如:
01 TIME-WORKED.
03 MONTH OCCURS 12. (12 个月)
05 DAY OCCURS 31 TIMES. (31 天)
07 REGULAR PIC 99.
引用多个OCCURS 子句的数据项时,第一个下标是最外边的OCCURS,后续下标
一直继续到最里层。
循环语句——PERFORM
PERFORM 过程名1 (THRU 过程名2)
[VARYING 参数1 FROM 初值1 BY 步长1 UNTIL 条件1]
循环语句——PERFORM
例如:
PERFORM T1 VARYING X FROM A BY B UNTIL X > 5.
它的作用是:
(一)先把初值A赋给变量X。
(二)判断条件(X > 5)是否符合,如果不满足条件,执行完一遍T1到T2,然
后X + B => X。
(三)再判断条件是否符合,如不满足,再执行一遍T1到T2,然后X + B => X。
如此反复执行(二)(三),直到条件(X > 5)符合为止。
(四)然后返回执行PERFORM语句的下一条语句。
当然,条件不一定要出现循环变量X,如:
A. MOVE 0 TO N.
PERFORM A1 VARYING X FROM 1 BY 5
UNTIL N > 10.
A1. ADD 1 TO N.
循环语句——PERFORM
多重循环形式(从内层开始向外层实行)
PERFORM 过程名1 (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]
COBOL 允许用到三重循环
例如:
PERFORM A VARYING I FROM 1 BY 1 UNTIL I > 10
AFTER J FROM 2 BY 2 UNTIL J > 10.
…
COMPUTE Z = I * J
DISPLAY Z.
执行过程:
(一)先使I取初值1,再判断条件I > 10是否满足,如不满足,进行内循环。
(二)给J取初值2。
(三)判断J>10?如不满足,则执行一次A段。
(四)然后J+2=>J。
(五)重复执行(三)(四),再判断J>10?未满足,则执行一次A段,直到J>10为止。
(六)满足J>10,就使I+1=>I。
(七)判断I>10?如仍未满足,就给J重新取初值2。然后重复(三)~(五)。直到I>10为止。
(八)满足I>10后,就转去执行PERFORM语句的下一条语句。
执行语句(PERFORM 语句)
在一个COBOL 程序中,往往有一部分语句是需要多次执行的。我们希望重复的部分只出现一次,即把重复的部分单独写成一段或一节。每次需要执行这部分语句时转去该段,执行完后转回来。这时需要用到执行语句(PERFORM 语句)。另外,当程序很长时,也可以分成若干个节,这些节的调用也是通过这时执行语句(PERFORM 语句)。
PERFORM 语句的一般形式:
PERFORM 过程名1 [THRU 过程名2]
出口语句(EXIT 语句)
EXIT 语句提供了一组过程的公共出口,或者说它指出了被调用过程的逻辑终
点。EXIT 语句不使计算机产生任何动作,它好比一个“桥梁”,能将被调用
过程和调用过程的后续过程连接起来。一般用来作PERFORM语句调用的语句序
列的出口,使程序返回到PERFORM语句的下一个语句上去。
注意EXIT 语句必须是本段中唯一的语句,即该段中不允许有其它语句。
EXIT 语句前必须有一段名。
(1) PERFORM A THRU B.
...
A. MOVE 1 TO X
ADD X TO Y.
B. EXIT.
(2) PERFORM A.
...
A. MOVE 1 TO X
ADD X TO Y.
复写语句(COPY 语句)
利用COPY 语句可以可以使某些记录描述和数据描述为不同的程序共用。为此
要建立一个源程序库,将上述这些共同使用的源程序中的某一部分事先存入库
中。编码人员用COPY 语句就可以将这些源程序体插入到自己的源程序中。
COPY 语句一般格式:
COPY 库名 REPLACING 标识符1 BY 标识符2
标识符的含义为不超过30 个字符组成的字符序列。
例如:
COPY IN-FILE REPLACING ==IN== BY ==A==.(用A 替换IN)
COPY 语句不仅可用于数据部,而且也可用于其它部分。使用COPY 语句可以减少写程序的工作量,便于程序的保存和修改。
计算语句(COMPUTE 语句)
COBOL 还提供了一种计算语句,可以进行比较复杂的四则运算。一般格式:
COMPUTE 标识符1 = 算术表达式
例如:COMPUTE Z = (B – A) * 2 + C * X – E / D.
说明:
所有运算符两侧均应留一空格。
括号的外侧应留空格,内侧可不要留空格。
COMPUTE 语句运算速度较单一的加减乘除慢。
分享到:
相关推荐
Apress.COBOL.and.Visual.Basic.on.NET.A.Guide.for.the.Reformed.Mainframe.Programmer
emeditor 中 cobol程序高亮显示 cobol.esy
Java.For.S.390.and.AS.400.COBOL.Programmers.chm
这份“cobol.rar_cobol”压缩包显然是为学习和理解COBOL编程而准备的资源。 “COBOL的面试题2.txt”可能包含了关于COBOL编程的经典面试问题和解答,这些问题通常涉及到COBOL的基本语法、数据类型、控制结构、文件...
这个"COBOL.zip_open"文件似乎包含了一个使用CLB(可能指的是Cobol Light or Basic)开发的葡萄牙语(BR)学术系统。CLB可能是一个针对初学者或教育环境简化版的COBOL集成开发环境(IDE),旨在提供一个友好的平台来...
cobol to opp ..
6. **表格处理**:COBOL的HOLDING和INDEXED FILE特性使得处理表格和数组变得简单,可以进行动态查找和排序。 7. **错误处理**:通过使用ON ERROR、ON SIZE-ERROR和ON INPUT-OUTPUT-ERROR等句,COBOL提供了错误处理...
6. 文件和数据库连接:COBOL可以直接与DB2等数据库进行交互,执行SQL语句进行数据操作。 了解并掌握这些基础后,可以进一步学习COBOL的现代特性,如面向对象编程(OOP)、游标(Cursor)、异常处理和嵌套子程序等。...
Nowadays, billions of lines of code are ...Chapter 6: Model-Driven Development (MDD) Chapter 7: Model-Driven Software Modernization Chapter 8: Software Modernization Method and Tool Chapter 9: Case Study
6. **描述符(Descriptor)**:COBOL使用描述符来定义数据结构,如组项(GROUP ITEM)、复制项(DUPLICATED ITEM)和数组(ARRAY)等。 7. **报告生成**:COBOL内置的报告生成能力使得它在业务报表生成方面非常强大...
1. **cobol.acp**: 这是Editplus的配置文件,包含了COBOL语言的自动完成设置。它定义了当用户键入特定字符序列时,编辑器会自动弹出可能的匹配项,帮助快速输入常见的COBOL关键字或标识符。这极大地提高了编码速度,...
COBOL,全称是Common Business Oriented Language,是一种古老但仍然广泛应用的编程语言,尤其在企业级系统和IBM AS400(现在被称为IBM iSeries或iSystem)平台上。AS400是一款由IBM推出的集成计算平台,以其稳定性...
cobol大机操作语言的历程,都是本人在学习过程中写的,有疑问可以联系我qq341661392
- 在ISPF首页选择6,输入命令`allocate fi(sysout) fi(sysin) da(<用户名>.COBOL.LOAD(TEST1))`。 - 按照提示完成控制台方式的程序运行。 #### 四、总结 通过以上实验步骤,学生不仅可以了解COBOL语言的基本结构...
**6. 定义VSAM文件** VSAM(Virtual Storage Access Method)是IBM的一种高速访问方法。使用IDCAMS UTILITY定义VSAM文件,参数如CLUSTER、RECSZ、REC和KEYS。CYL参数用于指定VSAM文件的大小。 **7. VSAM的KEY参数*...
老外写的相当不错,从创建数据集,到编辑源代码,到提交JOB,非常清楚
4. 创建编译JCL(Job Control Language)文件ST***.COBOL.COMLINK,它定义了编译过程,将源程序编译成可执行模块并存放在ST***.COBOL.LOAD中。 5. 创建运行JCL文件ST***.COBOL.RUN,调用ST***.COBOL.LOAD中的可执行...