Cobol基本语法总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
コボル基本語法
一、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打开前动态指定文件路径。
方法三:(环境变量中动态指定文件)
SELECT FILE-LOG ASSIGN TO EXTERNAL EXTFILELOG
ORGANIZATION IS LINE SEQUENTIAL.
在该程序运行前,设置环境变量:
setenv dd_ EXTFILELOG /usr3/WSI/nco035/lsc/tstlog/WSIXXXX.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).
05 STR-1 PIC X(10).
b) 层号依次排列顺序为:01 ,05,10,15,20,30 ·······
c.连接节
子程序的参数的定义。
4、过程部(PROCEDURE DIVISION)
程序的主体:程序的逻辑运算在此操作。
a、每个程序分为四大节(模块),
·前处理(初始化变量,设定初始值等)
·主处理(程序业务处理部分)
·后处理(程序正常结束时的出口)
·错误处理(程序异常结束时的出口)
b、对于子程序,PROCEDURE DIVISION 后应列出LINK节中定义的参数。
如: PROCEDURE DIVISION USING LINK-INPUT-DATA LINK-OUTPUT-DATA.
c、程序结束。
·主程序 STOP RUN.
·子程序 GO BACK.
5、变量类型
COBOL程序的基本变量类型分为两大类字符串型(X)、数值型(9)。
a 字符串型
01 STRING-A PIC X(100).
100个字符长的变量,程序可以局部操作一个变量( STRING-A(start: length)如:
MOVE ALL “X”TO STRING-A(2:10)
(将变量STRING-A第2位开始10长度的内容全赋为”X”字符) b 数值型
注:1、对于出力型数值变量,可以用9代替Z,它们的区别是:
结果为零的整数部高位:Z型变量用空格显示,9型变量用零显示
2、COBOL语言中数值型变量种类很多,针对不同的要求有不同的数值类型。
c、在COBOL变量定义时,可以加入格式字符串字符。
d、不同类型变量间赋值。
整数
1、字符串中数值部分可以作为对应长度的DISPLAY型变量给其它各种数值型变量。
2、DISPLAY型变量(包括出力型变量)被赋值时,超出它表示范围的数可以被接受,但截去超出的高位。
3、COMP型变量被赋值时,超出它表示范围的数不能被接受。
小数
1、DISPLAY型变量(包括出力型变量)被赋值时,超出它表示范围的数可以被接受,但整数部截去超出的高位,
小数部截去低位。