当前位置:文档之家› Cobol基础

Cobol基础

Cobol基础
Cobol基础

Cobol 语法基础

作成者审查者承认者

丁成远

变更履历

日期版本作成者备注

2005-03-01 1.0 丁成远初版

一.COBOL 语言的特点

最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑关系,大量的分类排序;COBOL 比较接近英语,容易懂;通用性强,易植,COBOL结构严谨,层次分明。

二. COBOL的组成部分

1.标识部(IDENTIFICATION DIVISION):用于标识程序名。

IDENTIFICATION DIVISION.

PROGRAM-ID. 程序名。

[AUTHOR。作者名。 ]

[INSTALLATION。计算机设置场所。 ]

[DATE-WRITTEN。源程序编写日期。 ]

[DATE-COMPILED。源程序编译日期。 ]

[SECURITY。保密程度。]

2.环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。ENVIRONMENT DIVISION.

CONFIGRATION SECTION。

SOURCE-COMPUTER。源计算机名。

OBJECT-COMPUTER。目标计算机名。

[SPECIAL-NAMES。专用名描述项。 ]

[INPUT-OUTPUT SECTION。

FILE-CONTROL。 {文件控制描述体}

[I-O-CONTROL。输入输出控制描述体]] 3.数据部(DATA DIVISION):用于说明程序中涉及的所有数据。4.过程部(PROCEDURE DIVISION):是程序的核心部分,它决定计算机应进行什么操作。

三. 最简单的COBOL 程序举例

1.环境配置说明:

(1)安装“Fujitsu NetCOBOL for Windows V7.0”的企业版,安装完成后选择“COBOL Project Manager”打开COBOL主控制台。(2)选择“Open Project”打开存在的COBOL程序,或者输入新的Project名选择打开,可以建立新的COBOL Project.。

(3)在主控制台新建的Project目录下创建新的文件,后缀名为EXE。

(4)在主控制台新建的文件下建立一个“COBOL Source Files”目录。

(5)在建立的“COBOL Source Files”目录下新建一个后缀名为”COB”的文件,该文件就是COBOL的源程序文件。

(6)在主控制台上右击COBOL的源程序文件,将“main”选项设置为“Console”。

(7)编译时需要先compile源程序,再build上层的EXE文件,之后就可以执行该EXE文件了。

(8)COBOL程序的整体结构图如下:

2.程序举例:

000010 IDENTIFICATION DIVISION.

000020 PROGRAM-ID。 PSAMPLE1.

000030 ENVIRONMENT DIVISION.

000040 DATA DIVISION.

000050 PROCEURE DIVISION.

000060 PROGRAM BEGIN.

000070 DISPLAY ‘THIS IS A COBOL PROGRAM.’ .

000080 PROGRAM DONE.

000090 STOP RUN。

说明:cobol源程序的格式如下:

(1).每行开头有6个字符的序号区。可以输入000010,000020等表示行,因为目前的编辑器一般都会自动添加行号,所以一般不输。(2).序号区后面是一个字符(第7位)的指示符区,如第一行所示。可以用*和/表示注释,_表示续行,D表示调试。

(3).指示符区后面是4个字符(8~11位)的A区。程序中有些内容如部头,节头,段头,层号 01,层号 77 及文件描述符FD等应从A区开始写。

第12至此72列,称为“B区”。写程序中的正文部分。如过程部中的句子只能从B区开始写。

第73至80列,称为“注释区”。

COBOL字符集包括:

(4).数字0 --- 9 ,字母 A--- Z ,a --- z , 专用字符:+ - * / = , . ; ‘ ( ) < > $ 及空格。属于系统字符集而不属于COBOL字符集的字符只能出现在COBOL 程序中的字符串里。

3.习题:

1 熟悉COBOL的运行环境,程序结构和编译方式。

2 编写“Hello World”小程序,要求在屏幕上输出“Hello World”。

四.变量的定义

1数值型数据的描述:

(1).‘9’描述符:表示该位置上可以放入一个0 ~ 9 之间的数字。因此:

01 A PIC 999.或

01 A PIC 9(3).

表示A可以存放000 ~ 999 之间的一个三位数。有几个9表示有几位数。

注意:(1)在数值型数据项中只能放数字不能放空格。

(2)用‘9’描述符只能表示整数,如输入小数部分,则小数部分被舍弃。

(3)如送入一个负数,则负号被舍弃。

(4)如送入大于定义位数的数值,会从左开始舍弃多于的数。

(2)‘V’描述符:指出在数值数据结构中隐含的小数点的位置。小数点不占内存单元。如:

01 M PIC 9(3)V9(2).

注意:(1)V在描述符的最后,则等于无小数点。

(2)一个数据的描述符中只能出现一个V。

(3)V表示的小数点只在传送或运算时起作用,不能被显

示或打印出来。

(3)‘S’描述符:如果想在数据项中放入一个带符号的数,可以用‘S’描述符。如:

01 M PIC S9(3)V9(2).

注意:(1)S描述符必须是最左边的一个描述符。

(2)在内存中,S不占位数,在传送或运算时起作用。

2字符型数据的描述:

由任意的COBOL字符组成的数据,称为字符型数据,它是非数值型的,不能用于计算。用X描述符来表示字符型数据。如:

01 M PIC X(5).

注意:字符型数据中可以放数字。

3 编辑型描述符:

编辑型数据项只是作为输出数据时增加或改变某些所需的符号,起编辑作用,它不是作计算用的。下面分别介绍编辑数据项中用到的编辑描述符。

(1)。插入小数点‘。’,用‘。’描述符。如:

77 T PIC 99.99.

(2)。插入逗号‘,’作分位号,用‘,’描述符。如:

02 A PIC 999,999.99.(或

PIC 9(3),9(3).9(2)).

(3)。插入空格,用‘B’描述符。如:

02 A PIC B9(3)B.

(4)。插入正负号,用‘+’或‘-’描述符。如:

02 A1 PIC +9(3).(或 PIC 9(3)+)

02 A2 PIC -9(3).(或PIC 9(3)-)

注意:描述符‘+’,一律加符号。描述符‘-’只对负值加负号。

(5)。插入‘$’。如:

02 A1 PIC $999.99.

02 A2 PIC +$99999.

02 A3 PIC -$999.9.

(6)。浮动插入正负号和‘$’

02 A1 PIC $$$99.99.

02 A2 PIC $$$$$.$$.

02 A3 PIC ++9.99.

(7)。取消高位零,用‘Z’和‘*’描述符。在高位零的位置上代以空格或‘*’。如:

02 A1 PIC Z(5).99.

02 A2 PIC *(5).*(2).

02 A3 PIC +ZZZ,ZZZ,ZZ.ZZ. 02 A4 PIC -*,***,***.99.(8)。插入‘DB’和‘CR’字符。DB和CR只能用作固定插入,当数值为负时,在编辑型数据项中最后两个字节中置DB或CR,数值为正时,此两字节留空格。如:

02 A1 PIC $9(3).99DB.

02 A2 PIC $9(3).99CR.

4. VALUE子句:

VALUE子句用于给变量赋初值。如:

01 A PIC 9(3) VALUE 123.

*注意:

只有对工作单元节中的数据项才能赋初值,不能对文件节中输入输出文件中的数据项赋初值。

如果在组合项的描述体中使用VALUE,初值只能是表意常量或非数值型常量。

对组合项整体而言,一律按字符型数据项处理。

(3)当用一个带符号的数值作初值时,相应的PIC子句中应有‘S’描述符。

(4)赋初值时应该注意类型的一致性。

(5) VALUE子句给出的值应适合PIC子句的描述范围,否则会出现截断或产生错误。

*总结:输入专用符号:S,V

输出专用符号:, . B $ + - Z

说明:输入专用符号一般用在从外部设备读入数据的定义,输出专用符号一般用在输出数据的定义。

定义数据时要根据数据的用途使用不同的符号,否则会编译出错。

如果要将输入数据以某种格式输出,则需要定义两种数据进行赋值操作。

5. COBOL在DATA DIVISON中进行变量以及文件记录的定义:

其格式为:

(1). 普通变量

DATA DIVISION.

WORKING-STORAGE SECTION.

NUM-DATA PIC 9.

01 STR-DATA PIC XX.

(2). 结构体定义

DATA DIVISON.

WORKING-STORAGE SECTION.

01 STRUCT-DATA.

05 NAME PIC X(4).

05 SEX PIC 9(4).

05 TEL PIC 9(8).

结构体中的每个变量都可以在程序中单独使用,当引用到结构体时相当于引用了结构体中的全部变量。如DISPLAY STRUCT-DATA. 就会将NAME, SEX, TEL的值都显示在屏幕上.

(3).文件记录的定义

DATA DIVISION.

FILE SECTION.

FD PHONE-FILE

LABEL RECORDS ARE STANDARD.

01 PHONE-RECORD.

05 PHONE-LAST-NAME PIC X(20).

05 PHONE-FIRST-NAME PIC X(20).

05 PHONE-NUMBER PIC X(15).

五.基本的过程部语句

1.输入输出语句:

(1)ACCEPT语句:直接从终端键盘或系统指定的输入设备上输入数据。

ACCEPT 标识符 [FROM 助忆名]

说明:A.标识符(identifier)指的是能唯一地标识一个数据项的数据名,不能唯一地标识一个数据项的数据名不是标识符。

B.在ACCEPT语句中如不写FROM部分,如ACCEPT A ,则表示从系统隐含指定的设备上读入一个数据给A。如果不想从指定的设备上输入,则要用FROM 选项,

如:ACCEPT NUM-DATA 运行到这语句时,系统会等待从键盘输入一个字符赋给变量 NUM-DATA .

(2)DISPLAY语句:从计算机内存中输出到某一指定的输出设备上。 DISPLAY { 标识符1,常量1}[标识符2,常量2]。。。[UPON 助忆名]

(标识符和助忆名的说明同上)

如:DISPLAY NUM-DATA 将NUM-DATA的值显示到屏幕上。

ACCEPT语句和DISPLAY语句不必定义文件适用于少量的数据输入输出。

2.算数运算语句:

(1)ADD语句:

①ADD 标识符1 ,标识符2。。。 TO 标识符m [,标识符n]。。。例如:ADD A TO B. 表示:B = B + A

②ADD 标识符1 ,标识符2。。。 GIVING标识符M

例如:ADD A , B GIVING C. 表示:C = B + A

(2)SUBTRACT语句:

SUBTRACT 标识符1 ,标识符2 。。。 FROM 标识符m [,标识符n]。。。

例如:SUBTRACT A FROM B. 表示:B = B - A

(3)MULTIPLY语句:

MULTIPLY 标识符1 BY 标识符2 [,标识符3]。。。例如:MULTIPLY A BY B. 表示:B = B * A

(4)DIVIDE语句:

DIVIDE 标识符1 INTO 标识符2 [,标识符3]。。。

例如:DIVIDE A INTO B表示: B = B / A

COMPUTE 语句:

COMPUTE 标识符1 [,标识符2 ]。。。= 算术表达式

例如:COMPUTE C = A + B.

(5)除法语句中的余数语句(REMAINDER 子句):DIVIDE 语句只能求商不能求余数。如想求余数,可用 REMAINDER 子句。

如:DIVIDE A INTO B GIVING C REMAINDER D

注意:(1)商和余数的值不仅取决于除数和被除数,还取决于数据部中对商和余数的描述。

(2)如用ROUNDED子句,它只对商起作用,余数不作四舍五入处理,在计算余

数时,仍按四舍五入前的值为准。

3.传送语句(MOVE):

MOVE 语句用来实现内存中数据的传送(而不是内存和外设之间的传送)。

MOVE语句的一般格式为:

MOVE 标识符1 TO 标识符2 [,标识符3]。。。

MOVE语句的传送规则:

1,如果接收项和发送项在数据部中描述的类型和长度相同,则按字

节一一对应传送。

2,如果接收项和发送项长度不相同,而二者都是数值数据项,则按小数点对齐处理。

3,对字母或字符数据(非数值型数据)的传送,按左对齐处理。

4,初等项和组合项之间可以相互传送。

4.转移语句(GO TO):

当需要使程序改变正常执行的顺序时,可以使用无条件转移语句GO TO 。其一般格式为:

GO TO 过程名

注意:只能转移到段或节的开头,不能转移到段或节的当中某一语句。段名或节名为过程名。

5.条件语句(IF):

当需要根据给出的某些条件是否满足来决定应执行哪一部分语句时,可以使用条件语句IF。

其一般格式为:

IF 条件语句组1 ELSE 语句组1

注意:句点在IF 语句中的特殊作用。

如:IF A > 0

DISPLAY A。

ADD A TO TOTAL。

DISPLAY TOTAL。

与IF A > 0

DISPLAY A

ADD A TO TOTAL。

DISPLAY TOTAL。

COBOL关系运算符:

IS GREATER THAN (>)

IS LESS THAN (<)

IS EQUAL TO (=)

NOT GREATER THAN (NOT >) (<=)

NOT LESS THAN (NOT <) (>=)

NOT EQUAL TO (NOT =)

6.停止语句(STOP):

其一般格式为:STOP RUN

常量

STOP RUN 执行后,程序停止运行,停止后不能再接着运行,如需要,可重新运行一次。

STOP 常量,表示程序暂时挂起不往下执行,显示出此常量。

7. 执行语句(PERFORM):

在一个COBOL程序中,过程部中往往有一部分语句需要执行多次。为了让重复的部分在程序中只出现一次,可以把重复的部分单独写成一段或一节(有一个段名或节名),每次执行这部分语句时转去该段,执行完转回来。这时候就需要用到执行语句(PERFORM )。

A.执行语句的一般形式:

PERFORM 过程名1

使用PERFORM语句实现循环:

(1). PERFORM 过程名1 整数 TIMES

例如:PERFORM PRINT 8 TIMES

说明:执行PRINT过程8次。

(2). PERFORM 过程名1 UNTIL 条件

例如:PERFORM READ-FILE UNTIL END-OF-FILE = “Y”

说明:执行READ-FILE过程直到END-OF-FILE等于Y.

(3).FERFORM 过程名1

VARYING 变量名 FROM 整数 TO 整数

UNTIL 条件

例如:PERFORM PROGRAM VARYING TEMP FROM 1 BY 1

UNTIL TEMP > 10.

8.习题:

1从屏幕中输入一组产品销售记录,每读入一个记录,计算出销售总额(数量X单价),循环输入记录直到用户中止输入,.然后打印出全部产品的统计数据。输入数据形式如下:

格式数据类型

(1)销售时间: YYYYMMDD 9

(2)产品编号: 9999 9

(3)产品简称: XXXX X

(4)销售总量: 9999 9

(5)单位价格: 999.99 9

提示:程序中的循环控制要使用7中所述的方法,不可以使用GOTO 语句。

六.对文件的操作

1.COBOL中文件的定义.

在程序的ENVIRONMENT DIVISION 里对用到的文件进行物理描述ENVIRONMENT DIVISION.

INPUT-OUTPUT SECTION.

FILE-CONTROL.

SELECT PHONE-FILE

ASSIGN TO "phone.dat"

ORGANIZATION IS SEQUENTIAL.

文件名: PHONE-FILE

ASSIGN TO: 将文件映射到一个具体的文件上去

ORGANIZATION IS SEQUENTIAL: 说明这个文件是有序列的ORGANIZATION IS LINE SEQUENTIAL: 文件是有序列的,每个记录为一行

2.在程序的DATA DIVISION 里对用到的文件进行逻辑描述::DATA DIVISION.

FILE SECTION.

FD PHONE-FILE

LABEL RECORDS ARE STANDARD.

01 PHONE-RECORD.

05 PHONE-LAST-NAME PIC X(20).

05 PHONE-FIRST-NAME PIC X(20).

05 PHONE-NUMBER PIC X(15).

文件名: PHONE-FILE

LABEL RECORDS ARE STANDARD.: 表明这个文件是存储在磁盘或者磁带上的

文件中的记录(RECORD)名: PHONE-RECORD

文件的记录也就是一个结构体,定义了文件的所存储的信息.

COBOL+CICS文件操作

COBOL+CICS文件操作 1.输入输出数据 非CICS: ACCEPT数据来源:终端输入和系统接收。 一般系统接收数据为日期或者时间。 DA TE--YYMMDD. DAY---YYDDD. DAY-OF-WEEK--- PIC 9. 范围1-7. TIME---HHMMSSHH,最后HH表示hundredths from midnigth. 如:DA TA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-DATE. 05 INPUT-YEAR PIC 99. 05 INPUT-MONTH PIC 99. 05 INPUT-DAY PIC 99. * PROCEDURE DIVISION. ... ACCEPT TEST-DA TE. DISPLAY TEST-DATE. ---终端输入的数据 ACCEPT TEST-DA TE FROM DA TE. --系统产生的数据 DISPLAY TEST-DATE. --输出 CICS下: 如:DA TA DIVISION. WORKING-STORAGE SECTION. 01 INFLDS. 05 INLEN PIC 9(4) COMP. 01 INPUT-NAME. 05 INPUT-FIRST PIC X(10). 05 INPUT-MIDDLE PIC X(10). 05 INPUT-LAST PIC X(10). *PROCEDURE DIVISION. ... MOVE 15 TO INLEN. EXEC CICS RECEIVE INTO(INPUT-NAME) LENGTH(INLEN) --所接收的最大长度,小于为实际,大于为异常END-EXEC. EXEC CICS SEND FROM(INPUT-NAME) LENGTH(20) --为实际长度,并非变量。输出位置为当前光标位置END-EXEC. ... GOBACK.

cobol基本语法教学内容

c o b o l基本语法

基本語法 一、COBOL基本語法 一、cobol的书写格式(每行) 1、前6列为序号区(一般不编辑) 2、第7列为标示列,仅可以写如下几个标示符。 a. “*”注释符(注释当前行的代码) b “-“字符串连接符 3、第8列---11列为A区,包括以下内容。 a 部、节名。 b 层号01 4、第12列---72列为B区,过程部的程序必须写在B区中。 5、第72以后部分不能编辑。 二、cobol的语法结构 (几大部分) 1、标示部(IDENTIFICATION DIVISION):提供程序的一般性文档说明。 2、环境部(ENVIRONMENT DIVISION): 提供程序外部有关的项目。 a.配置节(CONFIGURATION SECTION) ①.指定源计算机(SOURCE-COMPUTE). ②.目标计算机(OBJECT-COMPUTE). b. 输入输出节(INPUT-OUTPUT SECTION). 文件的物理路径的定义。 方法二:(过程部中动态指定文件) SELECT FILE-LOG ASSIGN TO SELECT-FILE ORGANIZATION IS LINE SEQUENTIAL. 在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。 3、数据部(DATA DIVISION)。 程序中的变量都在数据部中定义,Cobol中没有全局变量和局部之分。(变量的类型结构参照5.变量类型) a. 文件节(FILE SECTION) 给环境部定义的文件指定一个RECORD变量,读写文件用: FD FILE-LOG. 01 RECORD-LOG PIC X(2000). b. 工作存储节 定义程序中用到的临时变量。 a) COBOL变量定义需要加层号(表示层次关系), ·层号从01开始 如: 01 I PIC X(10). ·组合项 如: 01 WORK-AREA. 05 NUM-1 PIC 9(09).

宏病毒文档修复前备份

2、数据库的特点是( ) A、与其他软件连接 B、描述数据性质 C、数据库的用户 D、用数据字段表示实体的属性 2 、 SQL 是 A 、结构化查询语言 B 、结构化疑问语言 C 、法定查询语言 D 、法定疑问语言 3 、操作系统的作用是 A 、一种程序语言 B 、使用户能与计算机交互的界面 C 、给用户提供一个应用平台 D 、是一个应用软件的例子 4 、下列哪一种是应用软件 A 、 Fortran B、PASCAL C、Word for Windows D、Windows XP 5 、用户接口软件是为了 A 、使得用户和系统交互更方便 B、替换DOS C 、使得编程工作更加容易 D、替换应用软件 6 、 DBMS 是用来 A 、开发电子数据表 B、管理数据库中的大量数据 C 、在数据库和电子数据表之间处理大量数据 D、使一个文字处理器连接到一个电子数据表 7 、下列哪一个不是数据的类型 A 、常量 B 、变量 C、字符 D、表格 8 、下列哪一个是计算机处理方法 A 、解释 B 、编译 C、汇编 D、批处理 9 、下列哪一个不是一种数据类型 A 、字符型 B 、数值型 C、实数型 D、列表 19 、程序设计语言是用于 A 、运行计算机 B 、运行计算机而不是DOS C 、编写应用软件 D 、控制硬件和软件 20 、下列哪一个是图像文件格式 A 、 JPEG B 、 MP3 C 、 ASII D 、二进制

1.最适合于建立通讯地址簿并具有查询功能的软件是:() A.CAD应用 B.数据库软件 C.文字处理软件 D.电子表格软件 3.UNIX是一种 A.第四代程序设计语言 B.编译程序 C.个人电脑 D.多用户操作系统 5.在数学计算和科学研究中常用的程序设计语言是 A.C++ B.COBOL C.FORTRAN D.PROLOG 11.第一代程序设计语言是 A.C语言 B.机器语言 C.javascript D.脚本语言 12.数据库管理员的主要职责是 A 管理数据库和设定用户访问权限 B负责每天更新数据库中在数据 C 维护数据库运行所需的硬件设备 D 为有权访问数据库的用户提供详细的查询 13.关系数据库是 A 一系列相关在二维表 B 一系列记录 C 一系列相关文档 D 基于大型机的大型数据库 19.信息的定义是 A 存储在计算机中的数据 B 存储在数据库中的数据 C 显示在计算机屏幕上或打印出来能看到的数据 D 经过处理后得到的有用数据 10、计算机的机器语言是( ) A、第五代计算机语言 B、第一代计算机语言 C、标记性语言 D、计算机高级程序语言 17、用于数值计算和科学研究的计算机语言是( ) A、C语言 B、COBOL语言 C、FORTRAN语言 D、PROLOG语言 4、通常将有用的数据称为( ) A、数据变换 B、高级编程 C、伪代码 D、信息 7、如果你想建立一个可查询的地址簿,选择的应用软件是( ) A、分页软件 B、数据库软件 C、字处理软件 D、多媒体编辑软件 8、宏是( ) A、一种报告错误的程序 B、一种软件报告 C、一种自动触发文件的方法 D、一种高级语言编写的程序 计算机中宏又称为宏命令,即通过特殊的控制语,将一系列动作简便化;即:一种批处理的程序 10、用于进行数学计算和计算机语言是( ) A、C语言 B、COBLL C、FORTRAN D、PROLOG A、C语言 B、机器语言 C、PROLOG D、汇编语言 12、第一代计算机语言是指( ) 15、UNIX是( ) A、第四代程序语言 B、解释程序 C、应用软件 D、多用户操作系统

浅谈COBOL开发

浅谈COBOL开发 近几年,由于IBM和HITACHI等大型机力推COBOL,使COBOL在沉睡了几年以后又重新火了起来。因为本人从毕业以来,一直在做COBOL的项目,今天斗胆把毕业以来的一些经验写出来,不管对还是错拿出来大家一起讨论讨论。 COBOL语言常用的开发方式有以下几种: 1. PC机开发。这种开发方式比较灵活,可以与当今比较流行的语言进行对接。把数据库、及开发环境都可以集成到我们的PC机上。程序执行的LOG和文件都在PC机上指定目录。当今比较流行的语言如.net、 VB、 C++等编译生成的LIB文件,COBOL都可以直接调用。这种开发方式所使用的开发工具中首推日立推出的COBOL2002,还有一个比较低的版本COBOL85,COBOL2002的优势在于DB连接方面。当然由于COBOL85版本太老,本人无缘使用,但是曾经听过一位前辈说COBOL85不能进行DB连接,也就是说COBOL85的数据存储只能以文件的形式存储。COBOL2002可以设定断点(VB、.NET程序员应该比较熟悉),程序执行过程中可以单步调试,察看变量值。COBOL2002还可以记录测试路径的覆盖率,一些异常处理可以利用设定断点的方式跑到,所以这种开发方式可以出现路径覆盖率为100%的情况。但是这种开发形式的语法要求比较低,比如说代码中出现全角空格就能顺利通过编译,而相同的代码在大机上编译就会出错。 2.B/S形式大机开发。程序员在PC机上开发,代码编写完成以后,通过FTP上传工具,把代码上传到大机端。利用远程登录telnet登录大机,在命令行输入编译代码。本身程序员在编写代码过程中完全占用PC机资源,不占用大机内存资源。当程序被传到大机上以后,才占用大机资源。由于大机是多用户多线程作业,所以即使代码死循环,大机也不会停掉。而是在这个线程执行一段时间以后,压到堆栈中,执行其他线程。这种大机典型的是H9000(HITACHI9000,个别人可能误以为是HP的产品)。大机上常常把目录固定,主处理和子程序往往在不同的目录下存放。程序执行过程中无法设定断点。如果想要查看程序执行过程中的变量,只能在代码中追加DISPLAY语句,在LOG中把变量值打出来。一般来说,大机的语法要求高一些,代码里除了X型变量中和注释出现全角空格外,其他地方出现空格是绝对不能编译通过的。 3.HOST端大机开发。程序员通过个人计算机和网络和大机相连,在编写代码的过程中,占用大机资源。就是说如果你PC删除一行代码,对应大机上也要删除一行代码。编写的代码无法在PC机上进行编译,代码需要使用大机的操作系统命令进行编译和执行。代码编写操作远远没有ULTRAEDIT方便,删除、拷贝都需要系统命令。而且要进行用户登录和退出。开发担当常常用一个文本记下所有常用命令,以便开发过程使用。这种开发的典型就是IBM 的S/390

AS400 基本命令和操作

数据描述规范DDS通过文件的记录字段仅一次的说明,可定义多种访问路径,多个程序使用。 结构化查询语言SQL/400组成:(1)SQL运行支持程序(2)SQL预编译程序(3)SQL交互式接口(4)DB2 QUERY MANAGER FOR AS/400,提供菜单、填空式提示的交互式接口,允许建立、增加、维护数据,和运行报表 PDM(PROGRAMMING DEVELOPMENT MANAGER)处理源代码、对象和库 SEU(SOURCE ENTRY UTILITY)建立和编辑源文件成员STRSEU SDA(SCREEN DESIGN AID)交互式设计、创建和维护应用屏幕 RLU(REPORT LAYOUT UTILITY)交互式定义打印报表的格式分布 DFU(DA TA FILE UTILITY)快速定义、创建面向数据录入、查询或文件维护STRDFU QUERY/400获取外部描述数据库文件信息STRQRY CL(CONTROL LANGUAGE)调用AS/400的所有系统功能。简化操作,控制工作流程,设置作业运行环境等 AS/400三级存储结构 库(LIBRARY)——数据库文件(FILE)——成员(MEMBER) 一级目录——二级目录——三级目录 字段是用来描述某一属性的一组值;字段定义是对字段属性的说明 记录是把一组字段放在一起命名,用来说明某一事物;记录格式是对记录中所有字段的简单说明以及对各字段排序的说明 文件是已命名的一组记录,文件说明是对文件所有的记录格式和存取路径的说明,数据库文件分为数据文件和源文件,数据文件就是程序中使用的物理文件和逻辑文件。 物理文件(*FILE,PF-DTA):在SQL中称做表(TABLE),含有系统实际存储的数据,每个物理文件只有一个固定长度的记录格式。CRTPF 逻辑文件(*FILE,LF):在SQL中称做表(VIEW),它不含有实际数据,依附于物理文件,可以描述一个或多个物理文件的记录(JOIN逻辑文件)。CRTLF 源文件(*FILE,PF-SRC):是系统用来建立源程序(RPGLE、CLLE、C)或源物理文件(PF)等目标的源说明CRTSRCPF 库名:存放该应用系统的源程序库就命名为SGM SRC,存放该应用系统目标的库可命名为SGM OBJ CRTLIB 源文件名:存放程序的源文件叫R+PGM+SCF,存放物理文件和逻辑文件定义的源文件叫R+DTA+SCF 物理文件/逻辑文件名:学生成绩表命名为STGD+A其中一个逻辑名为STGD L1 程序名:SGM+0400+R‘R’:RPGLE,‘C’:C,C或CL,‘R’:报表等 DDS行中对物理文件有效的位置是: 6:A=DDS 17:R=RECORD NAME ,K=KEY FIELD NAME,BLANK=FIELD NAME)

COBOL语言基础教程

cobol语言基础培训教程 2009年04月23日 | 5:23 下午分类:大型机|Mainframe | 标签:cobol 数据类型、COBOL 程序举例、cobol入门、cobol教程、cobol语言、大型机培训 | CHAPTER 1 COBOL 概述 COBOL 是Common Business Oriented Language 的缩写。它不仅是商业数据处理的理想语言, 而且广泛用于数据管理领域,因此COBOL 语言也被称为”用于管理的语言”。 一。COBOL 语言的特点 最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑关系,大量的分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。 二。COBOL的组成部分: 1。标识部(IDENTIFICATION DIVISION):用于标识程序名。 2。环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。 3。数据部(DATA DIVISION):用于说明程序中涉及的所有数据。 4。过程部(PROCEDURE DIVISION):是程序的核心部分,它决定计算机应进行什么操作。 三。最简单的COBOL 程序举例: COL 1 —6 7 8 12—72 73—80 IDENTIFICATION DIVISION。 PROGRAM-ID。 PSAMPLE1。 ENVIRONMENT DIVISION。 DATA DIVISION。 PROCEURE DIVISION。 DISPLAY ’THIS IS A COBOL PROGRAM.’ STOP RUN。 四。COBOL 源程序的书写格式: 第1 至 6 列为”标号区”。第7列为”续行标志区” 第8至此11列,称为”A区”。程序中有些内容如部头,节头,段头,层号 01,层号 77 及文件 描述符FD等应从A区开始写。 第12至此72列,称为”B区”。写程序中的正文部分。如过程部中的句子只能从B区开始写。 第73至80列,称为”注释区”。 五。COBOL字符集包括:

cobol基本语法

基本語法 一、COBOL基本語法 一、cobol的书写格式(每行) 1、前6列为序号区(一般不编辑) 2、第7列为标示列,仅可以写如下几个标示符。 a. “*”注释符(注释当前行的代码) b “-“字符串连接符 3、第8列---11列为A区,包括以下内容。 a 部、节名。 b 层号01 4、第12列---72列为B区,过程部的程序必须写在B区中。 5、第72以后部分不能编辑。 二、cobol的语法结构 (几大部分) 1、标示部(IDENTIFICATION DIVISION):提供程序的一般性文档说明。 2、环境部(ENVIRONMENT DIVISION): 提供程序外部有关的项目。 a.配置节(CONFIGURATION SECTION) ①.指定源计算机(SOURCE-COMPUTE). ②.目标计算机(OBJECT-COMPUTE). b. 输入输出节(INPUT-OUTPUT SECTION). 文件的物理路径的定义。 方法二:(过程部中动态指定文件) SELECT FILE-LOG ASSIGN TO SELECT-FILE ORGANIZATION IS LINE SEQUENTIAL. 在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。 3、数据部(DATA DIVISION)。 程序中的变量都在数据部中定义,Cobol中没有全局变量和局部之分。(变量的类型结构参照5.变量类型) a. 文件节(FILE SECTION) 给环境部定义的文件指定一个RECORD变量,读写文件用: FD FILE-LOG. 01 RECORD-LOG PIC X(2000). b. 工作存储节 定义程序中用到的临时变量。 a) COBOL变量定义需要加层号(表示层次关系), ·层号从01开始 如: 01 I PIC X(10). ·组合项 如: 01 WORK-AREA.

COBOL语言测试试卷(一)

COBOL语言测试试卷(一) 一、选择题(共10分) 1、关于COBOL语言,下述描述中正确的是:() A.COBOL可以用于开发操作系统。 B.COBOL还可以用于开发编译器。 C.COBOL主要用于编写面向商业的应用程序。 D.如今比较少用COBOL开发应用程序。 2、不属于COBOL程序的部的是:() A.过程部。 B.程序部。 C.数据部 D.环境部 3、COBOL代码中最小的单位是:() A. Division B. Section C. Sentence D. Statement 4、COBOL程序中的数据在哪个部中定义?() A.过程部。 B.环境部。 C.数据部 D.定义部 5、COBOL程序中如果有环境部的话,应置于:() A.过程部之后定义部之前。 B.定义部之后过程部之前。 C.定义部之后数据部之前。 D.数据部之后过程部之前。 6、定义部中不可缺少的段名是:() A.PROGRAM-ID B.AUTHOR C.FILE SECTION D.PROGRAM 7、COBOL程序中一般变量在哪里定义?() A.定义部 B.环境部 C.数据部的FILE SECTION D.数据部的WORKING-STORAGE SECTION 8、在过程部中,可以没有的是:() A.SECTION B.PARAGRAPH C.SENTENCE D.STATEMENT 9、当一个COBOL编译器区分A区和B区的时候,必须从B区开始的是:() A.段名 B.节名和01级数据 C.部名 D.过程部里的Sentences。 10、在COBOL程序中,下列用户自定义的名称有效的是:() A.This result B.-Grosspay C.Grosspay- D.Gross-pay 二、判断题(共20分)

COBOL经典面试题库(中文)

COBOL经典面试题库 Q1:列举COBOL的DEVISION A1:标识部,环境部,数据部,过程部 Q2:COBOL有哪些可用的数据类型 A2:字符型(这里指的是包含字母和数字),字母型,数字型 Q3:INITIALIZE这个词做了些什么 A3:将字母,字符,数字区域都置成空格(置空),将数字区置0,FILLER和OCCURS DEPENDING ON项不处理 Q4:77层有什么作用 A4:基本层数据项,不能用做细分别的层,也不能被细分 (来源:) Q5:88层有什么作用 A5:条件逻辑层 Q6:66层有什么作用 A6:重命名层 Q7:IS NUMERIC这个子句怎么确定(也就是说确定句子的真值) A7:IS NUMERIC用在字符项,带符号数字,浮点数,不带符号数。如果目标项只含0~9则返回TRUE。但是,如果待测项目是个带符号数,那么他就含有0-9还有+和- 05 ARRAY1 PIC X(9) OCCURS 10 TIMES. 05 ARRAY2 PIC X(6) OCCURS 20 TIMES INDEXED BY WS-INDEX Q8:COBOL中怎么建表/数组 A8:如上. Q9:OCCURS 子句能用在第一层吗 A9:不能 Q10:索引和下标有什么区别 A10:下标可以指定数组中任意中位置的元素(只要知道其下标),下标只能是数字型常量或者数字型变量(但是不能在指定的时候修改,如:A(K+1)这样是不行的,要修改的话要在指定的外部改,如:ADD 1 TO K,而索引的话是从表头/数组头开始检索(以BY N的指定检索规律往后滚) 再者,索引只能通过PERFORM, SEARCH 和SET来修改,如果要在一个表中使用SEARCH, SEARCH ALL,那这个表就要有索引(因为SEARCH, SEARCH ALL的参数中指定索引,所以即使其有很多限制还是得用它)

大型机COBOL程序之简易报表打印

COBOL实验报告2 一,实验目的 1,能够利用cobol程序实现一个报表的编辑和制作。 2,能够对文件进行操作,比如说:打开,关闭,读和写3,了解COBOL的常用语句和一些常用的数据类型, 能够利用编辑型数据实现数据的友好输出。 4,能够运用sdsf修改程序中的错误 5,学会编写稍微复杂的COBOL程序。 二,实验原理和内容 1,修改UTE20.COBOL.MURACH.EXERCISE(RPT1000X) 使之正常运行。 2,在RPT1000原有基础上改进成增强的报表打印程序。 3,利用给定的数据和格式独立的制作一个报表 三,实验环境 PC机和TSO下的ISPF环境 四,实验步骤

1,步骤1和步骤2:修改 UTE20.COBOL.MURACH.EXERCISE(RPT1000X) 使之正常运行,并在此基础上改进成增强型的报表打印程序。 1.1 代码: 000100 IDENTIFICATION DIVISION. 000200 000300 PROGRAM-ID. RPT1000. 000400 000500 ENVIRONMENT DIVISION. 000600 000700 INPUT-OUTPUT SECTION. 000800 000900 FILE-CONTROL. 001000 001100 SELECT CUSTMAST ASSIGN TO CUSTMAST. 001200 SELECT SALESRPT ASSIGN TO SALESRPT. 001300 001400 DATA DIVISION. 001500 001600 FILE SECTION. 001700

COBOL试题答案

一、选择题(15分)(含多项选择) 1、不属于COBOL程序的部的是:(B ) A.过程部。 B.程序部。 C.数据部 D.环境部 2、COBOL程序中的数据在哪个部中定义?(C ) A.过程部。 B.环境部。 C.数据部 D.标识部 3、COBOL程序中如果有环境部的话,应置于:(C ) A.过程部之后标识部之前。 B.标识部之后过程部之前。 C.标识部之后数据部之前。 D.数据部之后过程部之前。 4、标识部中不可缺少的段名是:(A ) A.PROGRAM-ID B.AUTHOR C.FILE SECTION D.PROGRAM 5、COBOL程序中一般变量在哪里定义?(D ) A.标识部 B.环境部 C.数据部的FILE SECTION D.数据部的WORKING-STORAGE SECTION 6、下列关于过程部的说法正确的是:(C ) A.过程部中可以不定义节但是必须定义段 B.过程部中可以不定义段但是必须定义节 C.过程部中可以不定义节和段,节和段是根据需要定义的 D.所有程序都是在过程部中以STOP RUN来结束的 7、下面是COBOL合法数据名的是:(ABD ) A.W ANG B.TAN-1 C.12345 D.END-OF E.PROGRAM F.GROSS-$ G.SECTION 8、关系运算符的优先顺序正确的是(A ) A.NOT > AND > OR B.OR> NOT > AND C.AND > NOT > OR D.NOT > OR > AND 9、下记语句表示A/B=>C的是(B ) A.DIV A INTO B GIVING C. B.DIV A BY B GIVING C 10、下记哪些方法可以显示出…ABCD?六个字符(A,C ) A. PIC X(6) VALUE "'ABCD'". 说明:V ALUE后依次为空格双引号单引号ABCD单引号双引号 B. PIC X(6) V ALUE ''ABCD''.说明:V ALUE后依次为空格单引号单引号ABCD单引号单引号 C. QUOTE ?ABCD? QUOTE 11、COBOL对文件的操作以为单位的(B ) A.整个文件 B.记录 C.字段

实验五COBOL程序的编译与运行

实验五 COBOL程序的编译与运行 实验所属系列:操作系统高级试验 实验对象:本科 相关课程及专业:大型机系统管理,计算机专业 实验类型:课程设计 实验时数: 2 ●实验目的 熟悉PCOM及ISPF环境;熟悉在大机系统编译连接与运行基本COBOL 程序的方法。 ●实验内容与要求 1.首先使用由老师分配的IBM的主机用户名和密码登陆大型机 2.建立相应数据集: 1)建立分区数据集<用户名>.E,根据下图初始化数据集的参数,该参 数只是参考,需要根据系统实际或者指导老师要求进行调整。 2)用同样方法建立分区数据集<用户名>.

3)建立名为<用户名>.的数据集,参数Record format改为U。 3.在数据集<用户名>.E中建立一个member,并输入一下COBOL程序: 4.输入编译JCL程序,并编译源程序为目标文件 1)在<用户名>.中建立名为CTEST1的MEMBER,然后在其中输入如 下JCL程序: 注意,程序中的斜体部分应该换成实验者的用户名。 2)然后输入SUB提交该JCL程序,返回值如果不是0,请检查JCL程 序是否有错。若有错,修改后重新提交。输出结果可以在SDSF的H 里面看见。 5.输入运行的JCL程序,并运行编译结果 1)在<用户名>.中建立名为CTEST1的MEMBER,然后在其中输入如 下JCL程序:

注意,程序中的斜体部分应该换成实验者的用户名。 2)然后输入SUB提交该JCL程序,返回值如果不是0,请检查JCL程 序是否有错。若有错,修改后重新提交。输出结果可以在SDSF的H 里面看见。如果输出不是想要的结果,请检查COBOL源程序。 6.控制台方式运行编译程序 1)在ISPF首页选6,输入如下命令: allocate fi(sysout) fi(sysin) da('*') 并运行。该命令的目的是定义标准输出和输入。 2)进入<用户名>.数据集,在名为TEST1的MEMBER前输入CALL后 回车。即可以在屏幕上看见运行结果。 实验思考 1.为什么数据集<用户名>.的参数Record format要设为U?

VSAM文件笔记

要在COBOL中使用文件,要在3个不同的部中放上信息。 环境部,要有程序使用的每个文件的文件控制项目(FILE-CONTROL)。这个项目将程序中使用的文件名与程序外的实际文件联系起来。这些项目还定义文件的组织和访问方式。 数据部,要有每个文件的文件描述符(FD)项目,就是数据定义。 过程部,放上处理语句,OPEN,READ,WRITE,DELETE等。 环境部中主要是FILE-CONTROL和I-O-CONTROL.I-O-CONTROL很少使用。 SELECT[OPTIONAL]file-name ASSIGN TO DEV/FILE [RESERVE N[AREA/AREAS]] [FILE STATUS IS VAR] SELECT必须是第一句,其他顺序无关。file-name是程序中传递使用的文件名,相当于实际文件的一个别名。OPTIONAL用于执行可能不存在的文件。 ASSIGN将file-name连接到实际的外部设备或文件。(TO好像可以省略。)RESERVE指定文件缓冲区。 FILE STATUS指定一个变量存放文件状态,这个变量应该已在WORKING-STORAGE SECTION中定义。 对于顺序文件,还有声明如下: [ORGANIZATION IS SEQUENTIAL]可选,缺省为顺序组织文件 [ACCESS MODE IS SEQUENTIAL]可选。顺序文件只允许顺序访问[PADDING CHARACTER IS char]指定文件在固定块长设备上时键块所用的字符,char为一个字符的数据项。 [RECORD DELIMITER IS STANDARD/usr-define]指定如何确定变长纪录的长度。 顺序文件例子: SELECT file-name ASSIGN TO"/usr/file1" FILE STATUS IS file-status 对于相对文件,还有声明如下: [ORGANIZATION IS RELATIVE]是相对文件必须的 [ACCESS MODE IS SEQUENTIAL[RELATIVE KEY IS data]]或者 [ACCESS MODE IS RANDOM/DYNAMIC RELATIVE KEY IS data] 访问方式有3种,缺省是SEQUENTIAL。 RELATIVE KEY可选。如果存在,则文件读取操作顺利完成后,data用所读取纪录的关键字更新。data应为文件的纪录区中没有的整数数据项。 相对文件的例子: SELECT file-name ASSIGN TO"/usr/file2" ORGANIZATION IS RELATIVE ACCESS MODE IS DYNAMIC RELATIVE KEY IS DAY-NUMBER FILE STATUS IS file-status 对于索引文件,还有声明如下: [ORGANIZATION IS INDEXED]是索引文件必须的 [ACCESS MODE IS SEQUENTIAL/RANDOM/DYNAMIC]RECORD KEY IS data1

CL基本命令系统操作

400操作入门 CL基本命令系统操作 常使用的指令(AS/400 指令均是从英文单字取 3 个字, 如 Work with Active Job ==> WRKACTJOB) 1. WRKACTJOB(整个系统) WRKJOB(单一工作) 检示系统目前的使用状态有那些 Jobs 正在运行 , CPU 使用情形及更改 Jobs 属性(运行等级先后次序), 回操作或程序错误讯息, 检示单一Job 的运行状态,亦可终止 JOB运行(End Job). 2. WRKWTR STRPRTWTR ENDWTR 打印机管理 (Wrok with Writer) 打印机激活 (Start Printer Writer) 打印机终止 (End Writer) 3. WRKSYSSTS (Work with System Status) 检示系统资源 RAM 目前的使用状态.可动态调整资源的分配以取得系统运行最佳化. 4. WRKSPLF (Work with Spooled File) 报表指定打印印表机, ⒋? 删除. 5. WRKJOBSCDE (Work with Job Schedule Entery) 设定工作排程时间 6. Go Power 设定开关机时间 7. SAVLIB (Save Library) SAVOBJ(Save Object) 储存程序馆 --> RSTLIB : 回复程序馆 储存对象 --> RSTOBJ : 回复对象 8. WRKCFGSTS *LIN (线路) (Work with Configuration Status)

WRKCFGSTS *CTL (控制器) WRKCFGSTS *DEV (工作站) 检示及管理激活或终止通信线路使用情形 , 且会自动带出远程控制器及工作站使用情形. Status 状态 Vary on pending 等待联机 Varied On 已联机系统处理中 Active 正常作业中 Varied Off 切断联机 , 此时无法联机 , 需要将线路(Line),控制器(Controller),工作站(Device)设定至 Vary on pending 才可以联机. 在将显示(Display)工作站 Varied Off 前 , 先从画面检视该工作站是否仍有 残存 Job 挂在该工作站 , 若有则需将 Job 强迫结束 (ENDJOB) ,否则无法将 工作站 (Device) 及及控制器 (Controller) Varied Off. 显示(Display)工作站在被 Varied on 后 , 状态会由 Varied off --> Vary on pending , 此时若该显示(Display)工作站有开机, 状态会由 Vary on pending --> Signondisplay, 若 User 输入 ID 及 Password , 系统会以该显示(Display)工作站名称产生Job, 状态会由 Signondisplay--> Active. 在将印表机(Printer)工作站 Varied Off 前 , 先从画面检视该工作站是否仍 有 Writer 挂在该工作站 , 若有则需将 Writer 强迫结束(ENDWTR) ,否则无法将工作站 (Device) 及控制器 (Controller) Varied Off.印表机(Printer)工作站被 Varied on 后 , 状态会由 Varied off --> Vary on pending ,此时若该印表机(Printer)工作站有开机, 状态会由 Vary on pending --> Varied On , 待激活印表机(STRPRTWTR)后 ,系统会以该印表机(Printer)工作站名称于 QSPL 子系统下产生印表机(Printer)工作站 Job , 状态会由 Varied on --> Active. 9. STRPDM 激活 AS/400 程序开发工具 WRKLIBPDM 针对整个链接库所有对象 WRKOBJPDM 针对链接库之单一对象 WRKMBRPDM 针对档案数据成员 以上功能均可对对象(档案)作建立, 复制, 搬移, 删除 10. CPYF(Copy File) 拷贝档案数据成员, 可新增或取代记录 11. WRKMSGQ (*QSYSOPR) (Work with Message Queue)

cobol学习笔记

cobol学习笔记(1) COBOL入門 COBOLとは? 2010/06/29 16:35 COBOL面向商业的通用语言 (Common business Oriented Language) コボル ? 1960.04 CODASYL-60 ? 1968. ANSI COBOL(COBOL68)第1次規格 ? COBOL74 第2次規格 ? COBOL85 第3次規格 ? COBOL2002 第4次規格 COBOL是Common Business-Oriented Language(公用面向商业的语言)的缩写,主要供数据处理、数据收集及分析之用。COBOL自60年代初开始广泛应用于计算机应用领域(商业和其他领域)。事实上,除了商业之外,各种管理工作都广泛使用COBOL,如各种统计工作,财会工作,企业计划编制,作业制度,情报检索,人事管理等。COBOL针对商业世界的使用,是真正商用应用程序开发的首选语言。 1.适于数据处理领域。 2.采用英语语法的高级语言,可读性、可维护性、可移植性较强。 3.通用性强,标准化程度较高。 4.结构严谨,层次分明。 5.缺点是比较繁琐。 cobol的书写格式(每行) 1、前6列为序号区(一般不编辑) 2、第7列为标示列,仅可以写如下几个标示符。 a. “*” 注释符(注释当前行的代码) b “/“ 注释符(注释当前行的代码,程序编译时,强制程序清单另起一页,不建议使用) c “-“ 字符串连接符 d “D” DEBUG行标示符(程序为DEBUG模式时,标有该标示符的语句行代码执行,否则和注释行效果一样) 3、第8列---11列为A区,包括以下内容。 a 部、节名。 b 层号01 4、第12列---72列为B区,过程部的程序必须写在B区中。 5、第72以后部分不能编辑。 cobol学习笔记(2)COBOL的程序结构 IDENTIFICATION DIVISION 标识部見出し部 2010/06/29 20:44 COBOL程序由4部(DIVISION)组成:IDENTIFICATION DIVISION.(标识部)、ENVIRONMENT DIVISION.(环境部)、DATA DIVISION.(数据部)、PROCEDURE DIVISION.(过程部),而每个部又由若干节 (SECTION)组成。

8.2.7 包含有输入输出处理过程的SORT语句排序[共3页]

142 第8章 数据的排序与合并COBOL * PROCEDURE DIVISION. SORT SORT-PROC-FILE ON ASCENDING KEY S-KEY USING IN-FILE OUTPUT PROCEDURE IS SORT-OUTPUT-PROC. /*此处指明输出处理过程*/ STOP RUN. * SORT-OUTPUT-PROC. RETURN SORT-PROC-FILE AT END SET END-OF-RECORDS TO TRUE. PERFORM UNTIL END-OF-RECORDS DISPLAY 'SORTED-REC :' SORT-PROC-REC RETURN SORT-PROC-FILE AT END SET END-OF-RECORDS TO TRUE END-PERFORM. 关于排序中的输出处理过程,还有以下几点需要注意。 在排序输出处理过程中,至少需要包含一条RETURN 语句。RETURN 语句使每一条排序后的记录能够被输出处理过程所使用。RETURN 语句作用于排序中间文件,就好比READ 语句作用于输入文件。 可以使用RETURN INTO 语句替代RETURN 语句。当使用RETURN INTO 语句时,记录将返回到工作存储节或一块用于输出的区域。 在RETURN 语句中,可以使用A T END 或者END-RETURN 短语指明返回结束后的操作。其中A T END 短语表示在所有记录RETURN 完毕后执行其后的操作。END-RETURN 短语则相当于一个强制终止符,此处直接结束RETURN ,并执行其后的操作。 8.2.7 包含有输入输出处理过程的SORT 语句排序 前面分别介绍了排序中的输入输出处理是如何编写的。此处将把这两种处理过程综合应用到使用SORT 语句进行的排序之中。通过综合应用,加深对以上两种处理过程的掌握,同时巩固并扩充应用数据排序的能力。 下面结合一个具体实例进行讲解。仍然以此前的员工信息文件为例,此处在原由的基础上,新增一个员工状态的数据项。假设新的员工信息文件内容如下。 1235 ZHU BO WU HAN 430074 A 1024 WU GUO JUN BEI JING 100085 A 1346 ZHANG XIANG S HEN ZHEN 518057 N 1005 XIE FEI WU HAN 430023 A 1253 XIE FEI WU HAN 430022 A 1028 ZHENG GANG BEI JING 100085 N 1204 ZOU LI QIANG SHANG HAI 201620 A 1536 LING CHEN BEI JING 100080 N 1791 TIAN BO SHANG HAI 201821 N 本例要求仅对员工状态信息为“A ”的员工记录数据进行排序。同时,在排序完成后,要求将所有的员工姓名转换为用小写字母表示,最后再写入排序输出文件中。排序要求以员工姓名作为第一关键字,员工工号作为第二关键字,全部用升序排列。实现以上功能的完整

Cobol基本语法总结

コボル基本語法 一、COBOL基本語法 compla項目使用的Cobol是Micro Focus 公司生产的Cobol,采用在HP-UNIX上运行。 一、cobol的书写格式(每行) 1、前6列为序号区(一般不编辑) 2、第7列为标示列,仅可以写如下几个标示符。 a. “*”注释符(注释当前行的代码) b “/“注释符(注释当前行的代码,程序编译时,强制程序清单另起一页,不建议使用) c “-“字符串连接符 d “D”DEBUG行标示符(程序为DEBUG模式时,标有该标示符的语句行代码执行,否则和注 释行效果一样) 3、第8列---11列为A区,包括以下内容。 a 部、节名。 b 层号01 4、第12列---72列为B区,过程部的程序必须写在B区中。 5、第72以后部分不能编辑。 二、cobol的语法结构(几大部分) 1、标示部(IDENTIFICATION DIVISION):提供程序的一般性文档说明,本项目只保留程序名 (PROGRAM-ID)一项。 2、环境部(ENVIRONMENT DIVISION): 提供程序外部有关的项目。 a.配置节(CONFIGURATION SECTION) ①.指定源计算机(SOURCE-COMPUTE). ②.目标计算机(OBJECT-COMPUTE). ③.设置debug模式(SOURCE-COMPUTE H9000V WITH DEBUGGING MODE) ④. 指定读环境变量设置. SPECIAL-NAMES. ENVIRONMENT-VALUE IS CNS-ENV-PARM ENVIRONMENT-NAME IS CNS-ENV-NAME. b. 输入输出节(INPUT-OUTPUT SECTION). 文件的物理路径的定义。 方法一:(写死文件路径) SELECT FILE-LOG ASSIGN "/usr3/WSI/commonlog/WSI1101.log" ORGANIZATION IS LINE SEQUENTIAL. 方法二:(过程部中动态指定文件) SELECT FILE-LOG ASSIGN TO SELECT-FILE ORGANIZATION IS LINE SEQUENTIAL. 在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。 方法三:(环境变量中动态指定文件)

cobol 知识点集锦

cobol 知识点集锦 COBOL数据类型 计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联 机程序和联机计息程序是用IBM 370汇编语言实现的。为方便汇编语言读写,在VSAM文 件存储的数据中,数据存放格式进行了特殊的定义。如日期存放采用X(3)型,01年03月15日,存入EBCD码为X‘010315’。在进行年度计息时,为了实现各种复杂的运算工作,一般采用COBOL语言来实现各种运算。而采用COBOL语言读取X(3)型数据时,读出的是字符型数据,不能直接进行运算,必须转换为COBOL数据类型的数据后才能进行相应处理。 如刚才的X‘010315’,需要转换为内部十进制数据X‘0010315C’。本文介绍一种用COBOL语言实现字符型X(3)与内部十进制数据相互转换的方法。 由X(3)型转换为内部十进制 由于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST后,再追加 定义COBOL语言的最小数据单元X‘000C’,即十进制12。由于重定义DATE-CASE为DATE-CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将DATE-CHANGE除以1000。 首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容: WORKING-STORAGE SECTION. 01 DATE-CASE. 02 DATE-FIRST PIC X(3). 02 DATE-SIGN PIC 9(4) COMP VALUE 12.;定点二进制数 01 DATE-CHANGE REDEFINES DATE-CASE PIC 9(9) COMP-3. ;内部十进制数据 01 DATE-HEX PIC X(3). ;转换前数据 01 DATE-DEC PIC S9(7)COMP-3 . ;转换后数据 然后,在过程部PROCEDURE DEVISION.中加入如下语句: PROCEDURE DEVISION. MOVE DATE-HEX TO DATE-FIRST . COMPUTE DATE-CHANGE = DATE- CHANGE / 1000.

相关主题
文本预览
相关文档 最新文档