③ 第 2 章 計算機名 使用する計算機により指定方法が異なります。最後に必す終止符を 付けます。このテキストでは , ITEC とします。 注 : 旧 JISCOBOL では省略することはできません。 (b) INPUT-OUTPUT SECTION. I N P U T— O U T P U T S E C T I O N. F I L E ー C O N T R O L. S E L E C T ファイル名 A S S I GN FILE-CONTROL. T O 外部装置名 . ① ② ③ ④ INPUT-OUTPUT SECTION の最初に指定します。最後に必す終 ・英字 , 数字 , ハイフンの組合せ ・ 30 文字以内 データ名の規則に従い付けます。 ファイル名 必ず終止符を付けます。 使用するファイルごとに指定します。 B 領域に記述します。最後に SELECT 止符を付ける。 ・先頭および末尾にハイフンを使用できない ・英字と数字の組合せ ・ 8 文字以内 ・先頭は英字 次の規則に従い付けます。 外部装置名 ・英字を 1 字以上使用 く例 > ・計算機名 : ITEC ファイル名 : INFILE ファイル名 : OUTFILE 外部装置名 : DISK21 外部装置名 : DISK22
1 0 . 1 圧 3 コ 293 整列併合処理 3 プログラムの作成 フローチャートとプログラム I D E N T I F I C AT 10 N D I V I S 1 0 N. PROGRAM-ID. REIIO. E NV I RO NM E N T D I V I S 1 0 N. CONFIGURATION SECTION. SOURCE-COMPUTER. ITEC. OBJECT-COMPUTER. ITEC. INPUT-OUTPUT SECTION. FILE-CONTROL. S E L E C T I N F I L E SELECT OUTFILE ASSIGN TO DISK102. SELECT SORTFILE ASSIGN TO DISK103. DATA DIVISION. FILE SECTION. F D F D 01 SD 0 1 I N F I L E. INREC. 02 1-SCODE 02 1-NYUUKO 02 1-SYUKKO OUTFILE. OUTREC. 02 0-SCODE 02 0-NYUUKO 02 0-SYUKKO SORTFILE. SORTREC. 02 S-SCODE 02 S-NYUUKO 02 S-SYUKKO ASSIGN TO DISKIOI. X ( 6 ) . PIC S9 ( 5 ) . PIC S9 ( 5 ) . X ( 6 ) . P I C S 9 ( 5 ) . P I C S 9 ( 5 ) . X ( 6 ) . P I C S 9 ( 5 ) . P I C S 9 ( 5 ) . P I C 円 C P I C PROCEDURE DIVISION. HAJIME. SORT SORTFILE STOP RUN. G I V I N G 0 U T F I L E U S I N G I N F I L E ON ASCENDING S-SCODE 開 整 終 列 了
10.2 考え方 290 第 10 章 整列併合機能 整列併合用ファイル 可降順 キー 並べ替えのキーの状態は こまテスト 71 事務処理でよく行なわれるコントロールプレイク処理あるいはマッチング処 理に使用される入力ファイルは , ある項目の順に並んでいることが前提となっ ています。また , 売上金額の多い順に並べ替えた後に印字するという処理など もよくあります。このように特定の項目により並べ替えるという処理は多く発 生しますので , COBOL では簡単に記述できるようになっています。この機能を 整列併合機能といいます。並べ替えを行なうためには , 並べ替えるためのキー と並べ替えの方法および整列併合用ファイルの指定をします。 10.2.1 キーと並べ替えの方法 並べ替えのもとになる項目のことをキーといいます。キーは , 各レコード中 で位置 , 桁数およびデータの項類は同しでなければなりません。キーの値の小 さい方から大きい方に並べ替えることを昇順に並べ替えるといい , 大きい方か ら小さい方に並べ替えることを降順に並べ替えるといいます。 1 圧 2.2 整列併合用ファイルの指定 並べ替えを行なうときに作業用としてファイルを使用します。このファイル を整列併合用ファイルといいます。整列併合用ファイルも入出力ファイルと同 様に環境部の SELECT にファイル名の指定をします。 < 例 > 整列併合用ファイル名 : SORTFILE ENVIRONMENT DIVISION. CONFIGURATION SECTION . SOURCE-COMPUTER. ITEC. OBJECT-COMPUTER. ITEC . INPUT-OUTPUT SECTION . FILE-CONTROL. S E L E C T I N 日 L E A S S I G N T 0 田 S K 10 1 . SELECT OUTFILE ÅSSIGN TO 旧 SK102. SELECT SORTFILE ASSIGN TO 旧 SK103.
表引き処理 I D E N T I F I C AT 1 0 N D I V I S IO N. PROGRAM-ID. RE106. E NV I RO N M E N T D I V I S 1 0 N. CONFIGURATION SECTION. SOURCE-COMPUTER. ITEC. OBJECT-COMPUTER. ITEC. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO DISK61. SELECT OUTFILE ASSIGN TO DISK62. DATA D I V I S 10 N. FILE SECTION. F D I N F I L E. INREC. 02 1-SCODE 02 1-TANKA 02 1-SURYOU FD OUTFILE. 01 OUTREC. 02 0-SCODE 02 0-NAME 02 0-TANKA 02 0-KINGAKU PIC X ( 6 ) . PIC S9 ( 5 ) . PIC S9 ( 5 ) . P I C X ( 6 ) . P I C X ( 2 0 ) . PIC S9 ( 5 ) . PIC S9 ( 10 ) . っー っコ 4 、ノ l.n 0 、刀 1 人。オ - 0 ・キ - 0 ” 0 キす 0 ′ 0 レ 0 0 ′ 0 ろ′ . 0 、、 0 ノ 0 。オ 0 、、 0 、ノ 0 一 0 。キ - 0 。 A-J 々′へしリ′、ノレ、、ン ( しロ一フー 1 、ノ—一ア 一ア . セへし . レ一ア「人リ′《しア . 々・ . アーリレ」 、ー 0 っム 、ワしつん、ワ .1 、 0 ん、ワん、ワ、ワ 4 、ー 0 っ、ー 0 っつんへーし Z. ー、 : ・ー、 0 Z. 0 0 0 Ⅱ ) い 0 Z. 0 ↑ー 0 0 一ワしワしつつんっ乙っしつっ・】ワ】つんっ乙っ・】ワしつ・】ワんつんワし一ワし 0 っー・ー 11
296 02 WM-SCODE 02 WM-NYUUKO 02 WM-SYUKKO PROCEDURE DIVISION . < 例 > 第 10 章 整列併合用ファイル名 整列併合用レコード名 : SORTREC キー ( 昇順 ) 入力手続きの手続き名 : SORT-JYUNBI 出力手続きの手続き名 : SORT-ATO : SORTFILE : S-SCODE E N 日 C AT N 旧引 0 N . PROGRAM-ID. SORTIO. ENVIRONMENT DIVISION . CONFIGURATION SECTION . SOURCE-COMPUTER. ITEC. OBJECT-COMPUTER. ITEC. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SORTFILE ASSIGN TO DISK103. SELECT OUTFILE ASSIGN TO PRINTER. SEL E CT 燼 F I L E ÅSS I G N T 0 旧 S K 101 . F I L E SE C T 1 0 N . D Å T Å D I V I S 1 0 N. FD FD 01 S D 01 INF I L E. INREC. 02 1-SCODE 02 1-KUBUN 02 1-RYOU 0 UT F I L E. OUTREC SORTFILE . SORTREC. 02 S-SCODE 02 S-NYUUKO 02 S-SYUKKO P I C X ( 6 ) . P I C X( I) . PIC S9 ( 5 ) . P I C X ( 13 3 ) . PIC X ( 6 ) . PIC S9 ( 5 ) . PIC S9 ( 5 ) . WORKING-STORÅGE SECTION. 01 W-FLÅG 01 W-M 日 S A I . 円 C 02 02 02 HÅJIME. SORT SORTFILE X . X ( 1 D X ( 6 ) . X ( 10 ) P I C S 9 ( 5 ) . P I C P I C P I C P I C 円 C VALUE SPACE. VALUE SPÅCE . VÅLUE SPACE . X ( 1 の S9 ( 5 ) . ON ASCENDING S-SCODE INPUT PROCEDURE SORT-JYUNBI OUTPUT PROCEDURE SORT-ATO STOP RUN .
( 3 ) 入出力処理と計算 E N V I R 0 N ME N T D I V I S 1 0 N . CO N F I G U R A T 1 0 N S E C T 1 0 N. S 0 U R C E ー C 0 M P U T E R . ITEC. 0 B J E C T ー CO M P U T E R . ITEC. I N P U T ー 0 U T P U T S E C T 1 0 N . F I L E ー C 0 N T R 0 L . S E L E CT I N F I L E A S S I GN T 0 D I S K 2 1 . S E L E CT 0 U TF I L E A S S I G N T 0 D I S K 2 2 . DATA D Ⅳ旧 ION. D A T A F I L E F D D I V I S I ON. S E C T I O N. ファイル記述 レコード記述 WO R K I N G ー S T O R A G E S E C T I O N. ① ② ③ 作業領域の確保 DATA DIVISION. COBOL プログラムの 3 番目に記述します。 最後に必ず終止符を付けます。 FILE SECTION. 最後に必す終止符を付けます。 DATA DIVISION の 2 番目に記述します。 WORKING- STORAGE SECTION. います。 FD から始まるファイル記述と 0 1 から始まるレコード記述を行な 最後に必す終止符を付けます。 DATA DIVISION の 1 番目に記述します。
比較処理 4 念 2 プログラムの説明 SELECT OUTFILE ASSIGN TO DISK42. S E L E C T I N F I L E ASS I G N T 0 D I S K 41. FILE-CONTROL. INPUT-OUTPUT SECTION. OBJECT-COMPUTER. ITEC. SOURCE-COMPUTER. ITEC. CONFIGURATION SECTION. E N V I RO N ME N T D I V I S 1 0 N. PROGRAM-ID. RE104. I D E N T I F I C AT 1 0 N D I V I S 10 N. FILE SECTION. DATA DIVISION. F D FD 0 1 I N F I L E. INREC. 02 1-SCODE 02 1-TANKA 0 2 1 ー Z A I KO 02 1-KUBUN 02 1-SURYOU OUTFILE. OUTREC. 02 0-SCODE 02 0-TANKA 02 0-ZAIKO WORKING-STORAGE SECTION. 7 7 W - Z A I KO 77 W-FLAG P I C X ( 6 ) . S9 ( 5 ) . PIC S9 ( 7 ) . X. PIC S9 ( 5 ) . X ( 6 ) . P I C S 9 ( 5 ) . P I C S 9 ( 7 ) . PIC S9 ( 7 ) . P I C P I C P I C P I C X. PROCEDURE DIVISION. HAJIME. PERFORM MAE-SHORI UNTIL W-FLAG STOP RUN. MAE-SHORI. THRU MAE-SHORI-EXIT 開始 前処理 主処理ルーフ 工ンドフラグ = 1 主処理 ファイルの入力 入出庫データの終わり 工ントフラグ← 0 OPEN ファイルの 入口 前処理 後処理 主処理ルーフ 工ンドフラグ← 1 PERFORM SHU-SHORI THRU SHU-SHORI-EXIT PERFORM ATO-SHORI THRU ATO-SHORI-EXIT READ I NF I L E MOVE ” 0 " TO W-FLAG OUTPUT OUTFILE OPEN INPUT INFILE EXIT. MAE-SHORI-EXIT. END-READ. AT END MOVE " 1 ” TO W-FLAG 出 ロ
コントロールプレイク処理 7 2 プログラムの説明 SELECT OUTFILE ASSIGN TO PRINTER. SELECT INFILE ASSIGN TO DISK71. FILE-CONTROL. INPUT-OUTPUT SECTION. OBJECT-COMPUTER. ITEC. SOURCE-COMPUTER. ITEC. CONFIGURATION SECTION. E NV I RO N M E N T D I V I S 1 0 N. PROGRAM-ID. RE107. I D E N T I F I C AT 1 0 N D I V I S 1 0 N. WORKING-STORAGE SECTION. 01 OUTREC FD OUTFILE. 02 1-SHUKKO 02 1-NYUUKO 02 1-SCODE INREC. F D I N F I L E. FILE SECTION. DATA DIVISION. 207 ① ② ③ ④ ⑤ 7 7 7 7 7 7 7 7 7 7 7 7 7 7 01 0 1 01 W-FLAG W-LCOUNT W-SCODE W-NGOUKEI W-SGOUKEI W-NSOUGOUKEI W-SSOUGOUKEI W-OOMIDASHI . W-KOMIDASHI . X ( 6 ) . S9 ( 5 ) . PIC S9 ( 5 ) . X ( 133 ) . X. S 9 ② . X ( 6 ) . P 1 C S 9 ( 7 ) . P I c s 9 ( 7 ) . PIC S9 ( 9 ) . PIC S9 ( 9 ) . X ( 21 ) VALUE SPACE. X ( 112 ) P I C P I C P I C P I C P I C P I C P I C P I C VALUE " * * * ショウヒンへ、、ツこュウシュッコリスト 02 W-MEISAI. 02 02 02 WM-SCODE 02 WM-NYUUKO 02 WM-SHUKKO VALUE SPACE. VALUE SPACE. VALUE SPACE. VALUE SPACE. VALUE SPACE. P I C P I C P I C P I C P I C P I C P I C P I C P I C P I C P I C X ( 14 ) X ( 19 ) X ( 19 ) X ( 81 ) X ( 15 ) X ( 6 ) . X ( 10 ) X ( 10 ) Z,ZZZ,ZZ9. X ( 74 ) VALUE ”シュッコリョウ” VALUE ”ニュウコリョウ” VALUE ”ショウヒンコード ' ① ② ③ ④ ⑤ 商品コードを退避するための領域 (W-SCODE) を確保します。 出庫量の総合計を取るための領域 (W-SSOUGOUKEI) を確保します。 入庫量の総合計を取るための領域 (W-NSOUGOUKEI) を確保します。 出庫量の合計を取るための領域 (W-SGOUKEI) を確保します。 入庫量の合計を取るための領域 (W-NGOUKEI) を確保します。
136 第 5 章 5 念 2 プログラムの説明 I DE N T I F I C AT 1 0 N D I V I S I ON. PROGRAM-ID. RE105. E NV I R 0 N M E N T D I V I S 1 0 N. C 0 N F I G U RA T 1 0 N S E C T 1 0 N. SOURCE-COMPUTER. ITEC. OBJECT-COMPUTER. ITEC. INPUT-OUTPUT SECTION. F I L E - C 0 N T RO L. SELECT INFILE ASSIGN TO DISK51. SELECT OUTFILE ASSIGN TO PRINTER. D AT A D I V I S 1 0 N. F I L E S E C T 1 0 N. F D I N F I L E. INREC. 0 2 ト SC 0 D E 02 1-TANKA 0 2 1 ー ZA I KO 0 2 1 ー N YU U K 0 0 2 1 ー SYU K KO F D 0 U T F I L E. ① 01 OUTREC X ( 6 ) . P I C S 9 ( 5 ) . P I C S 9 ( 7 ) . P I C P I C S 9 ( 5 ) . S 9 ( 5 ) . P I C X ( 1 3 3 ) . P I C ①出力領域として , 先頭 1 バイトの制御文字を含め 133 バイト分確保する ことを示しています。 い 0 < 0 7 0 1 ーっー・ー 1 っ′一つー 0 ②③ P I C X. 9 ( 2 ) . P I C 9 ( 2 ) . P I C 9 ( 2 ) . P I C 9 ( 2 ) . P I C X ( 21 ) VALUE SPACE. P I C X ( 50 ) P I C VA L U E ” * * * サ、、イコリョウリスト * * * ” P I C X(I) VALUE P I C P I C X(I) VALUE P I C P I C 9 9 . X ( 54 ) VALUE P I C SPACE. ワしワっムっ乙ワしワし ④
構造化プログラミング I D E N T I F I C AT 1 0 N D I V I S 1 0 N. PROGRAM-ID. RE103. AUTHOR: サクセイシャシメイ DATE-WRITTEN: 1989. 07. 20. ニュウシュッコファイル I N PU T : I N F I L E OUTPUT:OUTFILE サ、、イコファイル FUNCTION: ニュウシュッコファイルヲヨミコミ 1 ケンコ、、トニ シンサ、、イコリョウ = サ、、イコリョウ + ニュウコリョウ シュッコリョウ ト , シンサ、、イコリョウヲケイサン , ザ、イコファイルヲサクセイスル ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. ITEC. OBJECT-COMPUTER. ITEC. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO DISK21. SELECT OUTFILE ASSIGN TO DISK22. DATA D I V I S 1 0 N. F I L E S E C T 1 0 N. F D I N F I L E. INREC. 02 1-SCODE 02 1-TANKA 0 2 1 ー Z A I KO 02 1-NYUUKO 02 1-SYUKKO FD OUTFILE. 0 1 OUTREC. 02 0-SCODE 02 0-TANKA 02 0-ZAIKO WORKING-STORAGE SECTION. 7 7 W- Z A I KO 7 7 W- F L A G P R 0 C E DU R E D I V I S 10 N. HAJIME. PERFORM MAE-SHORI THRU MAE-SHORI-EXIT PERFORM SHU-SHORI THRU SHU-SHORI-EXIT UNTIL W-FLAG PERFORM ATO-SHORI THRU ATO-SHORI-EXIT STOP RUN. MAE-SHORI . I N PU T I N F I L E OPEN OUTPUT OUTFILE " 0 ” TO W-FLAG MOVE READ I NF I L E AT END MOVE ” 1 " TO W-FLAG. MAE-SHORI-EXIT. EXIT. X ( 6 ) . P I C P I C S 9 ( 5 ) . P I C S 9 ( 7 ) . P I C S 9 ( 5 ) . P I C S 9 ( 5 ) . X ( 6 ) . P I C PIC S9 ( 5 ) . P I C S 9 ( 7 ) . S 9 ( 7 ) . P I C P I C X.