cobol基本语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本語法
一、COBOL基本語法
一、cobol的书写格式(每行)
1、前6列为序号区(一般不编辑)
2、第7列为标示列,仅可以写如下几个标示符。
a. “*”注释符(注释当前行的代码)
b “-“字符串连接符
3、第8列---11列为A区,包括以下内容。
a 部、节名。
b 层号01
4、第12列---72列为B区,过程部的程序必须写在B区中。
5、第72以后部分不能编辑。
二、cobol的语法结构(几大部分)
1、标示部(IDENTIFICATION DIVISION):提供程序的一般性文档说明。
2、环境部(ENVIRONMENT DIVISION): 提供程序外部有关的项目。
a.配置节(CONFIGURATION SECTION)
①.指定源计算机(SOURCE-COMPUTE).
②.目标计算机(OBJECT-COMPUTE).
b. 输入输出节(INPUT-OUTPUT SECTION).
文件的物理路径的定义。
方法二:(过程部中动态指定文件)
SELECT FILE-LOG ASSIGN TO SELECT-FILE
ORGANIZATION IS LINE SEQUENTIAL.
在数据部定义字符串变量SELECT-FILE,在文件FILE-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型变量(包括出力型变量)被赋值时,超出它表示范围的数可以被接受,但整数部截去超出的高位,
小数部截去低位。
2、COMP型变量被赋值时,整数部超出它表示范围的数不能被接受,小数部超出它表示范围的数可以被接受,
但小数部截去低位
注: 以上所述赋值变量为任何类型的数值型变量(经过严格测试得出结论)。
e、字符型比较。
·字符串比较时,系统自动截去尾部空格(如“a “= “a”)。
·数字的数值形式和数字字符形式相等(如“1234567890” = 1234567890)
·综合以上两点, 有“12 “= 12
二、基本语法:
1、赋值语句MOVE。
a、将一个变量赋给另个变量
move a to b.
b、将一个变量同时赋给另外两个变量。
Move a to b c .
c、将一个变量全部赋为某个字符
move all “x”to a.
d、对于赋值溢出,截取的方式为.
·字符型变量截去左边的溢出部分。
·数值型变量截去整数部高位、小数部低位的溢出部分。
e、组和项传送,它们的数据结构必须相同
f、对于组合项成员的局部引用,应该如下:
01A-AREA.
05 STR-1 PIC X(10).
05 STR-2 PIC X(10).
01B-AREA.
05 STR-1 PIC X(20).
05 STR-2 PIC X(10).
MOVE STR-1 OF A-AREA(1:4) TO STR-1 OF B-AREA(1:4).
3、四则运算
原则上,四则运算不用助记符语句,但对于简单运算( ++,--),可采用助记符语句。
a、加法( ADD 1 TO NUM-1)
b、减法(SUBTRACT 1 FROM NUM-1)
c、其它所有运算均采用COMPUTE 语句
COMPUTE NUM-1 = NUM-2 + NUM3 * 10
运算符如下:
+ 加
- 减
* 乘
/ 除
** 指数
在COMPUTE语句中,变量和运算符间至少留有一个空格。