共通テスト(情報) 過去問
令和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つ選べ。
付箋
付箋は自分だけが見れます(非公開です)。
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
共通テスト(情報)試験 令和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
( ケ )では、新たなプレイヤー(1人)を追加したときの参加者数を選択します。
よって
(03)n←ケn+1
となります。
参考になった数0
この解説の修正を提案する
03
この問題で覚えておくべきポイントは以下の通りです。
図5 プレイヤーを手番の並びに追加する手続きでは
あるプレイヤー(行番号x)の次に新たなプレイヤー(行番号tuika)を追加します。
(03)行目では、
ゲームの参加者数nの値を変更しているので、
nには、
参加者1名増えた数(n+1)を格納する必要があります。
正解
冒頭の説明の通り、
nには、
参加者1名増えた数(n+1)が格納されます。
参考になった数0
この解説の修正を提案する
前の問題(問37)へ
令和6年度(2024年度)追・試験 問題一覧
次の問題(問39)へ