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

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

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

〔プログラムの説明〕

選挙速報を画面に表示するプログラムである。 あるテレビ局では,地方自治体の首長選挙において,地区ごとの開票情報を収集し, 候補者ごとの得票数を集計して表示するプログラムを開発した。

(1) 地区ごとの開票情報を記録した開票ファイルのレコード様式は,次のとおりである。

地区コード
6けた
候補者名
20 けた
得票数
9けた

(2) 選挙速報の表示様式は,次のとおりである。


 候補者名    得票数
 XXX … XXX    ZZZ,ZZZ,ZZ9
      :              :

@ 選挙速報は,得票数の降順に表示する。

A 見出しは,あらかじめ表示されている。

(3) 候補者数は最大 50 人,得票数は最大9けたとし,データに誤りはないものとする。

〔プログラム〕

DATA DIVISION.
FILE SECTION.
FD  KAIHYO-F.
01  KAIHYO-R.
    05  K-CHIKU-CD           PIC X(6).
    05  K-KOH OS HA-MEI        PIC X(20).
    05  K-TOKUHYO-SU         PIC 9(9).
WORKING-STORAGE SECTION.
01  SHUKEI-TABLE.
    05  S-MAX                PIC 9(3).
    05  S-TBL    OCCURS 0 TO 50 DEPENDING ON S-MAX
                 INDEXED BY S-IDX.
        10  S-KOH OS HA-MEI    PIC X(20).
        10  S-TOKUHYO-SU     PIC 9(9).
01  W-TBL                    PIC X(29).
01  P-TOKUHYO-SU             PIC ZZZ,ZZZ,ZZ9.
01  W-EOF                    PIC 9.
01  W-I                      PIC 9(5).
01  W-J                      PIC 9(5).
01  W-K                      PIC 9(5).
PROCEDURE DIVISION.
MAIN-CTL.
    OPEN INPUT KAIHYO-F.
    MOVE 0 TO W-EOF.
    MOVE 0 TO S-MAX.
    PERFORM UNTIL W-EOF = 1
       READ KAIHYO-F
            AT END      MOVE 1 TO W-EOF
            NOT AT END  PERFORM SHUKEI-PROC
       END-READ
    END-PERFORM.
    PERFORM SHUKEI-DISP.
    CL OS E KAIHYO-F.
    STOP RUN.
*
SHUKEI-PROC.
    SET S-IDX TO 1.
    SEARCH S-TBL VARYING S-IDX
       AT END
            ADD 1 TO S-MAX
            MOVE K-KOH OS HA-MEI TO S-KOH OS HA-MEI(S-MAX)
            
       WHEN S-KOH OS HA-MEI(S-IDX) = K-KOH OS HA-MEI
            
    END-SEARCH.
*
SHUKEI-DISP.
    PERFORM VARYING W-I FROM 1 BY 1 UNTIL W-I > S-MAX
       COMPUTE W-K = W-I + 1
       PERFORM VARYING W-J FROM W-K BY 1 UNTIL W-J > S-MAX
          IF S-TOKUHYO-SU(W-I) < S-TOKUHYO-SU(W-J)
             MOVE S-TBL(W-I) TO W-TBL
             
             MOVE W-TBL TO S-TBL(W-J)
          END-IF
       END-PERFORM
       MOVE S-TOKUHYO-SU(W-I) TO P-TOKUHYO-SU
       DISPLAY S-KOH OS HA-MEI(W-I) "   " P-TOKUHYO-SU
    END-PERFORM.

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

解答群

ア ADD K-TOKUHYO-SU TO S-TOKUHYO-SU(S-IDX)

イ ADD K-TOKUHYO-SU TO S-TOKUHYO-SU(S-MAX)

ウ MOVE K-TOKUHYO-SU TO S-TOKUHYO-SU(S-MAX)

エ MOVE S-TBL(W-I) TO S-TBL(W-J)

オ MOVE S-TBL(W-J) TO S-TBL(W-I)

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

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

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

基本情報技術者試験


設問2 このプログラムの動作を検証するための命令網羅テストにおいて, 開票ファイルとして適切なデータの並びを,解答群の中から選べ。

解答群

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

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