1 / 29

実 習 2

実 習 2. 最大値・最小値. 実習2. 最大値と最小値.  第3図のようなクラブコード、予算額、支出額を記録したファイルを読み、 処理条件にしたがい第4図のように印字するプログラムを完成させなさい。. 入力形式. 処理条件. 入力ファイル名: YOSAN - F 入力レコード名: YOSAN - R. (1)執行率は次の計算式で求める。     執行額 = 支出額 × 100 ÷ 予算 (2)データが終わりになったら、執行率が   最大のクラブコードとその執行率、執行   率が最小のクラブコードとその執行率を   印字する。

avidan
Download Presentation

実 習 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 実 習 2 最大値・最小値

  2. 実習2 最大値と最小値  第3図のようなクラブコード、予算額、支出額を記録したファイルを読み、 処理条件にしたがい第4図のように印字するプログラムを完成させなさい。 入力形式 処理条件 入力ファイル名: YOSAN-F 入力レコード名: YOSAN-R (1)執行率は次の計算式で求める。     執行額 = 支出額 × 100 ÷ 予算 (2)データが終わりになったら、執行率が   最大のクラブコードとその執行率、執行   率が最小のクラブコードとその執行率を   印字する。 (3)最大・最小の執行率のクラブが複数あ   る時は、後に入力されたクラブコードを   印字する。 クラブコード (CCODE) X(4) 予算額 (YOSAN) 9(6) 支出額 (SYUTU) 9(6) (第3図) 出力形式 出力ファイル名: LIST-F 出力レコード名: LIST-R  クラブ   予算額    支出額   執行率 XXXXZZZ,ZZ9ZZZ,ZZ9 ZZ9 XXXXZZZ,ZZ9ZZZ,ZZ9 ZZ9  最大クラブコード XXXX 最大執行率 ZZ9  最小クラブコード XXXX 最小執行率 ZZ9 ~ ~ ~ ~ (第4図)

  3. 入力データ ファイル名: 実習2data.txt

  4. 入力形式・出力形式・処理条件から記憶領域を定義する入力形式・出力形式・処理条件から記憶領域を定義する

  5. M-CCODE XXXX M-YOSAN ZZZ,ZZ9 M-SYUTU ZZZ,ZZ9 M-RITU ZZ9 最大クラブコード M-MAXCODE XXXX 最大執行率 M-MAX ZZ9 記憶領域の定義 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE XXXX YOSAN 999999 SYUTU 999999 TU XX 01:MEISAI-R 01:RITU 作業領域 999 01:MAX 01:MIDASI 999 クラブ     予算額      支出額      執行率 01:MIN 999 01:MAX-R 01:MAXCCODE XXXX 01:MINCCODE 01:MIN-R XXXX 最小クラブコード M-MINCODE XXXX 最小執行率 M-MIN ZZ9 01:E-FLG XXX FD:LIST-F01:LIST-R 出力領域 X(72)

  6. 記憶領域の定義からデータ部の記述をする

  7. データ部の記述① DATA DIVISION. FILE SECTION. FD YOSAN-F. 01 YOSAN-R. 02 CCODE PIC X(4). 02 YOSAN PIC 9(6). 02 SYUTU PIC 9(6). 02 PIC X(2). FD LIST-F. 01 LIST-R PIC X(72). 入 力 領 域 出力 領域

  8. データ部の記述② WORKING-STORAGE SECTION. 01 E-FLG PIC X(3). 01 MAX PIC 9(3). 01 MIN PIC 9(3). 01 RITU PIC 9(3). 01 MAXCCODE PIC X(4). 01 MINCCODE PIC X(4). 01 GOKEI PIC 9(8). 01 HEIKIN PIC 9(7). 01 KENSU PIC 9(2). 作 業 領 域 独立項目の記述

  9. データ部の記述③ 01 MIDASI. 02 PIC X(4) VALUE SPACE. 02 PIC X(6) VALUE "クラブ". 02 PIC X(6) VALUE SPACE. 02 PIC X(6) VALUE "予算額". 02 PIC X(7) VALUE SPACE. 02 PIC X(6) VALUE "支出額". 02 PIC X(6) VALUE SPACE. 02 PIC X(6) VALUE "執行率". 01 MEISAI-R. 02 PIC X(5) VALUE SPACE. 02 M-CCODE PIC X(4). 02 PIC X(7) VALUE SPACE. 02 M-YOSAN PIC ZZZ,ZZ9. 02 PIC X(5) VALUE SPACE. 02 M-SYUTU PIC ZZZ,ZZ9. 02 PIC X(7) VALUE SPACE. 02 M-RITU PIC ZZ9. 見出行の記述 作 業 領 域 明細行の記述

  10. データ部の記述④ 01 MAX-R. 02 PIC X(20) VALUE " 最大クラブコード ". 02 M-MAXCCODE PIC X(4). 02 PIC X(5) VALUE SPACE. 02 PIC X(13) VALUE "最大執行率 ". 02 M-MAX PIC ZZ9. 01 MIN-R. 02 PIC X(20) VALUE " 最小クラブコード ". 02 M-MINCCODE PIC X(4). 02 PIC X(5) VALUE SPACE. 02 PIC X(13) VALUE "最小執行率 ". 02 M-MIN PIC ZZ9. 最大値行の記述 作 業 領 域 最小値行の記述

  11. 処理手順を考える

  12. 入力ファイル・出力ファイルを開く • COBOLのプログラムでは、最初の処理は入力用、出力用のファイルを開くことである。 • ファイルを開くとは、ファイルを使用できる状態にすることである。

  13. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 ① 初期値を設定する 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE YOSAN SYUTU TU 01:MEISAI-R 01:RITU 作業領域 01:MAX 初期値 0 01:MIDASI 000 クラブ     予算額      支出額      執行率 01:MIN 初期値 999 999 01:MAX-R 01:MAXCCODE 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG 初期値”OFF” OFF FD:LIST-F01:LIST-R 出力領域

  14. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 ② 見出行を印字する 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU 01:MEISAI-R 01:RITU 作業領域 01:MAX 01:MIDASI 000 クラブ     予算額      支出額      執行率 01:MIN 999 01:MAX-R 01:MAXCCODE 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  15. 繰り返し処理 入力データを読み終えるまで(E-FLG = “ON”となるまで)以下の手続きを繰り返す。 ③入力データを読む。 ④執行率を求める。 ⑤執行率は最大値以上か比較する。 YESの場合は、執行率とクラブコードを保存する。 ⑥執行率は最小値以下か比較する。 YESの場合は、執行率とクラブコードを保存する。 ⑦各項目を明細行に転記する。 ⑧明細行を印字する。

  16. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ③ 入力データを読む 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU 01:MEISAI-R 01:RITU 作業領域 01:MAX 01:MIDASI 000 クラブ     予算額      支出額      執行率 01:MIN 999 01:MAX-R 01:MAXCCODE 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  17. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ④ 執行率を求める 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 080 01:MAX 01:MIDASI 000 クラブ     予算額      支出額      執行率 01:MIN 999 01:MAX-R 01:MAXCCODE 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  18. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑤ 執行率と最大値を比較する 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 YES RITU >= MAX ? 000 080 080 01:MAX 01:MIDASI 000 クラブ     予算額      支出額      執行率 01:MIN 999 01:MAX-R 01:MAXCCODE 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  19. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑤ YESなら執行率とクラブコードを保存するNOなら何もしない 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 YES RITU >= MAX ? 000 080 080 01:MAX 01:MIDASI 080 000 クラブ     予算額      支出額      執行率 01:MIN 999 01:MAX-R 01:MAXCCODE 0101 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  20. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑥ 執行率と最小値を比較する 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 YES RITU >= MAX ? 000 080 080 01:MAX 01:MIDASI 080 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 080 999 999 01:MAX-R 01:MAXCCODE 0101 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  21. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑥YESなら執行率とクラブコードを保存するNOなら何もない 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 YES RITU >= MAX ? 000 080 080 01:MAX 01:MIDASI 080 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 080 999 999 01:MAX-R 01:MAXCCODE 0101 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  22. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑦ 各項目を明細行に転記する 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 YES RITU >= MAX ? 000 080 080 0101 100,000 80,500 80 01:MAX 01:MIDASI 080 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 080 999 999 01:MAX-R 01:MAXCCODE 0101 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率

  23. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑧ 明細行を印字する 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 YES RITU >= MAX ? 000 080 080 0101 100,000 80,500 80 01:MAX 01:MIDASI 080 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 080 999 999 01:MAX-R 01:MAXXCODE 0101 01:MINCCODE 01:MIN-R 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG OFF FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率 0101 100,000 80,500 80

  24. 入力データ終了後の処理 以下の手続きがある。 ⑨最大値と最大となったクラブコードを 最大値行に転記する。 ⑩最大値行を印字する。 ⑪最小値と最小となったクラブコードを   最小値行に転記する。 ⑫最小値行を印字する。

  25. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑨ 最大値と保存されていたクラブコードを 最大値行に転記する。 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 NO RITU >= MAX ? 086 072 072 0101 100,000 80,500 80 01:MAX 01:MIDASI 086 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 072 057 057 01:MAX-R 01:MAXCCODE 0114 0114 86 01:MINCCODE 01:MIN-R 0117 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG ON FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率 0101 100,000 80,500 80

  26. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑩ 最大値行を印字する。 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 NO RITU >= MAX ? 086 072 072 0101 100,000 80,500 80 01:MAX 01:MIDASI 086 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 072 057 057 01:MAX-R 01:MAXCCODE 0114 0114 86 01:MINCCODE 01:MIN-R 0117 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG ON FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率 0101 100,000 80,500 80 最大クラブコード 0114 86 最大執行率

  27. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑪ 最小値と保存されていたクラブコードを 最小値行に転記する。 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 NO RITU >= MAX ? 086 072 072 0101 100,000 80,500 80 01:MAX 01:MIDASI 086 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 072 057 057 01:MAX-R 01:MAXCCODE 0114 0114 86 01:MINCCODE 01:MIN-R 0117 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG 0117 57 ON FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率 0101 100,000 80,500 80 最大クラブコード 0114 86 最大執行率

  28. M-CCODE M-YOSAN M-SYUTU M-RITU 最大クラブコード M-MAXCODE 最大執行率 M-MAX 入力装置 入力データ ⑫ 最小値行を印字する。 演算装置 記憶装置 FD:YOSAN-F01:YOSAN-R 入力領域 CCODE 0101 YOSAN 100000 SYUTU 080500 TU SYUTU * 100 / YOSAN 080500 100000 01:MEISAI-R 01:RITU 作業領域 NO RITU >= MAX ? 086 072 072 0101 100,000 80,500 80 01:MAX 01:MIDASI 086 000 NO RITU <= MIN ? クラブ     予算額      支出額      執行率 01:MIN 072 057 057 01:MAX-R 01:MAXCCODE 0114 0114 86 01:MINCCODE 01:MIN-R 0117 最小クラブコード M-MINCODE 最小執行率 M-MIN 01:E-FLG 0117 57 ON FD:LIST-F01:LIST-R 出力領域 クラブ     予算額      支出額      執行率 0101 100,000 80,500 80 最大クラブコード 0114 86 最大執行率 最小クラブコード 0117 57 最小執行率

  29. 入力ファイル・出力ファイルを閉じる • COBOLのプログラムでは、最後の処理は入力用、出力用のファイルを閉じることである。

More Related