COBOLⅠ-第2章 ID ENTIFICATION DIVISION 至 DATA VISION(中文翻译版)

第二章

2.1例题1将软盘里的进货数据输入硬盘做成进货文件。

⑴输入输出数据形式

(a)输入数据形式

(b)输出数据形式

(注)本书中,数据形式以下列符号表示。

X……英数字项目

N……日语项目

9……数字项目(ZONE形式)

P……数字项目(PACK形式)

⑵处理标准

①输入文件以50记录/存储块为单位输出

②单价,采购数量,采购额以PACK形式输出

③采购额用下列公式求出

采购额 = 单价 * 采购数量

2.2IDENTIFICATION DIVISION

IDENTIFICATION DIVISION被叫做标识部,是COBOL第一个记述的DIVISION这里,要记述的是程序名。

2.2.1IDENTIFICATION DIVISION的构成

⑴一般的书写方法和编程上的注意问题

(a)约定用语与使用者用语

一般情况下,用英文大写字母表示的单词属于COBOL中的约定用语。因为约定用语的写法及意义都是事先决定的,在记述中一定要按照规定书写。

同时,一般情况下,用假名及汉字记述的某种语言,被称为COBOL的使用者用语。使用者用语虽然可以根据规则随意书写,但不能像约定用语一样的写法。

(b)空格,终止符

为区分语句(约定用语,使用者用语),必须有1个字以上的空格。

在要求的地方一定要用终止符,终止符后,要求有1个字以上的空格。

2.2.2PROGRAM-ID

PROGRAM-ID记述程序名。

(ⅰ)程序名

程序名即为程序起的名字,依照下列规则指定,

①可以使用的文字有英文,数字,以及连字符。

②开头的文字必须是英文

③文字的长度在8个字之内

(ⅱ)PROGRAM-ID与程序名后必须有终止符

终止符后必须有1字以上的空格。

练习题2-1

[1]下面的文章是关于到现在为止所学内容的。在()中填入适当的语句。

COBOL中最初记述的DIVISION是(①)DIVISION。

(①)DIVISION,是指定(②)名。

在COBOL程序中记述的语言,可以遵循规则任意写入的是(③),写法及意义已经决定了的是(④)。

[2]在下面的程序名中,选出没有遵循规则的,并说明理由。

2.3 ENVIRONMENT DIVISION

ENVIRONMENT DIVISION被叫做环境部,COBOL中第二个记述的DIVISION、在这里指定输入输出存储及装置。

2.3.1ENVIRONMENT DIVISION的构成

(ⅰ)SELECT必须记述每一个使用的存储

(ⅱ)SELECT记述在12位以后,为让ASSIG以后更便于阅读,写在下一行的12位以后。

(ⅲ)文件名

文件名,是为系统中使用的文件所起的名字。一般在系统设计阶段就被决定了。名字根据下列规则指定。

①可以使用的文字有,英文,数字,连字符,长度在30个文字以内

②使用日文文字时,长度在13个文字以内。

③最少包含一个英文,日文文字

④连字符不能用在开头和结尾

(ⅳ)理论装置名称

理论装置名称,是为在程序中所使用的文件的设备起的名字。在系统设计阶段即被决定。写法如下:

SYSx……

x……是由数字,英文组成的1~5个文字的文字列。

(注)但是要注意x……所指定的文字,根据系统不同有所差别。

(ⅴ)装置级别

(ⅵ)装置名

(ⅶ)编成

所谓编成,也可以说是文件的构成,为了使数据处理更有效率,根据处理目的的不同,有不同的编成方法。本书中,全部使用顺编成。

顺编成文件是,从文件的开头起将记录按顺序记录,因此输出记录时也要按顺序从头输出,顺编成文件………………………………S

(ⅷ)理论装置名,装置级别,装置名,编成间的连字符的前后不能加空格。

练习题2-2

[1]下面的文章是关于到现在为止所学内容的。在()中填入适当的语句。

ENVIRONMENT DIVISION中,(①)SECTION被记入,指定输入输出文件和装置。

(①)SECTION的下一行写(②),在下一行写SELECT,为程序中所使用的(③)起名。SELECT以后的指定,所有使用的文件都要进行说明。

[2]下列文件名中,选择不符合文件名规则的,并说明理由。

[3]用下列条件SELECT以后的编程。

问题1 SELECT记述时,必须按输入文件,输出文件的顺序进行吗?

答:先写哪个没有关系,在本书中统一按照输入文件,输出文件的顺序记述。

问题2 在文件编成中,除了顺编成还有什么?

答:还有索引顺编成文件,直接编成文件,VSAM编成文件等。

详细情况参见介绍资料。

2.4 DATA DIVISION

DATA DIVISION被称作数据部分,是COBOL中第三个记述的DIVISION。

在这里,用ENVIRONMENT DIVISION指定文件的特性,文件中记录的构成,定义处理中必要的数据项目。

2.4.1DATA DIVISION的构成

DATA DIVISIOILE是由FILE SECTION和WORKING-STORAGE SECTION构成。

2.4.2FILE SECTION

FILE SECTION中记述着每个文件中的FD开始的文件记述和从01开始的记录记述。在文件记述中指定使用文件中的模块里的记录个数,在记录记述中,指定记录的构成。

2.4.3文件记述

文件记述,指定1个存储块中记录的数量。

(ⅰ)表示文件记述开始的FD,从第8位开始写,文件名从第12位开始写。

(ⅱ)文件名,必须是ENVIRONMENT DIVISIOT中的SELECT所指定的文件名。

(ⅲ)BLOCK 整数 RECORDS

1个存储块中记录的数量被指定为整数。非存储块的记录的时候则省略。

(ⅳ)文件记录的最后一定要有终止符。

(注)一般形式的大括号

用[]包围起来的部分,表示可以省略。编程时“[]”的符号不要记述。

练习题2-3

[1]下面的文章是关于到现在为止所学的内容。在()中填入适当的语句。

⑴DATA DIVISIOILE的写法

DATA DIVISIOILE由(①)SECTION和(②)SECTION两个SECTION组成。(①)SECTION,记述文件的特性,以及这个文件中记录的构成。

所谓的记述文件特性的部分(③),记述记录的构成部分(④),是对每个文件进行说明。

⑵文件的记述

文件记述的开始,从第8位起写(①),从第12位写由ENVIRONMENT DIVISION的SELECT指定的(②)。

记录被块读写的时候,先写(③),之后将1个块中记录的数量指定为整数,然后写(④)。

2.4.4记录记述的作用

从文件中输入记录时,记忆装置中需要有一个场所可以放置1个记录大小的数据。这个场所被称为输入区域。向文件中输出记录时,也需要有一个场所来放置输出的1记录大小的数量,这个场所被称为输出区域。

输出区域与输入区域,是按照记录记述的指定得到。

2.4.5记录的构成

记录记述,是说明所使用的文件的记录构成。如下所示,以工资的记录为基础,考虑记录的构成。

工资的纪录,各个项目的从属关系用数字表示,如下图所示

⑴层号

在COBOL中,为构成记录的各个项目标上序号,表示从属关系。这个序号就叫做层号。

⑵基本项目

在项目中,不可能再更细的划分的项目叫做基本项目。基本项目的形式和长度都必须指定。在工资的记录的例子中,部,科,姓名,原始工资为基本项目。

⑶集团项目

将若干个项目集合在一起叫做集团项目。集团项目的形式和长度没有指定。

在工资记录的例子中,工资记录,是集团项目。

⑷记录构成的表示方法

项目的从属关系用层号表示。

基本项目,指定项目的形式和长度。

2.4.6记录记述

在记录记述中,指定记录中项目的从属关系,各个项目的形式长度以及为项目起名。

(ⅰ)这个记述,每个项目都要进行。

(ⅱ)层号

所谓层号,表示1个记录中项目的从属关系,可以使用01~49,记录名必须用01。

层号01必须从第8位开始写。02~49从第8位以后开始写。

(ⅲ)记录名与数据名

记录名,是为记录取的名字。而数据名,是为在处理中所使用的项目起的名字,一般在系统设计时决定,写法与文件名写法相同。

①可以使用的文字有,英文,数字,连字符,长度在30个文字以内

②使用日文文字时,长度在13个文字以内

③英文,日文最少包含一个文字

④连字符不能用在开头和结尾

⑴层号

01必须从第8位开始写,02~49只要是写在第8位以后就可以,为阅读方便,尽量减少文字。

像01,03,05这样,取不连接的号也可以。

本书中所使用的记录号,数据名的起名方法

在本书中,记录名数据名使用日文文字。

在名字的开始,为了明表示出是属于哪个存储的数据,输入文件用I(input),输出文件用O(output)用连字符加在名字上,要起容易理解数据内容的名字。在数据名中使用的I-,O-是日文文字中的英文,因此在编程用纸上1个文字占2位。

⑵数据的形式及长度

(ⅰ)PICTURE形式的指定,基本项目必须指定,集团项目不需指定。形式上,数据的形式和长度都要指定。

(ⅱ)形式

英数字项目——X表示文字的1位

数字项目——9 表示数字的1位

S 表示符号

V 表示小数点的位置

日文项目——N 表示日语文字的1位

(ⅲ)COMPUTATIONAL-3表示为PACK形式。

(ⅳ)PIC,PICTURE,COMP-3都是COMPUTATIONAL-3的简称。本书使用简称。

(a)英数字项目

根据指定,英数字项目在主存储器内保有5位的区域。这个区域被命名为数据1, 1个字节内可放入1个字符的数据。

(b)ZONE形式的数字项目

根据这个指定,保有5个字节的区域,数字的1位放入1个字节内。S和V是不占位的(隐含的符号、小数点)。

程序中使用的数据不带小数点。比如,数据+123、45,小数点省略变为+12345。因此在程序中,在应该有小数点的地方放置指定的V。

指定S,作为数据拥有的符号,不指定S,数据就与它前面的符号脱离了关系,全部被认为是正数加以使用。在ZONE形式时,符号隐含在最后一位的数据中。

用于计算的数字项目要指定S。

根据这一指定,保有5位的区域。

如果是没有小数点的数字,不使用表示小数点的V也可以。省略V,假定小数点在最右端。

(c)PACK形式的数字项目

根据上述指定,保有PACK形式5位数字的区域(3个字节),1个字符放入2位数字。PACK形式时,右边必须有符号(右面4个的区域为符号部)。V省略,也是假定小数点在符号部前面。

(d)日语项目

根据这个指定,日语项目保有3位的区域,2个字节放入1个汉字。

[例题FILE SECTION的编程]

集团项目时,只需指定数据名。但是基本项目时,要指定PIC,PACK形式时,要指定COMP-3。

而且各个项目记述结束后都要加上终止符。

2.4.7WORKING-STORAGE SECTION

WORKING-STORAGE SECTION是与DATA DIVISION的SECTION相接续的SECTION。保除输入区、输出区以外,其他必要的数据项目的工作区,一般在WORKING-STORAGE SECTION进行记述。

(ⅰ)写法与FILE SECTION记录的写法一样。

[例题的WORKING-STORAGE SECTION的编程]

在例题中,是用了エンドフラグ这种数据项目,工作区域中定义。エンドフラグ,数据名为W-エンドフラグ,英数字项目为1位区域。エンドフラグ的用途在第3章进行说明。

2.5总结

在这一章COBOL程序中,从IDENTIFICATION开始到DATA DIVISION的写法。

○约定用语与使用者用语

约定用语……COBOL中拼写和意义都事先决定好的单词(英语)

使用者用语……可以由程序员自己命名的项目名等

○空格和终止符

语句和语句之间要有大于1个文字的空格。

在决定的地方一定要有终止符,终止符的后面也要有一个文字以上的空格。

○IDENTIFICATION DIVISION

PROGRAM-ID 指定程序、

○ENVIRONMENT DIVISION

INPUT-OUTPUT SECTION

SELECT指定输入输出存储的装置

○DATA DIVISION

FILE SECTION 文件节(文件的输入区,输出区)

FD……文件记述(文件输入区,输出区的定义)

WORKING-STORAGE SECTION 工作存储节

○文件记述

文件名和块读写时,要指定1个存储块中的记录数。

○记录记述

用下面的指定表示记录的构成。

层号

记录名以及数据名

形式及长度(位数)

练习题2-4

[1]用下列条件,写出文件记述和记录记述。

问题1 对于同一个文件,文件记述与记录记述,一定要按照顺序对应吗?

答:是的,不能把文件记述全都先写出来,也不能先写出记录记述。

问题2 文件记述与记录记述的记述写的顺序,一定要按照输入文件,输出文件的顺序来写吗?或者说,一定要按照ENVIRONMENT DIVISION的SECTION指定的顺序来写吗?

答:不是,不管从哪个开始写都可以。但是为阅读简便,要按照ENVIRONMENT DIVISION 的SECTION指定的顺序依次来做。本书是按照输入文件,输出文件的顺序来写的。

问题3 文件名在用日文文字表示是长度为13个文字,日本文字还可以在哪些地方使用?答:日本文字用在除了程序名以外的利用者语。

日本文字不能用在已经决定了拼写方式的预约语中。

在使用日本文字时,保证其中的文字全是日语(全角文字),在13字之内。在编程用纸上,2位为一个文字。

问题4 在本书例题中层号也可以是01,03,不连续的数字,在这种情况下有什么规则?答:对于记录名必须使用01。对于从属于记录中的项目要使用比01大的层号,从属于项目中的项目则要使用更大的层号。

不用缩位写也没关系,但是缩位更容易看到其中的从属关系。所以在编写程序的时候请尽量这么写。

问题5 例题的编程,PIC是从31位开始写,那么必须从第31位开始写吗?

答:不是,记录名,数据名写好后,后面的空格要大于1个文字。写在哪里都没有关系。

本书中的例题,由于连续几行内容相近,为了看得清楚,都从一某位开始写PIC。

不仅仅是记录记述,在COBOL的句子中,项目与项目之间也要保持几个空格。

相关文档
最新文档