基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成15年 春期 基本情報技術者 午後 問07
問07   COBOL

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

〔プログラムの説明〕

 パソコンの修理状況を記録した修理状況ファイルから故障内容コード別に件数を集計し, 故障内容コード別のレコード件数及びその比率を印字するプログラムである。

(1) 修理状況ファイルのレコード様式は,次のとおりである。

受付番号 受付日 故障内容
コード
その他の情報
6 けた 8 けた 3 けた 26 けた

(2) 印字様式は,次のとおりである。


FAULT CODE COUNT PERCENTAGE XXX Z,ZZ9 ZZ9.9 XXX Z,ZZ9 ZZ9.9 XXX Z,ZZ9 ZZ9.9 : : : XXX Z,ZZ9 ZZ9.9

@ 故障内容コード別のレコード件数は,9,999 以下とする。

A 比率は,各故障内容コードの件数を修理状況ファイルの総レコード件数で 割った百分率とする。小数第2位以下は,切り捨てる。

B 見出しの印字は,最初に1回行う。

〔プログラム〕

DATA DIVISION.
FILE SECTION.
FD  REPAIR-FILE.
01  REPAIR-REC.
    02  ORDER-REP                PIC  X(06).
    02  DATE-REP                 PIC  X(08).
    02  FAULT-REP                PIC  X(03).
    02  EST-REP                  PIC  X(26).
FD  PRINT-FILE.
01  PRINT-REC                    PIC  X(29).
SD  SORT-FILE.
01  SORT-REC                     PIC  X(03).
WORKING-STORAGE SECTION.
01  END-ST                       PIC  9(01).
01  COUNT-T                      PIC  9(07).
01  FAULT-WRK                    PIC  X(03).
01  COUNT-WRK                    PIC  9(04).
01  TOP-HEADER                   PIC  X(29) VALUE
        "FAULT CODE  COUNT  PERCENTAGE".
01  DATA-PRN.
    02  FAULT-PRN                 PIC  X(03).
    02                            PIC  X(09) VALUE SPACE.
    02  COUNT-PRN                 PIC  Z,ZZ9.
    02                            PIC  X(07) VALUE SPACE.
    02  PER-PRN                   PIC  ZZ9.9.
PROCEDURE DIVISION.
SORT-RTN.
    SORT SORT-FILE
       ON ASCENDING KEY SORT-REC
          INPUT  PROCEDURE IS SELECT-RTN
          OUTPUT PROCEDURE IS TOTAL-RTN.
    STOP RUN.
SELECT-RTN.
    OPEN INPUT REPAIR-FILE.
    INITIALIZE END-ST COUNT-T.
    PERFORM UNTIL END-ST = 1
       READ REPAIR-FILE AT END
          MOVE 1 TO END-ST
       NOT AT END
          RELEASE SORT-REC FROM FAULT-REP
          COMPUTE COUNT-T = COUNT-T + 1
       END-READ
    END-PERFORM.
    CLOSE REPAIR-FILE.
TOTAL-RTN.
    OPEN OUTPUT PRINT-FILE.
    WRITE PRINT-REC FROM TOP-HEADER AFTER PAGE.
    INITIALIZE END-ST.
    RETURN SORT-FILE AT END
       MOVE 1 TO END-ST
    NOT AT END
       PERFORM INIT-RTN
    END-RETURN.
    PERFORM UNTIL END-ST = 1
       RETURN SORT-FILE AT END
          PERFORM PRINT-RTN
          MOVE 1 TO END-ST
       NOT AT END
          IF 
             COMPUTE COUNT-WRK = COUNT-WRK + 1
          ELSE
             PERFORM PRINT-RTN
             
          END-IF
       END-RETURN
    END-PERFORM.
    CLOSE PRINT-FILE.
PRINT-RTN.
    MOVE COUNT-WRK TO COUNT-PRN.  
    .
    MOVE FAULT-WRK TO FAULT-PRN.
    .
INIT-RTN.
    MOVE 1 TO COUNT-WRK.
    .

基本情報技術者試験


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

a に関する解答群

ア FAULT-WRK = FAULT-REP    イ FAULT-WRK = SORT-REC

ウ FAULT-WRK > FAULT-REP    エ FAULT-WRK > SORT-REC

オ FAULT-WRK NOT = FAULT-REP    カ FAULT-WRK NOT = SORT-REC

b,e に関する解答群

ア MOVE FAULT-REP TO FAULT-WRK

イ MOVE FAULT-WRK TO FAULT-PRN

ウ MOVE FAULT-WRK TO FAULT-REP

エ MOVE FAULT-WRK TO SORT-REC

オ MOVE SORT-REC TO FAULT-PRN

カ MOVE SORT-REC TO FAULT-WRK

キ PERFORM INIT-RTN

ク PERFORM PRINT-RTN

ケ PERFORM SELECT-RTN

コ PERFORM TOTAL-RTN

c に関する解答群

ア COMPUTE PER-PRN = 100 * COUNT-T / COUNT-WRK

イ COMPUTE PER-PRN = 100 * COUNT-WRK / COUNT-T

ウ COMPUTE PER-PRN = COUNT-T / COUNT-WRK

エ COMPUTE PER-PRN = COUNT-T / COUNT-WRK / 100

オ COMPUTE PER-PRN = COUNT-WRK / COUNT-T

カ COMPUTE PER-PRN = COUNT-WRK / COUNT-T / 100

キ MOVE COUNT-T TO PER-PRN

ク MOVE COUNT-WRK TO PER-PRN

d に関する解答群

ア WRITE PRINT-REC

イ WRITE PRINT-REC AFTER 1

ウ WRITE PRINT-REC FROM DATA-PRN AFTER 1

エ WRITE PRINT-REC FROM TOP-HEADER AFTER 1

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます

解答 e ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]