東京理科大学 infoserv[更新日]1999.04.30


問8  次の COBOL プログラムの説明及びプログラムを読んで,設問に答えよ。

〔プログラムの説明〕

ある会社の支店ごとの月別売上目標ファイルと,商品売上記録ファイルを読んで, 指定された月の支店別の目標と実績の売上比較リストを印字する。実績は,指定された月の 売上金額を商品売上記録ファイルから取り出し,支店別に集計することによって求める。

(1) 月別売上目標ファイルは,支店コードをキーとする索引ファイルで,そのレコード 様式は次のとおりである。

支店コード

4 けた

支店名

20 けた

目標金額

1 月

10 けた

2 月

10 けた

12 月

10 けた

(2) 商品売上記録ファイルは,支店コードの昇順に並べた順ファイルで,そのレコード 様式は次のとおりである。

月日

4 けた

支店コード

4 けた

商品コード

5 けた

個数

6 けた

売上金額

8 けた

(3) 目標と実績の売上比較リストの印字様式は,次のとおりである。

支店名

目標

実績

目標達成率

xxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxx

:

xxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxx

z,zzz,zzz,zz9

z,zzz,zzz,zz9

z,zzz,zzz,zz9

:

z,zzz,zzz,zz9

z,zzz,zzz,zz9

z,zzz,zzz,zz9

z,zzz,zzz,zz9

z,zzz,zzz,zz9

:

z,zzz,zzz,zz9

z,zzz,zzz,zz9

zz9%

zz9%

zz9%

:

zz9%

zz9%

 表題及びけい線は,あらかじめ用紙に 印字されている。

 目標達成率の計算方法は,実績の目標に 対する百分率とする。

 目標達成率が 1000 % 以上のときは, 999 % と印字する。

 指定された月に売上実績のない支店は, 印字しない。

 商品売上記録ファイルの支店コードが 月別売上目標ファイルに存在しない場合は,エラーメッセージを表示する。

(4) 月の指定は,01 〜 12 のいずれかが正しく入力されるものとする。

〔プログラム〕
data division.
file section.
fd  uriage-mokuhyou.
01  um-rec.
  05  um-shiten.
    10  um-shiten-code   pic x(4).
    10  um-shiten-mei    pic x(20).
  05  um-kingaku         pic 9(10)  occurs 12.
fd  uriage-kiroku.
01  uk-rec.
  05  uk-date.
    10  uk-tsuki         pic 9(2).
    10  uk-hi            pic 9(2).
  05  uk-shiten-code     pic x(4).
  05  uk-shouhin-code    pic x(5).
  05  uk-kosuu           pic 9(6).
  05  uk-kingaku         pic 9(8). 
fd  uriage-hikaku.
01  uh-rec               pic x(80).
working-storage section.
01  tsuki                pic 9(2).
01  print-rec.
  05                     pic x  value space.
  05  pr-shiten-mei      pic x(20).
  05                      pic x  value space.
  05  pr-mokuhyou        pic z,zzz,zzz,zz9.
  05                      pic x  value space.
  05  pr-jisseki         pic z,zzz,zzz,zz9.
  05                      pic x(6)  value space.
  05  pr-tassei          pic zz9. 
  05                      pic x(2)  value "% ".
01  uk-eof-ind           pic x  value space.
  88  uk-eof               value "e".
01  loop-ind             pic x  value space.
  88  loop                 value space.
  88  loop-exit            value "e".
01  wk-rec.
  05  wk-shiten-code     pic x(4).
  05  wk-kingaku         pic 9(10).
01  wk-mokuhyou          pic 9(10).
 
procedure division.
main.
    display "input tsuki(2keta)"
    accept tsuki
    open input uriage-mokuhyou uriage-kiroku output uriage-hikaku
    perform yomu                 
    if  
      move uk-shiten-code to wk-shiten-code
      move uk-kingaku to wk-kingaku
    end-if
    perform until uk-eof
      perform yomu                                     
      if uk-eof
        perform print
      else
        if  
          compute wk-kingaku = wk-kingaku + uk-kingaku
        else 
          perform print
          move uk-shiten-code to wk-shiten-code
          move uk-kingaku to wk-kingaku
        end-if
      end-if
    end-perform
    close  uriage-mokuhyou uriage-kiroku uriage-hikaku
    stop run.
yomu.    
    
    perform until loop-exit
      read uriage-kiroku at end
        set uk-eof to true
        set loop-exit to true
      not at end
        if uk-tsuki = tsuki
          set loop-exit to true
        end-if        
      end-read
    end-perform. 
print.
    move wk-shiten-code to um-shiten-code
    read uriage-mokuhyou invalid key
      display "error; shiten-code = " wk-shiten-code
    not invalid key
      move um-shiten-mei to pr-shiten-mei
      move um-kingaku (tsuki) to pr-mokuhyou wk-mokuhyou
      move wk-kingaku to pr-jisseki
      compute pr-tassei =  on size error
        move 999 to pr-tassei
      end-compute
      write uh-rec from print-rec
    end-read.

設問 プログラム中の に入れる正しい答えを,解答群の中から選べ。

a,b に関する解答群

ア not uk-eof

イ uk-eof

ウ uk-eof = space

エ uk-eof not = space

オ uk-shiten-code = wk-shiten-code

カ uk-shiten-code not = wk-shiten-code

c に関する解答群

ア move loop-exit to loop

イ set loop to false

ウ set loop to true

エ set loop-exit to false

オ set space to loop

d に関する解答群

ア uk-kingaku * 100 / wk-mokuhyou

イ uk-kingaku / wk-mokuhyou

ウ wk-kingaku * 100 / pr-mokuhyou

エ wk-kingaku * 100 / wk-mokuhyou

オ wk-kingaku / pr-mokuhyou

カ wk-kingaku / wk-mokuhyou


東京理科大学 infoserv 戻る 次頁:問09