cobol学习笔记
- 格式:doc
- 大小:34.50 KB
- 文档页数:3
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(标识部) : 主要用来指定源程序的名字,也可以写入其他做备忘的某些信息。
COBOLChapter 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 ---678 12---7273---80IDENTIFICATION 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字符集包括:数字0 --- 9 ,字母 A--- Z ,a --- z , 专用字符:+ - * / = , . ; ‘ ( ) < > $ 及空格。
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打开前动态指定文件路径。
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实例以及⼊门基础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学习笔记(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)组成。
COBOL简易教程COBOL简易教程主要内容1.COBOL语言的基本概念及程序的结构一个例子●COBOL程序的结构●COBOL源程序的书写格式2.COBOL数据表示常量层次的概念PICTURE语句数据在内存中的各种形式3.算术运算●变量赋值 (MOVE, MOVE CORR)●算术运算(ADD, SUB, MUL, DIV, COMPUTE等)●内部函数4.字符串处理●合并、分离、取子串、替换等5.程序逻辑控制条件的分类IF、EVALUATE●PERFORM6.表处理定义、赋值、引用、查询7.读、写多格式记录文件8.常用语句小结9.子程序1.关于COBOL的初步知识◆COBOL是Common Business Oriented Language (通用商业语言,或称管理语言)的缩写◆最适用于数据处理◆比较接近于自然语言(英语)◆COBOL的结构严谨,层次性强◆COBOL的缺点是比较烦琐。
1.1 一个例子:*************************************************************** ** * * COBOL TRAINING PROGRAM * * VERSION 2.1.0 COPYRIGHT (C) 2004 * * WISTRON DALIAN SOFTWARE CO., LTD. * * ALL RIGHTS RESERVED. * * * **************************************************************** IDENTIFICATION DIVISION.PROGRAM-ID. EXERCIS6.AUTHOR. QXLU (WISTRON DALIAN).DATE-WRITTEN. 04-06-23.DATE-COMPILED. 04-06-23.*----------------------------------------------------------------* * COMMENT : * * * *----------------------------------------------------------------* ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER. IBM-3084.OBJECT-COMPUTER. IBM-3084.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT DDI01 ASSIGN TO "DDI01".SELECT DDO01 ASSIGN TO "DDO01".*DATA DIVISION.FILE SECTION.*FD DDI01 LABEL RECORD IS STANDARD DATA RECORD ARE IN-AREA0, IN-AREA1.01 IN-AREA0.05 IN-YEAR-NUM PIC 9(2).05 IN-PRINCIPAL PIC 9(4)V99.05 FILLER PIC X(07).05 RMARK PIC X(01) VALUE X"0A".01 IN-AREA1.05 IN-INTEREST-RATE OCCURS 5 TIMES PIC V999.05 RMARK PIC X(01) VALUE X"0A".FD DDO01 BLOCK 0 RECORDS LABEL RECORD STANDARD RECORDING F.01 PRT-REC.05 FILLER PIC X(79).**====================================== =========================* WORKING-STORAGE SECTION.01 IN-FILE-DATA.05 YEAR-NUM PIC 9(2).05 PRINCIPAL PIC 9(4)V99.05 INTEREST-RATE-TABLE.15 INTEREST-RATE OCCURS 5 TIMES PIC V999.*01 HEADER0 PIC X(79) VALUE' TABLE OF SIMPLE INTEREST'.01 HEADER1 PIC X(79) VALUE' ************************************'.01 HEADER2 PIC X(79) VALUE' PRINCIPAL 4,000.00 FOR 10 PERIODS'.01 HEADER3 PIC X(79) VALUE SPACE.01 HEADER4 PIC X(79) VALUE' PERIOD INTEREST RATE'.01 HEADER5.05 OUT-I-R OCCURS 5 TIMES PIC BBBBBBBBB.999.01 DETAIL0.05 OUT-PERIOD PIC ZZZ.05 OUT-P-I-S-ITEM OCCURS 5 TIMES.10 FOURSPACES PIC X(04) VALUE SPACE.10 OUT-P-I-SUM PIC 9,999.99.01 CNT-YEAR-NUM PIC 9(2).01 I-R-INDEX PIC 9.01 P-I-SUM PIC 9(6)V99.**************************************************************** ** * P R O C E D U R E D I V I S I O N * ***************************************************************** PROCEDURE DIVISION.*INPUT-DATA SECTION.OPEN INPUT DDI01.OPEN OUTPUT DDO01.READ DDI01.MOVE IN-YEAR-NUM TO YEAR-NUM.MOVE IN-PRINCIPAL TO PRINCIPAL.READ DDI01.MOVE IN-AREA1 TO INTEREST-RATE-TABLE.*PROCESS-OUTPUT-DATA SECTION.*PRINT HEADERWRITE PRT-REC FROM HEADER0 BEFORE 1.WRITE PRT-REC FROM HEADER1 BEFORE 1.WRITE PRT-REC FROM HEADER2 BEFORE 1.WRITE PRT-REC FROM HEADER3 BEFORE 1.WRITE PRT-REC FROM HEADER4 BEFORE 1.* PRINT INTEREST RATEPERFORM TEST BEFORE VARYING I-R-INDEXFROM 1 BY 1 UNTIL I-R-INDEX > 5MOVE INTEREST-RATE( I-R-INDEX ) TO OUT-I-R( I-R-INDEX ) END-PERFORM.WRITE PRT-REC FROM HEADER5 BEFORE 1.*PROCESS & PRINT DETAILSPERFORM PRINT-DETAILVARYING CNT-YEAR-NUM FROM 1 BY 1UNTIL CNT-YEAR-NUM > YEAR-NUM.*CLOSE-FILES SECTION.CLOSE DDI01.CLOSE DDO01.*STOP RUN.**---------------------------------------------------------------* * PRINT-DETAIL **---------------------------------------------------------------* PRINT-DETAIL SECTION.*MOVE CNT-YEAR-NUM TO OUT-PERIOD.PERFORM PROCESS-DETAILVARYING I-R-INDEX FROM 1 BY 1 UNTIL I-R-INDEX > 5. WRITE PRT-REC FROM DETAIL0 BEFORE 1.*PRINT-DETAIL-RTN.EXIT.**---------------------------------------------------------------* * PROCESS-DETAIL **---------------------------------------------------------------* PROCESS-DETAIL SECTION.*COMPUTE P-I-SUM = PRINCIPAL *( INTEREST-RATE( I-R-INDEX ) * CNT-YEAR-NUM + 1 ). MOVE P-I-SUM TO OUT-P-I-SUM( I-R-INDEX ).*PROCESS-DETAIL-RTN.EXIT.** *** END OF CODING EXERCIS6 ***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打开前动态指定文件路径。
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---80IDENTIFICATION 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字符集包括:数字0 --- 9 ,字母A--- Z ,a --- z , 专用字符:+ - * / = , . ; … ( ) < > $ 及空格。
1.关于COBOL的初步知识◆COBOL是Commo n Busine ss Orient ed Langua ge (通用商业语言,或称管理语言)的缩写◆最适用于数据处理◆比较接近于自然语言(英语)◆COBOL的结构严谨,层次分明◆COBOL的缺点是比较烦琐。
BatchProgra m (VSAM/BatchCOBOL)◆COBOLVSAM/ONLINE PGMCICS ONLINE Progra mDBS/ONLINE PGM◆本课以ANS I COBOL 1974为标准1.1一个例子:**************************************************************** * * * HUMANRESOUR CE INFORM ATION SYSTEM * * VERSIO N 2.1.0 COPYRI GHT (C) 1998 * * DALIAN NEU-BITCOSOFTWA RE CO., LTD. * * ALL RIGHTS RESERV ED. * * * **************************************************************** IDENTI FICAT ION DIVISI ON.(标识部)PROGRA M-ID. YTP008.(程序名)AUTHOR. DALIAN NEU-BITCOSOFTWA RE CO.,LTD.(作者姓名)INSTAL LATIO N. DALIAN. (编写场所,大连)DATE-WRITTE N. 1998/7/11. (编写日期)DATE-COMPIL ED. 1998/8/1. (编译日期)SECURI TY. THIS PROGRA M RESTRI CTEDTO PERSON NEL.**************************************************************** * * * SYSTEM : HUMANRESOUR CE INFORM ATION SYSTEM * * * * PROGRA M : YTP008 * * * * TYPE : VSAM/VS COBOLII BATCH * * * * TITLE : INFORM ATION ENTRY * * * * INPUTS : CARD FILE QSAM FILE * * - - - - - - - - * * * * OUTPUT S HUMANRESOUR CE (YTF019) * * * * FUNCTI ON : THIS BATCHPROGRA M IS TO SCAN AN IDCAMS SOURCE * * MEMBER, EACH IDCAMS SOURCE MEMBER REPRES ENTS A * * * * * **************************************************************** **************************************************************** * * * REVISI ON LOG * **************************************************************** * CTL NO * DATE * INIT. * DESCRI PTION * **************************************************************** * * 7/11/98 * NEU-BITCO*INITIA L INSTAL LATIO N BY ZYB * ****************************************************************ENVIRO NMENT DIVISI ON.(设备部或称环境部)CONFIG URATI ON SECTIO N.(配置节)SOURCE-COMPUT ER. IBM-3084. (源计算机名,编译)OBJECT-COMPUT ER. IBM-3084. (目标计算机名,运行)MEMORY SIZE IS 整数 (WORDS, CHARAC TERS, MODLES).SPECIA L-NAMES. CONSOL E IS CRT.(专用名描述项)DECIMA L-POINTIS COMMA.(小数点是逗号)CURREN CY SIGN IS ‘Y’. (代替$)INPUT-OUTPUT SECTIO N.(输入输出节)FILE-CONTRO L.(文件控制描述体)SELECT FD-YTI008 ASSIGN TO UR-S-YTI008*?? FOLLOW ING LINE SHOULD BE DELETE D FOR M/FORGANI ZATIO N IS LINE SEQUEN TIALFILE STATUS IS WS-FILE-STATUS.- - - - ---------DATA DIVISI ON.(数据部)FILE SECTIO N.(文件节)FD FD-YTI008LABELRECORD S ARE STANDA RD.01 YTI008-REC.05 YTI008-IDCAMS PIC X(80).- - - - - - --- - - - - --**************************************************************** * WORKIN G STORAG E**************************************************************** WORKIN G-STORAG E SECTIO N.(工作单元节)01 FILLER PIC X(50) VALUE'PROGRA M YTP008 WORKIN G-STORAG E BEGINS HERE'.*?? FOLLOW ING LINESSHOULD BE DELETE D FOR M/F77 UR-S-YTI008 PIC X(30) VALUE'YTI008.DAT'.01 WORK-STORAG E.05 WS-SYS-DATE PIC 9(6).05 FILLER REDEFI NES 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 REDEFI NES WS-SYS-TIME.10 WS-SYS-HH PIC 9(2).10 WS-SYS-MN PIC 9(2).------PROCED URE DIVISI ON.(过程部)-DISPLA Y ' PROGRA M YTP008 HAS BEEN STARTE D .............' UPON CRT.PERFOR M 1000-OPEN-FILE THRU1000-OPEN-FILE-EXIT.- - - - -- - - - -STOP RUN.1.2 COBOL程序的结构(1/p4)部(Divisi on) 一部可包括若干节节(Sectio n) 一节可包含若干段段(Paragr aph) 一段可包含若干句子句子(Senten ce) 一个句子可包含若干语句语句(Statem ent) 制定计算机完成一定的操作子句(Clause) 制定完成某一方面的功能每个程序应包含四个部IDENTI FICAT ION DIVISI ON (标识部)主要用来指定源程序名字,也可以写入其他用作备忘的某些信息(如日期、作者等)。
U11.COBOL是Common Business Oriented Language (通用商业语言)2. COBOL的组成部分:(1)标识部(IDENTIFICATION DIVISION):用于标识程序名(一般不超过8位)。
在标识部下面不设节.直接设段(2)环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。
(3)数据部(DATA DIVISION):用于说明程序中涉及的所有数据。
数据部下设节,节下面是描述体(4)过程部(PROCEDURE DIVISION):是程序的核心部分,它决定计算机应进行什么操作。
过程部可以设节,下面再设段,也可以直接设段(部-节-段-句子-语句-子句)3.COBOL 源程序的书写格式:第1 至6 列为―标号区‖。
第7列为―续行标志区‖。
第8至此11列,称为―A区‖。
程序中有些内容如部头,节头,段头,层号01,层号77 及文件描述符FD等应从A区开始写。
第12至此72列,称为―B区‖。
写程序中的正文部分。
如过程部中的句子只能从B 区开始写。
第73至80列,称为―注释区‖。
书写注意事项:运算符(如加、减、乘、除、乘方)和等号左右两边必须各留一个空格。
在过程部中左括号的左侧和右括号的右侧要留一空格,而内侧不必留空格。
逗号、句号、分号的左边不能留空格,而右边应有空格。
4.COBOL语言的元素―#‖―!‖―?‖―%‖只能在COBOL程序中的字符串中出现。
每一个COBOL字不能超过30个字符。
5.数据名的定名规则(1)每个数据名的长度为1-30个字符之间。
(2)只能由字母数字和连接符―-‖组成,而且其中至少应有一个字母。
连接符只能出现在数据名的中间。
(3)数据名中不能出现空格。
(4)不应选择COBOL的保留字作为数据名。
(5)并不要求数据名是有意义的英文字。
6.COBOL程序的运行JCLU21.标识部(1)必写部分IDENTIFICATION DIVISION. (标识部)PROGRAM-ID. 程序名. (程序标识段)程序名不超过30个字符。
.编码格式•第1~6列为序号区,用于表示行号。
行号不是必须的,也不必是顺序的,甚至可以是本机字符集中的任意字符,但正确的行号是很重要的。
•第7列为指示区,可以包含如下指示符:"*"指示本行内容为注释。
"-"指示本行代码为上一行的延续。
"D"指示本行代码为调试代码,将在启用DEBUGGING模式时被编译,未启用时将被忽略。
"/"指示编译器为源码列表开始新的一页,并且本行将被视为注释。
•第8~11列为A区。
下列项必须从A区开始:部标题(DIVISION)节标题(SECTION)段名(段标题)层指示符FD和SD,层号01和77DECLARATIVES 和END DECLARATIVESEND PROGRAM•第12~72列为B区。
作为程序主体的条目(entries),句子(sentences),语句(statements),从句(clauses)和续行(/)等都必须从B区开始。
*句法说明:节(SECTIONs)和段(paragraphs)定义了程序,它们又细分为以下部分:条目(entries):以句点(.)结尾的一系列从句。
构造于标识部、环境部和数据部。
从句(clauses):连续的COBOL字符串的有序集合,用于指定条目的某个属性。
构造于标识部、环境部和数据部。
句子(sentences):以句点(.)结尾的一个或多个语句的序列。
构造于过程部。
语句(statements):指定程序要执行的某个动作。
构造于过程部。
短语(phrases):构成从句和语句的更小单元。
2.基本结构----|----1----|----2----|----3----|----4----|----5----|----6----|----7----|----8//标识部000001 IDENTIFICATION DIVISION.000002 PROGRAM-ID. PGMNAME. //指定本程序名。
C O B O L学习笔记_20121231cobol语言.修订版.(上册+下册).pdf2012-12-14(1~22 )COBOL语言特点:(1) 适合数据处理(算术计算量小而逻辑处理多;输入输出数据量大;数据间有一定逻辑关系,即层次关系;大量分类排序;对报表要求高、多样化等)(2) 接近自然语言英语,易于理解(3) 通用性强,易于移植(4) 结构严谨,层次分明,每个程序分为4部分(division:标示部Identification division、环境部envroNment division、数据部data division、过程部procedure division)、每部分分为若干节(section 有节头标示,类似部头)、节下面分为若干段(paragraph 有段头标示)。
每一部分都有固定格式。
(5) 缺点是比较繁琐。
不乱程序逻辑如何,都必须按照四大部分生成,对每部分都必须定义和说明,即使该部分实际上没有内容,也要写出头部,导致源程序冗长。
=================一个简单的COBOL程序:Code:IDENTIFICATION DIVISION.PROGRAM-ID. EXAM1.ENVIRONMENT DIVISION.DATA DIVISION.PROCEDURE DIVISION.S. DISPLAY 'THIS IS A COBOL PROGRAM.'STOP RUN.=================IDENTIFICATION DIVISION: 用来指定源程序名称,也可写入其他信息(如作者、日期、保密等)。
ENVIRONMENT DIVISION: 程序中用到的数据文件名和计算机的设备的对应关系,即把某一数据文件和一外部设备关联起来。
此外,还可以指定目标程序中使用的专门控制方法和程序所用内存区的大小。
DATA DIVISION: 程序用到的所有数据的类型和占用内存的情况。
1.DATA ITEM NAMING RULES:长度为30个字节;字符包括A-Z,a-z,0-9和‘-’;横线不能出现在第一个或最后一个;COBOL 关键字用;至少包含一个字符。
2.DATA STRUCTER LEVEL NUMBER77定义一个独立的变量66重命名88定义条件名3.DATA TYPEAlphabetic, Alphanumeric, Alphanumeric-edited, Numeric, Numeric-editedP-1,COMP-2,COMP-3,COMP,COMP-5COMP-1:指定内部浮点项目(双精度),8个字节长COMP-2:指定内部浮点项目(单精度),4个字节长COMP-3:压缩十进制(1个字节有两位)COMP-4(COMP):二进制存储COMP-3是IBM Mainframe特有,特意将一下:COMP-3 数据类型同样以二进制的形式保存在文件中,其占位数计算方法如下:占位数 =[ 定义长度 /2+1] [] 表示整COMP-3 数据在文件中存储形式如下例:例如:定义形式 -- 9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3赋值: 1521 存储结果: 01 52 1F(F表示正数)赋值: 0 存储结果: 00 00 0F COMP-3 带有符号位时,赋值为正时,最后半个字节为 16 进制 C ;赋值为负时,最后半个字节为 16 进制D例如:定义形式 -- S9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3赋值: -1521 存储结果: 01 52 1D (D 表示负数 )赋值: 1521 存储结果: 01 52 1C注意:当 COMP-3 的数据定义无 S ,赋予负值时,最后半个字节仍为 F ,即无法显示负数5.COBOL中常量ZERO(ZEROS,ZEROES):数字令或者字符“0”SPACE(SPACES):空格HIG-VALUE(HIGH-VALUES):将对应的二进制码全部置为1LOW-VALUE(LOW-VALUES):将对应的二进制码全部署为0QUOTO(QUOTOS):引号ALL:相应字符连接而成的字符串6.Arithmetic FunctionFUNCTION SUM(17,21,4.5,-6):计算总和FUNCTION SQRT(11):开平方FUNCTION INTEGER(4.5):取整FUNCTION INTEGER-PART(4.5):四舍五入7.Alphabetic FunctionFUNCTION CHAR(65):ACISS码转换FUNCTION LENGTH('KKKKK'):判断字符长度FUNCTION NUMVAL('+109'):字符转换成数字FUNCTION REVERSE('ABCD'):逆序排列FUNCTION ORD('A'):ACISS码转换8.Range FunctionsFUNCTION MAX(-21,15,2.4):选取最大值FUNCTION MIN(-21,15,2.4):选最小值FUNCTION ORD-MAX:最大值的位置FUNCTION ORD-MIN:最小值的位置FUNCTION RANGE1、COBOL简介COBOL是Common Business-Oriented Language(公用面向商业的语言)的缩写。
Cobol With tamic
0 、变量和数组声明
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= B
End-if.
4 、函数模块调用
1)、调某函数块
PERFORM A3000-DETAIL2-EDIT THRU A3000-EXIT.
2)、循环调某函数块
PERFORM A3000-DETAIL2-EDIT util COND1 .循环调某函数块到满足条件为止。
3) go to.
5 、一般数据操作
1)、和数据库建立连接
EXEC TAMIC-DB
OPEN I-O FILE("YEDMVDTL")* 打开数据库连接
END-EXEC.
2)、执行查询
INITIALIZE YEDMVDTL-REC
EXEC TAMIC-DB
START FILE ("YEDMVDTL") GTEQ FROM (YEDMVDTL-REC) –打开数据表,获取满足条件的记录
END-EXEC.
IF SUCCESS ----success 系统变量,判断数据库连接是否成功。
PERFORM 15000-CLEAR-FILE UNTIL IS-EOF
*循环调用一直到满足条件为止
END-IF.
3)、读取数据
EXEC TAMIC-DB
READNEXT FILE("YEDMVDTL") INTO(YEDMVDTL-REC) *读取下一条数据记录到yedmvdtl_rec中
END-EXEC
4)、更新或新建数据
WRITE FILE ("YEDMVDTL") FROM (YEDMVDTL-RECORD)
5)、删除数据
DELETE FILE ("YEDMVDTL") FROM (YEDMVDTL-REC)
6 、文件操作
1)、环境部申明内容
ENVIRONMENT DIVISION.
MF SELECT IWYYMMDD-AFT ASSIGN TO DYNAMIC WS-FILENM-AFT(文件名)* 申明文件操作
ORGANIZATION IS LINE SEQUENTIAL * 每次读取一行
ACCESS MODE IS SEQUENTIAL * 块操作
FILE STATUS IS FILE-STATUS. * 文件读写状态参数2)、数据部申明内容
DATA DIVISION.
FILE SECTION.
FD IWYYMMDD-AFT
* LABEL RECORDS ARE STANDARD.
DATA RECORD IWYYMMDD-AFT-RECORD.
01 IWYYMMDD-AFT-RECORD.
05 FILLER PIC X(300).
01 IF-END-OF-FILE PIC X.
01 WS-FILENM-AFT.(文件名)
05 FILLER PIC X(17).
01 WK-IWYYMMDD-AFT-RECORD.
03 IWYYMMDD-AFT-RECORD1 PIC X(124).
03 FILLER1 REDEFINES IWYYMMDD-AFT-RECORD1.
05 IWYYMMDD-AFT-RECORD-TTALINTCON PIC 9(06).
05 IWYYMMDD-AFT-RECORD-TTADRAMT PIC S9(14)V99.
05 IWYYMMDD-AFT-RECORD-TTACRAMT PIC S9(14)V99.
3)、打开读取文件
STRING "./IF/","FTGL",WK-PRODATE(5:4),".TXT"
DELIMITED BY SIZE INTO WS-FILENM-AFT.
OPEN OUTPUT(INPUT)IWYYMMDD-AFT. –打开文件指定输出到(IWYYMMDD-AFT)
READ IWYYMMDD-AFT NEXT .读取下一行
写文件
Write IWYYMMDD-AFT.
MOVE IWYYMMDD-AFT-RECORD TO WK-IWYYMMDD-AFT-RECORD(按结构读取文件中一行内容到结构变量上)
4)、关闭文件
CLOSE IWYYMMDD-BEF.。