cobol学习笔记
- 格式:docx
- 大小:270.37 KB
- 文档页数:24
cobol学习02——基本语句1.MOVE语句 是整个COBOL中最常⽤额语句。
可以实现变量的赋值,参数传递等类似功能。
可以对单个数据进⾏复制,也开业对⼀组数据进⾏复制。
a、复制单个数据 例: 01 IN-STATUS PIC X(5). --> MOVE 'READY' TO IN-STATUS. --> MOVE IN-STATUS TO OUT-STATUS. 说明:当复制的数据为数值类型时 如果⽬标数据的长度⼤于源数据项内容的长度时,则在⽬标数据项的⾼位以0进⾏填充 如果⽬标数据的长度⼩于源数据项内容的长度,对⾼位超出部分进⾏截断。
如果数值含有⼩数部分,需要作为浮点数做相应处理。
b、复制⼀组数据 通过MOVE语句对⼀组数据进⾏复制。
MOVE语句中的两个变量分别是数据组的名称。
注意点: 所复制的组内数据必须同名,不同名的数据将不被复制。
如果数据项在分组中,则分组名称也必须相同。
数据项在组内的顺序可以任意。
以FILLER命名的数据项不被复制。
2.PERFORM语句 执⾏COBOL中所编写的相应的处理过程。
过程处理相当于COBOL中的函数,PERFORM⽤于调⽤这些函数。
可通过THRU选项同时对多个处理过程进⾏执⾏。
3.ACCEPT和DISPLAY语句 可以⽅便调试。
a、ACCEPT语句接收数据 既可以接收⽤户从终端输⼊的数据,也可以接收由系统产⽣的相应数据。
接收的数据存放在 COBOL数据部中所定义的相应变量中。
4.REDEFINES语句 ⽤于同⼀块内存区域内进⾏重定义。
可以定义多个指向同⼀内存区域的变量。
01 TEST-AREA. 05 TEST-A PIC X(4). 05 TEST-B REDEFINES TEST-A.5.⽂件相关语句 ⽂件包括常规⽂件,以及VSAM⽂件。
基本操作包括⽂件的打开、关闭、⽂件读写。
a、OPEN和CLOSE语句 OPEN语句⽤于⽂件的打开操作。
COBOL 概述1.COBOL语言的发展概述COBOL是Common Business Oriented Language(商业通用语言)的缩写。
实际上,COBOL不仅是商业数据处理的理想语言,而且广泛应用于数据管理领域,如财会工作,统计报表,计划编制,情报搜索,人事管理等。
因此COBOL也被称为“用于管理的语言“。
在计算机的应用领域中,数据处理(data processing)是应用最为广泛的一个领域。
数据处理的日益广泛应用要求人们设计出能满足实际数据处理工作中各种要求的一种计算机语言。
COBOL就是在这种形势下应运而生的。
1959年COBOL-611965年COBOL-651978年COBOL-781985年COBOL-852.COBOL语言的特点①最适于数据处理领域。
所谓数据处理是指对大量数据的收集,统计,分类和加工。
例如企业管理,库存管理,报表统计,账目管理,信息情报检索等方面都属于数据处理。
数据处理的特点是:算术计算量小而逻辑处理多;输入输出多;数据间存在着一定的逻辑关系;大量的分类排序;对打印报表要求比较高,多样化等等。
②COBOL比较接近于自然语言(英语)。
COBOL程序看起来很像一篇用英语写出来的文章。
比如 ADD A TO B 表示 A + B = B 。
COBOL采用大量英文词汇和句型,学过英语的人看COBOL程序感到通俗易懂。
③通用性强,由于COBOL语言的标准化程度较高。
一个计算机上的COBOL程序向另一计算机系统上移植是比较容易实现的。
④COBOL的结构严谨,层次分明。
每个程序分四大部分(称为部 DIVISION),每个部下面分为若干节,每个节下面分为若干段。
每一部分都有固定的程式。
⑤COBOL的缺点是比较繁琐。
无论程序大小简繁,四大部分都要写齐,对每个部进行必要的定义和说明。
因此源程序显得比较冗长。
3.COBOL程序的结构①部IDENTIFICATION DIVISION(标识部) : 主要用来指定源程序的名字,也可以写入其他做备忘的某些信息。
COBOL知识点写在前面:本知识点总结为本人根据一本图书馆借来的书总结出来本专业本外教课最终有可能考到的知识点,考试为英文卷子,本总结为中文。
其中带星号的可当课外知识记,是那本书中为学到的知识点中较简单的部分,应该不会考到。
且本总结不是考试范围,只是帮助大家理解COBOL这门语言。
一、通用部分:1、所有程序都要先写标志部:“IDENTIFICATION DIVISION. PROGRAM-ID.程序员的代号等”。
(*) 2、“AUTHOR”用于知名开发该程序的程序员名;“INSTALLATION”通常用于说明设计该程序的公司或部门;“DATE-WRITTEN”指明程序编写或修改的日期;“DATE-COMPILED”指明程序编译的日期;“SECURITY”通常用于列出具有访问该程序权限的用户。
二、环境部:ENVIRONMENT DIVISION.(注:如果该部分没有任何内容,是可以省略不写的)(*) 1、环境部中的配置节及其字段:ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER. (指示编译程序的计算机)OBJECT-COMPUTER. (描述运行程序的计算机)SPECTAL-NAMES.(指定货币符号选择小数点、提供开关名和定义字母表)2、环境部中的输入/输出节:主要是将程序中的逻辑文件同环境中的物理文件想对应起来,由“INPUT-OUTPUT SECTION”标识。
输入/输出节包含两个字段:“FILE-CONTROL”(用于指定的对应关系,是该节中主要用到的字段);“I-O-CONTROL”(用于定义程序返回点,不同文件共享的内存区,以及多文件卷中文件的位置)。
FILE-CONTROL的例子:DENTIFICATION DIVISION.PROGRAM-ID. SAMPLE-PGM.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROLSELECT CUSTOMER-FILEASSIGN TO S-SYSIN.SELECT PRINT-FILEASSION TO S-SYSOUT.对于例子中蓝色字的解释:其通过SELECT语句指定了两条文件对应关系。
コボル基本語法一、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 层号014、第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-PARMENVIRONMENT-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-FILEORGANIZATION IS LINE SEQUENTIAL.在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。
COBOLCOBOL简易教程主要内容1.COBOL语⾔的基本概念及程序的结构关于COBOL的初步知识COBOL程序的结构COBOL源程序的书写格式2.COBOL数据表⽰常量层次的概念PICTURE语句数据在内存中的各种形式3.算术运算变量赋值 (MOVE, MOVE CORR)算术运算(ADD, SUB, MUL, DIV, COMPUTE等) ?内部函数4.字符串处理合并、分离、取⼦串、替换等5.程序逻辑控制条件的分类IF、EVALUATEPERFORM6.表处理定义、赋值、引⽤、查询7.读、写多格式记录⽂件8.常⽤语句⼩结9.⼦程序1.COBOL语⾔的基本概念及程序的结构1.1关于COBOL的初步知识◆COBOL是Common Business Oriented Language (通⽤商业语⾔,或称管理语⾔)的缩写◆最适⽤于数据处理◆⽐较接近于⾃然语⾔(英语)◆COBOL的结构严谨,层次性强◆COBOL的缺点是⽐较烦琐。
1.2 COBOL 程序的结构部(Division) ⼀部可包括若⼲节节(Section) ⼀节可包含若⼲段段(Paragraph) ⼀段可包含若⼲句⼦句⼦(Sentence) ⼀个句⼦可包含若⼲语句语句(Statement) 制定计算机完成⼀定的操作⼦句(Clause) 制定完成某⼀⽅⾯的功能每个程序应包含四个部IDENTIFICATION DIVISION (标识部)主要⽤来指定源程序名字,也可以写⼊其他⽤作备忘的某些信息(如⽇期、作者等)。
ENVIROMENT DIVISION(环境部)主要⽤于指出程序中⽤到的数据⽂件名与计算机系统的设备的对应关系,即把某⼀⽂件名与⼀个外部设备联系起来。
DATA DIVISION(数据部〕程序中所⽤到的全部数据(包括输⼊输出的数据和中间数据)都应在数据部中说明它们的类型和所占内存情况。
PROCEDURE DIVISION(过程部〕⽤来给出程序要执⾏的指令,使计算机产⽣相应的操作,例如进⾏数学运算。
COBOL知识点集锦(上)cobol知识点集锦COBOL数据类型计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。
目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机计息程序是用IBM370汇编语言实现的。
为方便汇编语言读写,在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.01DATE-CASE.02DATE-FIRST PIC X(3).02DATE-SIGN PIC9(4)COMP VALUE12.;定点二进制数01DATE-CHANGE REDEFINES DATE-CASE PIC9(9)COMP-3.;内部十进制数据01DATE-HEX PIC X(3).;转换前数据01DATE-DEC PIC S9(7)COMP-3.;转换后数据然后,在过程部PROCEDURE DEVISION.中加入如下语句:PROCEDURE DEVISION.MOVE DATE-HEX TO DATE-FIRST.COMPUTE DATE-CHANGE=DATE-CHANGE/1000.MOVE DATE-CHANGE TO DATE-DEC.由内部十进制转换为X(3)型在进行相反的转换时,要消除因COBOL语言数据类型标志“C”引起的原日期数据前多加的一个0,所以需要将转换数据乘以10,再取出前6位数据即可。
Cobol With tamic0 、变量和数组声明Cobol变量使用stuct结构。
01 WS-DETAIL3.03 WK-DETAIL3 OCCURS 999 TIMES.(定义数据)05 IWYYMMDD-AFT-RECORD-SEQNO PIC 9(03).05 IWYYMMDD-AFT-RECORD-DRCRFLAG PIC X(02) V ALUE SPACE.05 IWYYMMDD-AFT-RECORD-CUSTCOD PIC X(13) V ALUE SPACE.05 IWYYMMDD-AFT-RECORD-AGLACIT PIC X(12) V ALUE SPACE.05 IWYYMMDD-AFT-RECORD-CCY PIC X(03) V ALUE SPACE.1 、数学计算COMPUTE WS-TOTDR = WS-TOTDR - IWYYMMDD-BEF-RECORD-DRAMT.ADD 1 TO B.2 、赋值语句。
Move “A”to A AA.(可以为两个变量同时赋值)3 、逻辑判断If A NOT= BEnd-if.4 、函数模块调用1)、调某函数块PERFORM A3000-DETAIL2-EDIT THRU A3000-EXIT.2)、循环调某函数块PERFORM A3000-DETAIL2-EDIT util COND1 .循环调某函数块到满足条件为止。
3) go to.5 、一般数据操作1)、和数据库建立连接EXEC TAMIC-DBOPEN I-O FILE("YEDMVDTL")* 打开数据库连接END-EXEC.2)、执行查询INITIALIZE YEDMVDTL-RECEXEC TAMIC-DBSTART FILE ("YEDMVDTL") GTEQ FROM (YEDMVDTL-REC) –打开数据表,获取满足条件的记录END-EXEC.IF SUCCESS ----success 系统变量,判断数据库连接是否成功。
cobol实例以及⼊门基础1.关于COBOL的初步知识◆COBOL是Common Business Oriented Language (通⽤商业语⾔,或称管理语⾔)的缩写◆最适⽤于数据处理◆⽐较接近于⾃然语⾔(英语)◆COBOL的结构严谨,层次分明◆COBOL的缺点是⽐较烦琐。
Batch Program (VSAM/Batch COBOL)◆COBOLVSAM/ONLINE PGMCICS ONLINE ProgramDBS/ONLINE PGM◆本课以ANSI COBOL 1974为标准1.1⼀个例⼦:**************************************************************** * * * HUMAN RESOURCE INFORMATION SYSTEM * * VERSION 2.1.0 COPYRIGHT (C) 1998 * * DALIAN NEU-BITCO SOFTWARE CO., LTD. * * ALL RIGHTS RESERVED. * * ***************************************************************** IDENTIFICATION DIVISION.(标识部)PROGRAM-ID. YTP008.(程序名)AUTHOR. DALIAN NEU-BITCO SOFTWARE CO.,LTD.(作者姓名)INSTALLATION. DALIAN. (编写场所,⼤连)DATE-WRITTEN. 1998/7/11. (编写⽇期)DATE-COMPILED. 1998/8/1. (编译⽇期)SECURITY. THIS PROGRAM RESTRICTED TO PERSONNEL.**************************************************************** * * * SYSTEM : HUMAN RESOURCE INFORMATION SYSTEM * * * * PROGRAM : YTP008 * * * * TYPE : VSAM/VS COBOL II BATCH * * * * TITLE : INFORMATION ENTRY * * * * INPUTS : CARD FILE QSAM FILE * * - - - - - - - - * * * * OUTPUTS HUMAN RESOURCE (YTF019) * * * * FUNCTION : THIS BATCH PROGRAM IS TO SCAN AN IDCAMS SOURCE * * MEMBER, EACH IDCAMS SOURCE MEMBER REPRESENTS A * * * * * **************************************************************** **************************************************************** * * * REVISION LOG * **************************************************************** * CTL NO * DATE * INIT. * DESCRIPTION ***************************************************************** * * 7/11/98 * NEU-BITCO*INITIAL INSTALLATION BY ZYB *****************************************************************ENVIRONMENT DIVISION.(设备部或称环境部)CONFIGURATION SECTION.(配置节)SOURCE-COMPUTER. IBM-3084. (源计算机名,编译)OBJECT-COMPUTER. IBM-3084. (⽬标计算机名,运⾏)MEMORY SIZE IS 整数 (WORDS, CHARACTERS, MODLES).SPECIAL-NAMES. CONSOLE IS CRT.(专⽤名描述项)DECIMAL-POINT IS COMMA.(⼩数点是逗号)CURRENCY SIGN IS ‘Y’. (代替$)INPUT-OUTPUT SECTION.(输⼊输出节)FILE-CONTROL.(⽂件控制描述体)SELECT FD-YTI008 ASSIGN TO UR-S-YTI008*?? FOLLOWING LINE SHOULD BE DELETED FOR M/FORGANIZATION IS LINE SEQUENTIALFILE STATUS IS WS-FILE-STATUS.- - - - ---------DATA DIVISION.(数据部)FILE SECTION.(⽂件节)FD FD-YTI008LABEL RECORDS ARE STANDARD.01 YTI008-REC.05 YTI008-IDCAMS PIC X(80).- - - - - - --- - - - - --**************************************************************** * WORKING STORAGE**************************************************************** WORKING-STORAGE SECTION.(⼯作单元节)01 FILLER PIC X(50) VALUE'PROGRAM YTP008 WORKING-STORAGE BEGINS HERE'.*?? FOLLOWING LINES SHOULD BE DELETED FOR M/F77 UR-S-YTI008 PIC X(30) VALUE 'YTI008.DAT'.01 WORK-STORAGE.05 WS-SYS-DATE PIC 9(6).05 FILLER REDEFINES WS-SYS-DATE.10 WS-SYS-YY PIC 9(2).10 WS-SYS-MM PIC 9(2).10 WS-SYS-DD PIC 9(2).05 WS-SYS-TIME PIC X(6).05 FILLER REDEFINES WS-SYS-TIME.10 WS-SYS-HH PIC 9(2).10 WS-SYS-MN PIC 9(2).------PROCEDURE DIVISION.(过程部)DISPLAY ' PROGRAM YTP008 HAS BEEN STARTED .............' UPON CRT.PERFORM 1000-OPEN-FILE THRU1000-OPEN-FILE-EXIT.-- - - - --- - - - -STOP RUN.1.2 COBOL 程序的结构(1/p4)部(Division) ⼀部可包括若⼲节节(Section) ⼀节可包含若⼲段段(Paragraph) ⼀段可包含若⼲句⼦句⼦(Sentence) ⼀个句⼦可包含若⼲语句语句(Statement) 制定计算机完成⼀定的操作⼦句(Clause) 制定完成某⼀⽅⾯的功能每个程序应包含四个部IDENTIFICATION DIVISION (标识部)主要⽤来指定源程序名字,也可以写⼊其他⽤作备忘的某些信息(如⽇期、作者等)。
コボル基本語法一、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 层号014、第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-PARMENVIRONMENT-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-FILEORGANIZATION IS LINE SEQUENTIAL.在数据部定义字符串变量SELECT-FILE,在文件FILE-LOG打开前动态指定文件路径。
cobol学习笔记(1) COBOL入門 COBOLとは?2010/06/29 16:35COBOL面向商业的通用语言 (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 层号014、第12列---72列为B区,过程部的程序必须写在B区中。
5、第72以后部分不能编辑。
cobol学习笔记(2)COBOL的程序结构 IDENTIFICATION DIVISION 标识部見出し部2010/06/29 20:44COBOL程序由4部(DIVISION)组成:IDENTIFICATION DIVISION.(标识部)、ENVIRONMENT DIVISION.(环境部)、DATA DIVISION.(数据部)、PROCEDURE DIVISION.(过程部),而每个部又由若干节 (SECTION)组成。
IDENTIFICATION DIVISION.(标识部)“PROGRAM-ID”(程序识别ID)、“AUTHOR”(作者名)、“DATE-WRITTEN”(编写日期),这些并直接不影响程序的执行,而是程序的注释信息。
程序注释可以采用任何语言书写,COBOL编译器可以接受。
(一)必写部分IDENTIFICATION DIVISION.PROGRAM-ID. 程序名.(二)任选部分一般格式:[AUTHOR. 作者姓名][INSTALLATION. 设计这个程序的公司或部门。
][DATE-WRITTEN. 编写日期,可记入修订史,修改日期、原因及人员。
] [DATE-COMPILED. 编译日期][SECURITY. 保密程度的描述。
]見出し部(IDENTIFICATION DIVISION)プログラムID(PROGRAM-ID)や作成者(AUTHOR)、作成日(DATE-WRITTEN)などを記述します。
プログラムIDは必須ですが、その他は省略しても構いません。
cobol学习笔记(3)COBOL的程序结构 ENVIRONMENT DIVISION 环境部環境部2010/06/30 14:40ENVIRONMENT DIVISION.(环境部)用于记载程序可以被运行的计算机环境。
“ENVIRONMENT DIVISION.”部包括“CONFIGURATION SECTION”配置节和“INPUT-OUTPUT SECTION”输入输出节。
環境部(ENVIRONMENT DIVISION)構成節(CONFIGURATION SECTION)と入出力節(INPUT-OUTPUT SECTION)からなります。
構成節には、翻訳用計算機記述項(SOURCE-COMPUTER)、実行用計算機記述項(OBJECT-COMPUTER)、特殊名記述項(SPECIAL-NAMES)が記述されます。
环境部的作用是说明程序运行的环境,即程序是在什么软硬件环境下运行的。
这是整个COBOL程序中唯一与计算机硬件设备有关的部分。
在这部分中要说明程序用到哪些设备,哪些文件,将程序中用到的内部文件名与外部文件(或外部设备)之间建立起联系。
COBOL将外部设备和外部文件只集中出现在环境部,是为了提高程序的可移植性,不致因外部环境的改变而导致程序中每一部分都需要作相应的修改,而只需要修改环境部即可。
一般格式:ENVIRONMENT DIVISION. (环境部)CONFIGURATION SECTION. (配置节)SOURCE-COMPUTER. 源计算机名.OBJECT-COMPUTER. 目标计算机名.[SPECIAL-NAMES. 专用名描述项][INPUT-OUTPUT SECTION. (输入输出节)FILE-CONTROL. {文件控制描述体}…[I-O-CONTROL. 输入输出控制描述体]]配置节包括三段:源计算机段﹑目标计算机段﹑专用名段。
源计算机指的是编译源程序时使用的计算机。
目标计算机指的是经过编译后所得的目标程序运行时所使用的计算机,即数据处理阶段所使用的计算机。
这二者可以是同一计算机,也可以是不同的计算机。
如果是不同的计算机,则应要求这二台计算机是兼容的。
因为一种型号的计算机编译出的目标程序,在另一型号的计算机上往往是不能运行的。
在配置节中还应说明程序运行时需要目标计算机提供的最小容量。
如果目标计算机所提供的能使用的内存容量小于此数字,则程序不能正常运行。
源计算机段和目标计算机段的一般格式SOURCE-COMPUTER.源计算机名.OBJECT-COMPUTER.目标计算机名.MEMORY SIZE IS 整数 WORDS/CHARACTERS/MODULES专用名段用来通知系统把系统中原规定的一些设备名或功能名或符号改为用户自己指定的名字或符号。
计算机对有关的硬设备和某些功能(如打印时不换行,跳到本页末或下页头等),都赋予一个特定的专用名。
例如有的系统把打印机定名为PRINTER,把控制台定名为CONSOLE,有的把宽行打印机定为SYSOUT,把读卡机定为SYSIN等(请注意,每个系统所起的专用名是不同的)。
程序编写者可以用自己规定的助忆名去代替系统的专用名。
如果程序中不规定自己定的助忆名,则此段可不写。
专用名段的一般格式SPECIAL-NAMES.[DECIMAL-POINT IS COMMA.][CURRENCY SIGN IS 非数值常量.][专用名 IS 助忆名.]欧洲人的习惯是用逗号代表小数点,如12.34,他们写成12,34。
对此COBOL 提供一项说明,可在专用名段中写:DECIMAL-POINT IS COMMA.(小数点是逗号)这样,凡程序中数值内出现的小数点,在输出时一律会自动改成逗号。
又如,美国用“$”作货币符号,而其他国家可以改用其他符号,如用“L”表示英镑,用“¥”表示人民币等。
可在专用名段写:CURRENCY SIGN IS 非数值常量如:CURRENCY SIGN IS ‘L’.则在出现货币符号时,一律会自动以“L”代替“$”。
但不能用0-9,A,B,C,D,E,P,R,S,V,X,Z字符作货币号。
使用助忆名代替系统固有的专用名,纯粹是为了便于记忆。
因为在有些系统中专用名不好记忆,程序编制者希望以简单易记的名字代替它。
此外,当改用其它计算机系统时,只需要改变专用名段的专用名即可,程序中过程部的所有语句都不必改动。
cobol学习笔记(4)COBOL的程序结构 INPUT-OUTPUT SECTION2010/06/30 16:45INPUT-OUTPUT SECTION(输入输出节)入出力節には、フゔイル管理記述項(FILE-CONTROL)、入出力管理記述項(I-O-CONTROL)が記述されます。
输入输出节(INPUT-OUTPUT SECTION)程序中如果用到输入输出文件,就应在这个节中把程序中的内部文件与外部文件(包括外部设备)联系起来。
文件控制段(FILE-CONTROL.)输入输出控制段(I-O-CONTROL.)文件控制段是为文件分配外部文件。
只要用到INPUT-OUTPUT节,文件控制段就是必写的。
输入输出控制段的作用是可以指定目标程序运行时,几个文件共用一个内存区,以省内存。
程序中只要用到了文件,则必须有一个对该文件的描述部分,它是由SELECT子句实现的。
文件控制段的一般格式:INPUT-OUTPUT SECTION.(输入输出节)FILE-CONTROL.(文件控制段)SELECT 文件名 ASSIGN TO 外部文件名.1 在SELECT子句的“ASSIGN TO”的后面写上磁盘上实际的文件名。
2 在SELECT子句中只指出外部设备名。
3 在一些中、大型计算机系统,在SELECT子句中用该系统指定的逻辑名作为外部文件名,然后用作业控制语句将该逻辑名与实际的设备和文件相联系。
FILE-CONTROL.SELECT FILE-1 ASSIGN TO “FILE-1.TXT”.SELECT FILE-2 ASSIGN TO DISK.SELECT FILE-3 ASSIGN TO PRINTER.I-O-CONTROL:此段在COBOL程序中是可选的,用于指定程序的重新运行点和不同文件共享的内存区等。
由于此段很少使用,无需详细了解。
select 后的文件为逻辑文件assign 后的为物理文件cobol学习笔记(5) SELECT子句2010/06/30 21:20SELECT子句SELECT [OPTIONAL] INFILE ASSIGN [TO] "FILE.DAT"ORGANIZATION [IS] *ACCESS [MODE] [IS] *RECORD/RELATIVE [KEY] [IS] *ALTERNATE [RECORD] [KEY] [IS] * [[WITH] DUPLICATES][FILE] STATUS [IS] DATANAME1 DATANAME2.INFILE是程序中使用的逻辑文件名,它必须在数据部文件节的FD或SD条目中被描述。
FILE.DAT可以是操作系统下的物理文件,也可以是记号名(如DD名或环境变量),可在之后利用运行时选项为其指定实际的物理文件。
OPTIONAL表示此文件不一定每次运行时都会存在。