元のソースコード
******************************************************************
* Author:
* Date:
* Purpose:
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. TESTCOBOL6.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPF ASSIGN TO 'EMPFILE'
ORGANIZATION INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS EMPKEY.
SELECT PRINTF ASSIGN TO 'EMPDATA.TXT'.
DATA DIVISION.
FILE SECTION.
FD EMPF.
01 EMPF-REC.
03 EMPKEY PIC X(3).
03 EMPNO REDEFINES EMPKEY
PIC 9(3).
03 EMPNAME PIC X(10).
FD PRINTF.
01 PRINT-REC PIC X(22).
WORKING-STORAGE SECTION.
01 PRINT-H.
03 FILLER PIC X(10) VALUE "社員番号".
03 FILLER PIC X(10) VALUE "社員名".
03 FILLER PIC XX VALUE X"0D0A".
01 PRINT-D.
03 FILLER PIC X(2) VALUE SPACE.
03 EMPKEY-P PIC X(3).
03 FILLER PIC X(5) VALUE SPACE.
03 EMPNAME-P PIC X(10).
03 FILLER PIC XX VALUE X"0D0A".
77 END-F PIC X.
77 人数 PIC ZZZ.
77 NIN PIC 999.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "社員一覧表出力中"
OPEN INPUT EMPF
OUTPUT PRINTF.
WRITE PRINT-REC FROM PRINT-H.
PERFORM UNTIL END-F = "E"
READ EMPF AT END
MOVE "E" TO END-F
NOT AT END
ADD 1 TO NIN
MOVE EMPKEY TO EMPKEY-P
MOVE EMPNAME TO EMPNAME-P
WRITE PRINT-REC FROM PRINT-D
END-READ
END-PERFORM.
MOVE NIN TO 人数.
DISPLAY "社員は" 人数 "人".
CLOSE EMPF PRINTF.
STOP RUN.
END PROGRAM TESTCOBOL6.
対象のプログラムにはセクションが検出されませんでした
フローチャート図で表現したもの
%%{init: {'theme':'base','themeVariables':{
'primaryColor':'white',
'primaryTextColor':'#000000',
'primaryBorderColor':'#000000',
'lineColor':'#808080',
'textColor':'#6A7FABCC',
'fontSize':'15px'}}}%%
%%{ init: { 'flowchart': { 'curve': 'basis' } } }%%
graph TD;
classDef default fill:#FFFFE0,stroke:#333,stroke-width:2px;
classDef clrPattern1 fill:#FFFF00,stroke:#333,stroke-width:2px;
classDef clrPattern2 fill:#F0E68C,stroke:#333,stroke-width:2px;
classDef clrPattern3 fill:#ADD8E6,stroke:#333,stroke-width:2px;
classDef clrPattern4 fill:#FFC0CB,stroke:#333,stroke-width:2px;
classDef clrPattern5 fill:#ADFF2F,stroke:#333,stroke-width:2px;
linkStyle default stroke:#808080,stroke-width:2px;
%%データ項目
s([処理開始])-->
19[/"46行目
「社員一覧表出力中」を表示する"/]:::clrPattern5
20[/"47行目
INPUTモードで従業員ファイルを開く"/]:::clrPattern4
21[/"48行目
OUTPUTモードで印刷ファイルを開く"/]:::clrPattern4
22[/"49行目
印刷行に書き込む"/]:::clrPattern5
23[/"50行目
ファイルの終端フラグ = 「E」が満たされるまで繰り返す"\]:::clrPattern2
24[/"51行目
従業員ファイルを読み込む"/]:::clrPattern4
25["51行目
ファイルの終端に達した場合"]
27["52行目
ファイルの終端フラグに「E」を代入する"]
28["53行目
ファイルの終端に達していない場合"]
29["54行目
1とNINを加算して結果をNINに代入する"]
30["55行目
従業員キー-Pに従業員キーを代入する"]
31["56行目
従業員名-Pに従業員名を代入する"]
32[/"57行目
印刷行に書き込む"/]:::clrPattern5
33["58行目
読み込み終了する"]
34[\"59行目
繰返文を終了する"/]:::clrPattern2
35["60行目
人数にNINを代入する"]
36[/"61行目
「社員は」 人数 「人」を表示する"/]:::clrPattern5
37[/"62行目
従業員ファイル 印刷ファイルを閉じる"/]:::clrPattern5
38["63行目
実行を終了する"]
%%ルート設定
19-->20
20-->21
21-->22
22-->23
23-->24
24-->25
25{ファイルの終端
に達したか}:::clrPattern1
25-->|終端に達した場合|25True[51行目
ファイルの終端に達した場合]--->27
25-->|終端に達しない場合|28
27-->33
28-->29
29-->30
30-->31
31-->32
32-->33
33-->34
34-->|繰返文を継続する|23
34-->|繰返文を終了する|35
35-->36
36-->37
37-->38
38-->
e([処理終了])
style j1 color:red,fill-opacity:0, stroke-opacity:0
style j2 color:red,fill-opacity:0, stroke-opacity:0
subgraph j1["ファイルの終端に達した場合"]
subgraph j2[ ]
25
end
end