cobol基本语法概要

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

cobol基本语法

(2009-12-04 11:03:14)

cobol

基本

语法

REDEFINES

可以用不同的变量描述同一内存。

01 PART_RECODE USAGE DISPLAY

03 PART-TYPE PICTURE...

03 PART_TYPE_A.

05 PART_NUMBER PICTURE...

05 PART_COST PICTURE...

03 PART_TYPE_B REDEFINES PART_TYPE_A.

05 UPC_CODE PICTURE...

03 PART_TYPE_C REDEFINES PART_TYPE_A.

05 ISBN PICTURE...

根据PART_TYPE决定用PART_TYPE_A还是PART_TYPE_B还是PART_TYPE_C。

规则:

PART_TYPE_B和PART_TYPE_C长度不能大于PART_TYPE_A。

数据项不能有VALUE。

01层不能用REDEFINES.

PART_TYPE_B和PART_TYPE_C中不能有OCCURS.

PICTURE

定义基本项目的具体长度,格式,数据类型。可以简写成PIC.

格式字符串最多30个字符,可以包含下列字符:

A 字母A-Z,a-z,空格

B 插入空格

P 标量字符,代表字段中不显示的小数点位置

S 代数符号,实际显示取决于项目的USAGE

V 小数点位置

X 任何字符

Z 抑制前头的0并转换成空字符

0 插入0

9 数字0~9

/ 插入/

, 插入,(逗号不能作为字符串的最后一位,最后时逗号是分隔符)

. 插入.

* 抑制前头的0并转换成*

+ 正值插入+,负值插入-

- 正值插入空格,负值插入-

$ 插入美元号

CR 正值插入两个空格,负值插入CR

DB 正值插入两个空格,负值插入DB

例子:

03 VAR PIC AAAAA. VAR变量长度为5个字符,不能有数字,等价于03 STATE PIC A(5)。 输入ASDFG ,显示ASDFG

03 VAR PIC XXXXX. VAR变量长度为5个任意字符。等价于03 FILLER PIC X(5)。

输入123AS , 显示123AS

03 VAR PIC 99/XXX/9999 长度11,输入05may2004,显示05/may/2004

03 VAR PIC 0ABXXX/9999 长度11,输入05may2004,显示05 may/2004

03 VAR PIC 9(3) 长度3,0~999之间。

03 VAR PIC 9(4)V99 长度6,0.00~9999.99之间。

03 VAR PIC S9(5)V99 长度7,-99999.99~99999.99之间。

03 VAR PIC 9(6)PPP 长度6,可以是1000,2000,...,999999000。输入1234,显示1000。

03 VAR PIC PPP999 长度3,0.000001~0.000999之间。输入123,显示0.000123。

03 VAR PIC ZZZ.99,输入100.50,显示100.50;输入-51.50,显示51.50;

输入0,显示.00.

03 VAR PIC $ZZZ.ZZ-,输入100.50,显示$100.50;输入-51.50,显示$51.50-;

输入0,显示

03 VAR PIC $***,***.99CR,输入1000,显示$**1000.00;输入-1000,显示$**1000.00CR;

输入0,显示$***,***.00;输入51.5,显示$***,*51.50

03 VAR PIC $$$,$$$.99,输入100.50,显示$100.50;输入-100.50,显示$100.50;

输入0.777,显示$.77;输入0,显示$.00

03 VAR PIC $.$$$,输入1.00,显示$.00;输入0.65,显示$.65;

输入0,显示$.00;

03 VAR PIC $--,输入17.7,显示$17;输入-17.7,显示$-17;

输入-5,显示$-5

03 VAR PIC $999.99+,输入100.50,显示$100.50+;输入-100.50,显示$100.50-;

03 VAR PIC 9(3)B9(3),输入55,显示000 055;输入1000.78,显示001 000;

03 FILLER PIC X(44),补上44个空位。

USAGE 表示基本或组数据的类型。有BINARY,COMPUTATIONAL(COMP),DISPLAY,INDEX,PACKED-DECIMAL.

JUSTIFIED

03 VAR1 PIC X(5) JUSTIFIED RIGHT.

03 VAR2 PIC X(5).

输入XYZ,VAR1显示的是" XYZ",VAR2显示的是"XYZ "。

BLANK WHEN ZERO

03 VAR PIC $999,999.99 BLANK WHEN ZERO.

当字段值为0,这个项目设置为全部空格。

VALUE

定义的时候就赋值。

03 VAR PIC X(5) VALUE "ABCDE".

01 VAR VALUE ALL SPACES.

03 VAR1 PIC XXX.

03 VAR2 PIC XX.

算术语句

COBOL中操作符执行顺序为:取正(+)、取负(-)最高级,指数操作(**)其次,乘(*)、除(/)再其次,加(+)、减(-)最后。 ROUNDED 舍入操作。

77 A PIC 9V9 VALUE 9.1.

77 B PIC 9.

ADD 0.5 TO A GIVING B ON SIZE ERROR GO TO PROC1.

ADD 0.5 TO A GIVING B ROUNDED ON SIZE ERROR GO TO PROC2.

END-ADD.

ON SIZE ERROR 是当语句出现错误时执行的。本例中第一句话执行没有错误,所以ON SIZE ERROR

不执行PROC1.第二句话,当0.5加上9.1得到9.6,因为有ROUNDED,所以执行舍入操作,得到10。而B只有1位数字,所以发生错误,执行ON SIZE ERROR操作,跳转执行PROC2。

CORRESPONDING(CORR) 数据项同名时编写多条语句。ADD和SUBSTRACT有此选项。

01 A.

03 B.

05 B1 PIC 999V99.

05 B1 PIC 999V99.

05 B1 PIC 999V99.

03 C.

05 B1 PIC 999V99.

05 B1 PIC 999V99.

05 B1 PIC 999V99.

则语句ADD CORR B TO C.相当于执行了下面3条语句。

ADD B1 OF B TO B1 OF C.

ADD B2 OF B TO B2 OF C.

ADD B3 OF B TO B3 OF C.

组项目不一定要格式相同。一个组项目中的内容在另一个组项目中可以没有,数据项顺序也无关紧要。只是严格按照数据项名称对应。

ADD A,B GIVING C. END-ADD. 将A,B相加放入C。

SUBTRACT A,B FROM C. END-SUBTRACT. 从C中减去A,B.

MULTIPLY A BY B GIVING C. END-MULTIPLY. 将A,B相乘放入C。

DIVIDE A INTO B GIVING C. END-DIVIDE. 将B除于A的结果放入C.

DIVIDE A BY B GIVING C. END-DIVIDE. 将A除于B的结果放入C.

DIVIDE A BY B GIVING C REMAINDER D. 将A除于B的商放入C,余数放入D.

D=A-B*C.

77 C PIC S99V9.

77 D PIC S99V9.

相关文档
最新文档