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

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

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

〔プログラムの説明〕

研修申込状況を登録した申込ファイルから,研修番号別に申込者の人数を集計して印字する。

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

申込番号

5 けた

研修番号 その他

42 けた

内容区分

1 けた

開催区分

2 けた

@ 研修を申し込むと申込者1人について一つの申込番号が発行され, 1件のレコードが申込ファイルに登録される。

A 同一人が,同じ研修に二度以上申し込むことはない。

B 研修番号は,内容区分と開催区分から構成されている。

C 内容区分は,A 〜 H のいずれか1文字である。 開催区分は,01 〜 20 のいずれかである。

D 申込ファイルの内容には,間違いがないものとする。

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

@ 各研修とも申込者数は,1,000 未満とする。

A 見出しは,最初に 1 回だけ印字する。

B 申込者数が 0 の研修は,印字しない。

基本情報技術者試験


〔プログラム〕

DATA DIVISION.
FILE SECTION.
FD  M OS HIKOMI-FILE.
01  M OS HIKOMI-REC.
    02                PIC  X(05).
    02  KENSHU-M.
        03  KEN-N-M   PIC  X(01).
        03  KEN-K-M   PIC  9(02).
    02                PIC  X(42).
FD  SHUKEI-PRINT.
01  SHUKEI-REC.
    02  KENSHU-S.
        03  KEN-N-S   PIC  X(01).
        03  KEN-K-S   PIC  9(02).
    02                PIC  X(15).
    02  SU-S          PIC  ZZ9.
WORKING-STORAGE SECTION.
01  FILE-END          PIC  X(01) VALUE "N".
01  LOOP1             PIC  9(01).
01  LOOP2             PIC  9(02).
01  KEN-NO            PIC  9(01).
01  KEN-W1.
    02  KEN-W2        PIC  X(08) VALUE "ABCDEFGH".
    02  REDEFINES KEN-W2.
        03 KEN-W3     PIC  X(01) OCCURS 8 INDEXED BY KEN.
01  SU-WK1                       VALUE ZERO.
    02  OCCURS 8.
        03  SU-WK     PIC  9(03) OCCURS 20.
01  MIDASHI           PIC  X(21) VALUE "ケンシュウバンゴウ モウシコミシャスウ".
PROCEDURE DIVISION.
MAIN-RTN.
    OPEN INPUT M OS HIKOMI-FILE OUTPUT SHUKEI-PRINT.
    PERFORM KASAN-RTN UNTIL FILE-END = "Y".
    PERFORM PRINT-RTN.
    CL OS E M OS HIKOMI-FILE SHUKEI-PRINT.
    STOP RUN.
KASAN-RTN.   
    READ M OS HIKOMI-FILE
       AT END
          MOVE "Y" TO FILE-END
       NOT AT END
          
          SEARCH 
             WHEN KEN-N-M = KEN-W3 (KEN)
                SET KEN-NO TO KEN
          END-SEARCH
          ADD 1 TO SU-WK (KEN-NO KEN-K-M)
    END-READ.
PRINT-RTN.
    WRITE SHUKEI-REC FROM MIDASHI AFTER PAGE.
    PERFORM VARYING LOOP1 FROM 1 BY 1 UNTIL LOOP1 > 8
       PERFORM VARYING LOOP2 FROM 1 BY 1 UNTIL LOOP2 > 20
          MOVE SPACE TO SHUKEI-REC
          IF  NOT = 0 THEN
             MOVE KEN-W3 (LOOP1) TO KEN-N-S
             MOVE LOOP2 TO KEN-K-S
             MOVE  TO SU-S
             WRITE SHUKEI-REC AFTER 1
          END-IF
       END-PERFORM
    END-PERFORM.

基本情報技術者試験


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

a に関する解答群

ア MOVE 1 TO KEN       イ MOVE 1 TO KEN-NO

ウ MOVE KEN TO KEN-NO    エ MOVE KEN-NO TO KEN

オ SET KEN TO 1       カ SET KEN TO KEN-N-S

キ SET KEN TO KEN-NO    ク SET KEN-NO TO 1

ケ SET KEN-NO TO KEN

b に関する解答群

ア KEN      イ KEN-NO    ウ KEN-W1

エ KEN-W2    オ KEN-W3    カ SU-WK

c に関する解答群

ア SU-WK (KEN-K-M KEN-NO)    イ SU-WK (KEN-K-S KEN-NO)

ウ SU-WK (KEN-NO KEN-K-M)    エ SU-WK (KEN-NO KEN-K-S)

オ SU-WK (LOOP1 LOOP2)     カ SU-WK (LOOP2 LOOP1)

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

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

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


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