COBOL源程式的書寫格式。
1~6列,為“标号區”。
第7列,是“續行标志區”。
第8~11列,稱為“A區”,第8列稱為“A區邊界”。
第12~72列,稱為“B區”。
第73~80列,稱為“注釋區”
過程部:
過程部是程式中的第四部分,以:PROCEDURE DIVISION 開頭
節-段-句子-語句
過程部的程式以一個動詞開始,如ADD,OPEN,READ,WRITE,IF(在Cobol中if也做動詞對待),表示計算機應執行的部分。
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隻是把1900除400的結果送給R
是以COMPUTE的結果為0。
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 程式名.