FC2ブログ

記事一覧

平成17年春期基本情報技術者試験午後問7、COBOL言語

本ページは平成17年春期基本情報技術者試験午後問7、COBOL言語の解説です。
問題文、解答、解説の順で掲載しております。

***********************************************************************************************************
無料から学べる講座
http://ai-light.com/itkeiei/

ニコニコチャンネル
http://ch.nicovideo.jp/ai-light

YouTubeチャンネル
https://www.youtube.com/user/ailightcom

Access・Excel倶楽部
http://ai-light.com/accessclub/

株式会社アイライト公式HP
http://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

***********************************************************************************************************

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

〔プログラムの説明〕

あるイベントの来場者アンケートを集計し,年代別職業別参加人数表を出力するプログラムである。

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

年齢 1けた
職業 1けた
興味 1けた
その他の答え 97けた

① 年齢は,年代別にコード化されており,次のいずれかが記録されている。

1:10 ~ 19 歳, 2:20 ~ 29 歳, 3:30 ~ 39 歳,
4:その他(9 歳以下又は 40 歳以上)

② 職業は,学生,自営業,会社員などに分類してコード化されており,次のいずれかが記録されている。

1:学生, 2:自営業, 3:会社員, 4:その他

③ 興味は,来場の主目的が,体験,セミナ,展示などのどれであるかをコード化したものであり,次のいずれかが記録されている。

1:体験, 2:セミナ, 3:展示, 4:その他

(2) 来場者アンケートを集計して,次の年代別職業別参加人数表を出力する。
cobol_01_01.jpg

① 各参加人数は,来場者アンケートを集計した結果で,総参加人数は最大6けたである。
② 年代別,職業別に参加人数を印字し,さらに年代別の合計を印字する。
③ 参加人数及び合計人数以外の文字は,あらかじめ印字されている。

(3) アンケートファイルのレコードの各項目にエラーはない。

〔プログラム〕
DATA DIVISION.
FILE SECTION.
FD ENQUETE-F.
01 ENQUETE-R.
03 E-NENREI PIC 9(1).
03 E-SHOKUGYO PIC 9(1).
03 E-KYOMI PIC 9(1).
03 PIC X(97).
FD PRINT-F.
01 PRINT-R PIC X(100).
WORKING-STORAGE SECTION.
01 HYO.
03 A OCCURS 4 INDEXED BY X.
05 B OCCURS 4 INDEXED BY Y PIC 9(6).
01 END-SW PIC X(3) VALUE SPACE.
01 KUHAKU PIC X(100) VALUE SPACE.
01 MEISAI.
03 PIC X(10) VALUE SPACE.
03 OCCURS 5 INDEXED BY Z.
05 PIC X(4) VALUE SPACE.
05 NINZUU PIC ZZZ,ZZ9.
01 GOKEI PIC 9(6) VALUE ZERO.
PROCEDURE DIVISION.
HAJIME.
OPEN INPUT ENQUETE-F OUTPUT PRINT-F.
INITIALIZE HYO.
PERFORM UNTIL END-SW = "END"
READ ENQUETE-F
AT END MOVE "END" TO END-SW
NOT AT END
cobol_01_02.jpg
END-READ
END-PERFORM.
WRITE PRINT-R FROM KUHAKU AFTER PAGE.
WRITE PRINT-R FROM KUHAKU AFTER { a }.
PERFORM VARYING X FROM 1 BY 1 UNTIL X > 4
PERFORM VARYING Y FROM 1 BY 1 UNTIL Y > 4
{ b }
MOVE B(X Y) TO NINZUU(Z)
{ c }
END-PERFORM
MOVE GOKEI TO NINZUU(5)
WRITE PRINT-R FROM MEISAI AFTER 2
MOVE ZERO TO GOKEI
END-PERFORM.
CL OS E ENQUETE-F PRINT-F.
STOP RUN.

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

a に関する解答群

ア 1    イ 2    ウ 3    エ 4

b,c に関する解答群

ア COMPUTE GOKEI = GOKEI + B(X Y)
イ COMPUTE GOKEI = NINZUU(Z) + B(X Y)
ウ COMPUTE NINZUU(Z) = GOKEI + B(X Y)
エ MOVE B(X Y) TO GOKEI
オ MOVE X TO Z
カ MOVE Y TO Z
キ MOVE Z TO Y
ク SET X TO Z
ケ SET Y TO Z
コ SET Z TO Y

設問2 出力用紙に次の用紙を使い,職業別目的別参加人数表を出力するとき,プログラム中のαをどの文と置換すればよいか,正しい答えを,解答群の中から選べ。

cobol_01_03.jpg

解答群

ア COMPUTE B(E-KYOMI E-NENREI) = B(E-KYOMI E-NENREI) + 1
イ COMPUTE B(E-KYOMI E-SHOKUGYO) = B(E-KYOMI E-SHOKUGYO) + 1
ウ COMPUTE B(E-NENREI E-KYOMI) = B(E-NENREI E-KYOMI) + 1
エ COMPUTE B(E-NENREI E-SHOKUGYO) = B(E-NENREI E-SHOKUGYO) + 1
オ COMPUTE B(E-SHOKUGYO E-KYOMI) = B(E-SHOKUGYO E-KYOMI) + 1
カ COMPUTE B(E-SHOKUGYO E-NENREI) = B(E-SHOKUGYO E-NENREI) + 1

***********************************************************************************************************
無料から学べる講座
http://ai-light.com/itkeiei/

ニコニコチャンネル
http://ch.nicovideo.jp/ai-light

YouTubeチャンネル
https://www.youtube.com/user/ailightcom

Access・Excel倶楽部
http://ai-light.com/accessclub/

株式会社アイライト公式HP
http://www.ai-light.com/

***********************************************************************************************************

********************************************************************************
解答
設問1
答 aウ 答 bコ 答 cア

設問2
答オ
********************************************************************************

解説

01 ENQUETE-R.
03 E-NENREI PIC 9(1).
03 E-SHOKUGYO PIC 9(1).
03 E-KYOMI PIC 9(1).
03 PIC X(97).
は桁数からアンケートファイルに該当していると思われる。

OPEN INPUT ENQUETE-F OUTPUT PRINT-F.
では、ENQUETE-Fファイルを入力用(読込用)としてファイルをオープンし、PRINT-Fファイルを出力用(書込用)としてファイルをオープンしている。

INITIALIZE HYO.
変数HYOを初期化する。INITIALIZEは、数値項目を「0」にして、英数字項目をブランクにする。

PERFORM UNTIL END-SW = "END"
END-SW が "END"になるまでループする。

READ ENQUETE-F
ファイルENQUETE-Fを読込む。

AT END MOVE "END" TO END-SW
ファイルのレコードをすべて読み終わった時にEND-SWに"END"をセットする。

NOT AT END
ファイルのレコードが読込めた場合

  COMPUTE B(E-NENREI E-SHOKUGYO)
= B(E-NENREI E-SHOKUGYO) + 1
読込んだE-NENREI(アンケートファイルの年齢項目)、E-SHOKUGYO(アンケートファイルの職業項目)でBに+1をする。つまりここで年齢毎、職業毎の件数をカウントしている。

WRITE PRINT-R FROM KUHAKU AFTER PAGE.
AFTER PAGEではプリンターに出力する際に改ページをする。

データ項目KUHAKUは
01 KUHAKU PIC X(100) VALUE SPACE.
で、空白がセットされているので、WRITE文で空白をPRINT-Rに書き込んでいる。

{ a }
{ a }の前で、
WRITE PRINT-R FROM KUHAKU
よりPRINT-Rに空白をセットしている。

また、{ a }の解答群はすべて数値であり、
AFTER 行送りしたい行数
であるから、何行を空白で送りたいかということである。

問題文より
③ 参加人数及び合計人数以外の文字は,あらかじめ印字されている。
とのことであるから、5行目まで行を送ればよい。

{ a }の前段で1行が行送りされているから、2行目から5行目まで行送りを行えばよい。よって、3行を行送りすればよい。以上より解答はウとなる。

PERFORM VARYING X FROM 1 BY 1 UNTIL X > 4
でXを1から4までカウントアップしながらループする。

PERFORM VARYING Y FROM 1 BY 1 UNTIL Y > 4
上記と同様にして、Yを1から4までカウントアップしながらループする。

{ b }
下の行で
WRITE PRINT-R FROM MEISAI AFTER 2
としており、WRITEで年代別職業別参加人数表に行を追加している。

MEISAIの項目内にNINZUU項目があることから、この項目で列方向の体験、セミナ、展示、その他、合計を保持していることがわかる。

MOVE B(X Y) TO NINZUU(Z)
で添え字のZの値が与えられていないことから、Zに値を与えてやればよい。

Zは
OCCURS 5 INDEXED BY Z
とあり、NINZUUの指標名である。指標に値を設定するにはSET文を用いる。
よって、解答はコとなる。

{ c }
下の行で
MOVE GOKEI TO NINZUU(5)
とあり、GOKEI項目で列合計を求めていることがわかる。

よって、解答はアとなる。

設問2
年代別職業別参加人数表より、行方向は年代で列方向は職業を出力する時にαより
B(E-NENREI E-SHOKUGYO)で行方向のデータを前段に、列方向のデータを後段にセットすればよい。

よって、職業別目的別参加人数表で、行方向に職業を列方向に趣味を出力するには、前段に職業を後段に趣味のデータをセットすればよい。よって、解答はオとなる。

参考:平成17年春期基本情報技術者試験午後問7

***********************************************************************************************************
無料から学べる講座
http://ai-light.com/itkeiei/

ニコニコチャンネル
http://ch.nicovideo.jp/ai-light

YouTubeチャンネル
https://www.youtube.com/user/ailightcom

Access・Excel倶楽部
http://ai-light.com/accessclub/

株式会社アイライト公式HP
http://www.ai-light.com/

***********************************************************************************************************
関連記事

コメント

コメントの投稿

非公開コメント

adwords

外部リンク

カテゴリーメニュー 改

当社のシステム開発の詳細

当社はaccess-excelでの小規模システム開発を中心に年間に50社以上の開発実績がございます。詳細は06-6599-8890ないしinfo@ai-light.comまで今すぐお問合せください

メールフォーム

こちらからも簡単にメールを送付できます。当社のサービスに関してご質問がございましたら、よろしければ、ご利用ください。直接お電話の場合は06-6599-8890までご連絡ください。

名前:
メール:
件名:
本文:

検索フォーム

広告

最新記事

Lc.ツリーカテゴリー

全記事表示リンク

プロフィール

itkeieinews

Author:itkeieinews
ITと経営ニュースへようこそ!
アイライトIT経営研究会
株式会社アイライト
電話でのお問合せは06-6599-8890
Email:info@ai-light.com

お気に入り

本サイトをそのまま消してしまうと、もう探せなくなってしまうかもしれません。 当社はいずれお役に立てることがあるかと思いますので、よろしければお気に入りにご登録ください。

ブロとも申請フォーム