cobol学习笔记
cobol学习02——基本语句

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学习基础教程 01

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基础知识

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知识点写在前面:本知识点总结为本人根据一本图书馆借来的书总结出来本专业本外教课最终有可能考到的知识点,考试为英文卷子,本总结为中文。
其中带星号的可当课外知识记,是那本书中为学到的知识点中较简单的部分,应该不会考到。
且本总结不是考试范围,只是帮助大家理解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常用知识

コボル基本語法一、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知识点集锦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位数据即可。
07_第十课_COBOL编程入门

e.g compute A = a * (b + c) – d
一、标识部
北京德派克公司
作用:标识COBOL源程序名及一些备忘信 息,以供系统管理和调用。 格式:
IDENTIFICATION DIVISION. PROGRAM-ID. 程序名. [AUTHOR. 作者姓名] [……]
二、环境部
商业数据处理:银行、证券系统 数据管理领域:人事管理、库存管理、财 会工作、报表统计、情报检索等。
数据处理的特点:算术计算量少而逻辑处理 多;输入输出量大;数据间存在着一定的 逻辑关系;大量的分类排序。主要功能是 描述数据结构和分析处理大批量的数据。
COBOL语言特点
北京德派克公司
常量
北京德派克公司
数值常量 100,30,29.2,-123 非数值常量 ‘abc’‘123’ 表意常量 ZERO/ZEROS/ZEROES,SPACE/SPACES, HIGH-VALUE,LOW-VALUE,ALL
编码方式
北京德派克公司
COBOL的源程序书写格式
区间 关 键点
北京德派克公司
北京德派克公司
·每个字符占一格 ·主机系统一般都用大写字母。 ·相邻的两个字(如COBOL的保留字或用户自定义)之间 必须留一个以上的空格。 ·运算符(如加、减、乘、除、乘方)和等号左右两边必 须各留一个空格。在过程部中左括号的左侧和右括号 的右侧要留一空格,而内侧不必留空格。 ·逗号、句号、分号的左边不能留空格,而右边应有空 格。 ·一个空格和多个空格作用相同
HOST LANGUAGE SOURCE
COMPILE OBJECT MODULE
cobol实例以及入门基础

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 (标识部)主要⽤来指定源程序名字,也可以写⼊其他⽤作备忘的某些信息(如⽇期、作者等)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.。