cobol之旅---基础知识2

本文介绍了COBOL编程的基础知识,包括源程序的书写格式、运算符的使用,如ADD、SUBTRACT、MULTIPLY、DIVIDE等,并展示了如何进行加减乘除运算。此外,还涵盖了ACCEPT、DISPLAY、GO TO、IF条件语句、READ和WRITE等流程控制语句的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

COBOL源程序的书写格式。

16列,为“标号区”。

7列,是“续行标志区”。

811列,称为“A区”,第8列称为“A区边界”。

1272列,称为“B区”。

7380列,称为“注释区”

                                                                                                                                    

过程部:

过程部是程序中的第四部分,以:PROCEDURE DIVISION 开头

--句子-语句

过程部的程序以一个动词开始,如ADD,OPEN,READ,WRITE,IF(Cobolif也做动词对待),表示计算机应执行的部分。

 

 

ADD语句(加法)

几种常见的运算:

ADD A TO B          A+B=B

ADD A,B TO C        A+B+C=C

 

ADD A,B GIVING C    A+B=C

 

ADD A,B TO C,D       A+B+C=C  A+B+D=D

ADD A,B HIVING C,D   A+B=C  A+B=D

 

注意  TO GIVING 后面只能跟数据名,TO前后数据名不要随便更改,GIVING后面可以跟几个数据名,不能跟常量,参加运算的只能是数值常量

 

不同的组合项中可以包含相同名字的数据项。

01 A.

       02 B1.

              03  C…

              03  D…

       02 B2.

              03  C...

              03  D....

ADD C OF B1 TO D OF B1

                                                                                                                                                         

SUBTRACT语句(减法)

SUBTRACT A FROM B             B-A=B

SUBTRACT A,B FROM C                   C-A-B=C

SUBTRACT A,B FROM C,D         C-A-B=C  D-A-B=D

SUBTRACT A,B FROM C GIVING D  C-A-B=D

 

MULTIPLY语句(乘法)

MULTIPLY  A  BY  B                          A*B=B

MULTIPLY  0.5  BY  A                        0.5*A=A

MULTIPLY  A  BY  B  GIVING C              A*B=C

                                                                                                                                                     31-

DIVIDE 语句(除法)

DIVIDE  A  INTO  B                                B/A=B

DIVIDE  A  INTO  B  GIVING  C            B/A=C

DIVIDE  A  BY  B  GIVING C                    A/B=C

 

  

加、减、乘、除语句 特点:

1.一个语句只能进行一种单一的运算,不能在一个语句中实现两种不同的运算。

2.加法和减法语句可以进行两个以上数值量的计算

       ADD  A,B TO C

       SUBTRACT  A,B FROM C

乘法、除法语句只能在两个量之间进行,既只能进行一次乘法或者除法。

3.四种算数语句,都有两种形式,既带GIVING部分和不带GIVING部分的。

 

1

IDENTIFICATION  DIVISION                 (标识部)

PROGRAM-ID.     EXAM.                       

ENVIRONMENT          DIVISION.            (设备部)

DATA      DIVISION.                                 (数据部)

WORKING-STORAGE         SECTION.     (工作单元节)

77    N     PIC 99                                       //两个字节的数据项。

PROCEDURE        DIVISION.                   (过程部)

 

       ACCEPT N                                        //接受语句 等待从指定的设备上接受数据给N

       ADD  3  TO  N.

       DIVIDE  5 INTO  N.

       SUBTRACT  2  FROM  X.

       MULTIPLY     8     BY   N.

       DISPLAY       N.

       STOP     RUN.

 

ADD DAYTIME TO TIME GIVING SUMTIME

MULTIPLY SUMTIME BY STM GIVING SUMMONY

MULTIPLY SUMMONY BY BILI GIVING DELE

SUBTRACT DELE FROM SUMMONY GIVING SALARY

 

取余:

DIVIDE 400 INTO T1 GIVING R REMAINDER C.

C就是你要取的余数。

单纯GIVING R只是把1900400果送R

所以COMPUTE0

 

COMPUTE (计算语句)

COMPUTE 可以进行比较复杂的运算

COMPUTE T = (A + B) * C / D

 

MOVE (传送语句)

将一个数据从一个内存域送到另一个内存域中。是数据在内存中的传送,而不是内存和外部设备之间的传送。

MOVE  A TO B     A为发送项,B为接收项

 

ACCEPT (接受语句)

 

DISPLAY (显示语句)

 

GO TO (转向语句)

是一个无条件转向语句。

格式1 GO  TO  过程名

格式2:    GO  TO  过程名1 [,过程名2] 。。。过程名n  DEPENDING        ON    标识符

GO  TO  A,B,C,D,E DEPENDING      ON   I

I=1时,转到A段,I=2时,转到B段,I=3时,转到C段,以此类推,I=n时,转到GO TO后面的第n个过程名所指定的节(段)去。

如果GO TO后面只提供五个过程的名字,则I的值应1<=I<=5,否则执行此语句时出错。

 

ACCEPT NUM

ACCEPT NUM

DIVIDE  50    FROM    NUM      GIVING  I

ADD       1  TO I 

GO  TO A,B,C,D,E DEPENDING ON I

A  COMPUTE      T = NUM * 10.

       GO  TO F.

B     COMPUTE     T = NUM*9.

       GO  TO  F.

 

F     DISPLAY       NUM,     T .

 

IF    (条件语句)

 

IS  GREATER  THAN    / IS  >    

IS  LESS  THAN        / IS  <

IS  EQUAL  TO                /IS =

NOT  GREATER  THAN    /NOT      >

NOT  LESS  THAN           /NOT      <

NOT       EQUAL   TO         /NOT      =

 

例如:IF              A     NOT       GREATER      THAN     0     DISPLAY       A.

         IF              A     NOT       >     0     DISPLAY       A.

如果A不大于0

 

 

两种基本形式:

       IF    条件       语句

       IF    条件       语句1     ELSE      语句2

 

读语句(READ语句)

READ  CARD-FILE    INTO      T     AT   END       GO  TO  A1

=READ       CARD—FILE        AT   END       GO  TO  A1

       MOVE    CARD—RECORD         TO  T.

READ     文件名    RECORD [INTO标识符] [; AT   END       强制语句]

 

写语句(WRITE语句)

写语句是将内存中一个输出记录区的内容输出到指定的外部介质上

WRITE   T     将记录名为T的记录内容输出。

 

打开语句(OPEN语句)

如果需要读写文件,必须先用OPEN语句打开,系统在执行READ(读)前会检查该文件是否已在规定的外部设备上准备好。

OPEN     INPUT    X1,X2,X3  打开输入文件。 用读语句从X1,X2,X3文件上读入数据

OPEN     OUTPUT        Y1,Y2,Y3 打开输出文件。用写语句将相应的记录输出给这些文件。

 

关闭语句(CLOSE

对一个文件读或写的操作已完成,应关闭不在使用的文件。

CLOSE   文件名1[,文件名2].。。。。。。。

 

停语句(STOP)语句

执行此语句将程序停止运行。

STOP  RUN/常量

STOP常量,表示程序暂时挂起不往下执行,在控制台上显示出此常量。

 

 

标识部和设备部

标识部,程序中不可缺少的部分。作用:表示一个COBOL源程序,既为程序加上标志,以便识别。

必写部分:IDENTIFICATION  DIVISION

                PROGRAM—ID  程序名.

                                                                                                                                                  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值