共通テスト(情報) 過去問
令和6年度(2024年度)追・試験
問38 (<旧課程>情報関係基礎(第3問) 問9)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

共通テスト(情報)試験 令和6年度(2024年度)追・試験 問38(<旧課程>情報関係基礎(第3問) 問9) (訂正依頼・報告はこちら)

次の文章を読み、問いに答えよ。

Aさんはゲーム会社に勤務しており、複数のプレイヤーが参加するゲームでのプレイヤーの順番(以下、手番と呼ぶ。)を管理するプログラムを開発している。ここでは図1に示すように、「高橋」を先頭として「高橋」→「石村」→「天野」→「小池」→「渡辺」の順で時計回りに手番が進み、最後の「渡辺」の次は「高橋」に戻り、再び同じ順で手番が繰り返される例について考える。

このゲームでは、プレイヤーがゲームに新たに参加したり抜けたりすることがある。図3・図4は、図1で示した手番の並びでの例である。Aさんは、プレイヤーを手番の並びに追加する手続きを考えた。図3では、「高橋」と「石村」の間に「三田」が新たに追加されている。この場合、「三田」の次のプレイヤーは「高橋」の次のプレイヤーである( オ )になり、「高橋」の次のプレイヤーは( カ )になる。つまり、あるプレイヤー(行番号x)の次に新たなプレイヤー(行番号tuika)を追加する手順は、図5のように、配列Playerにおいてそれぞれの列2の値を変更する手続きになる。(03)行目ではゲームの参加者数nの値を変更している。

図5 プレイヤーを手番の並びに追加する手続き
(01)Player[tuika,2]←( キ )
(02)Player[x,2]←( ク )
(03)n←( ケ )

( ケ )にあてはまるものを1つ選べ。
問題文の画像
  • Player[x,2]
  • Player[nuke,2]
  • Player[tuika,2]
  • n
  • n+1
  • n−1
  • tuika
  • tuika+1
  • tuika−1
  • nuke
  • nuke+1
  • nuke−1

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

新たなプレイヤーを手番に追加するときの手続きを、プログラムとして表す問題です。

「高橋」と「石村」の間に、「三田」を新たに追加するときに、手番を管理するデータ(表1)を変更する必要があります。それを手続きとして表さなければなりません。

(以下の表で、「三田」を追加前と追加後に分けて、便宜的に(表A)と (表B)としました)

(Ⅰ)新たに追加するプレイヤー(「三田」)のデータを、これまでの(表1)の最後の行に、行番号を「tuika」として新たに追加します。そのとき、「三田」の次のプレイヤーは「石村」になるので、その行番号「3」が、「三田」のデータがある行の2列目に入ります。

(図5)の(01)でこの手続きを表していますが、三田の次のプレイヤーである「石村」の行番号「3」はもともと「高橋」(行番号を「X」としています)の2列目にあったデータで、player[X ,2]と表すことができ、また新しく追加した「三田」のデータ(行番号は「tuika」)の中で次のプレイヤーのデータはplayer[tuika ,2]と表されます。よって、(図5)の(01)行の手続きは

 (01)player[tuika ,2] ← player[X ,2]

となります。

 

(Ⅱ)新たに追加したプレイヤー(「三田」)の前のプレイヤー(「高橋」)の行の2列目(次のプレイヤー)を、新たに追加したプレイヤー(「三田」)の行番号に変更しなければなりません。

(図5)の(02)はこの手続きを表していますが、「高橋」の行の2列目はplayer[X ,2]で、ここが新たに追加したプレイヤー(「三田」)の行番号「tuika」が入るので、

 (02)player[X ,2] ← tuika

となります。

 

(Ⅲ)(図5)の(03)行は、問題文にもあるように、ゲームの参加者数nの値を変更する手続きです。人数が一人増えて参加者数は n+1 となったので、

 (03) n ← n+1

となります。

 

以上より、解答欄(ク)には、「n+1」の選択肢の番号が入ります。

まとめ

プレイヤー全員に対して何らかの処理を行おうとすると、プレイヤーの人数のデータが必要になります。そのようなときに備えて、人数のデータは常に正しく保っておく必要があります。図5の(03)行は、そのための手続きです、

参考になった数0

02

(03)行目ではゲームの参加者数nの値を変更している。

 

( ケ )では、新たなプレイヤー(1人)を追加したときの参加者数を選択します。

よって

 

(03)n←n+1

 

となります。

参考になった数0

03

この問題で覚えておくべきポイントは以下の通りです。

 

図5 プレイヤーを手番の並びに追加する手続きでは

あるプレイヤー(行番号x)の次に新たなプレイヤー(行番号tuika)を追加します。

 

(03)行目では、

ゲームの参加者数nの値を変更しているので、

nには、

参加者1名増えた数(n+1)を格納する必要があります。

選択肢5. n+1

正解

冒頭の説明の通り、

nには、

参加者1名増えた数(n+1)が格納されます。

参考になった数0