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

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

問題

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

次の文章を読み、( イ )にあてはまるものを1つ選べ。

魔方陣とは、1から順に重複しない自然数を、各列、各行、各対角線の和が等しくなるように正方形状に並べたものである。列数と行数がいずれもNである魔方陣を「N次の魔方陣」と呼ぶ。図1は「3次の魔方陣」の例である。

与えられた数の並びが魔方陣かどうかを検証する準備として、各列や各行、各対角線の和を求め、表示する手続きを作成する。数の並びは、一番左の列を第0列、一番上の行を第0行として、第x列第y行の値が2次元配列Mahou[x,y]の要素に格納された形で与えられる。N次の魔方陣では、配列の添字の範囲は0からN−1までとなる。図1の場合、1が記入されているマスは第1列第2行なので、Mahou[1,2]と表せる。
第0行の和を求めるには、Mahou[0,0]、Mahou[1,0]、Mahou[2,0]を足し合わせる。同様に、第1行の和を求めるには、Mahou[( ア ),1]、Mahou[1,( イ )]、Mahou[2,( イ )]を足し合わせる。各行の和を求めて表示する手続きが図2である。変数Nには魔方陣の次数を格納する。各行の和は変数waを使用して計算され、行ごとに表示される。

図2 配列Mahouの各行の和を求めて表示する手続き

(01)N←3
(02)gyouを0からN−1まで1ずつ増やしながら,
(03)│  wa←0
(04)│ retuを0からN−1まで1ずつ増やしながら,
(05)│  │ wa←wa+( ウ )
(06)│ を繰り返す
(07)│ waを表示する
(08)を繰り返す

また、各列の和を計算するには、図2の手続きのうち(02)行目と(04)行目の変数gyouと変数retuを入れ替える。
問題文の画像
  • 0
  • 1
  • 2
  • 3

正解!素晴らしいです

残念...

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

01

第1行の和を求めるには、Mahou[( ア ),1]、Mahou[1,( イ )]Mahou[2,( イ )]を足し合わせる。

 

図1より、3と57を足し合わせれば良いことが分かります。

選択肢1. 0


Mahou[1,0]=9です。

Mahou[2,0]=2です。

選択肢2. 1


Mahou[1,1]=5です。

Mahou[2,1]=7です。

選択肢3. 2


Mahou[1,2]=1です。

Mahou[2,2]=6です。

選択肢4. 3


Mahou[1,3]はありません。

Mahou[2,3]はありません。

参考になった数0

02

この問題は、第1行の和を求める式「Mahou[1,(イ)]」「Mahou[2,(イ)]」の空欄(イ)を考えます。配列Mahou[列,行]において行の添字は第2引数です。求めているのは「第1行」の和なので、行の添字は1が入ります。Mahou[1,1]は第1列第1行、Mahou[2,1]は第2列第1行をそれぞれ表しており、正しい参照です。

選択肢1. 0

(イ)に0を入れるとMahou[1,0]とMahou[2,0]となり、これらは「第0行」のセルになります。求めているのは第1行の和なので、行の添字は0ではなく1でなければなりません。正しくありません。

選択肢2. 1

(イ)に1を入れるとMahou[1,1](第1列第1行)とMahou[2,1](第2列第1行)となります。これは第1行の2番目・3番目のセルを正しく参照しています。正解の選択肢です。

選択肢3. 2

(イ)に2を入れるとMahou[1,2]とMahou[2,2]となり、これらは「第2行」のセルです。求めているのは第1行の和なので、行の添字は2ではなく1でなければなりません。正しくありません。

選択肢4. 3

(イ)に3を入れるとMahou[1,3]とMahou[2,3]となりますが、3次魔方陣の添字の範囲は0〜2です。添字3は範囲外であり、存在しないセルへの参照となります。正しくありません。

まとめ

Mahou[列,行]という配列の添字の順序と、0から始まる(0-indexed)添字の仕組みを正確に把握することが重要です。「第1行」は行の添字1に対応します。Mahou[0,1]・Mahou[1,1]・Mahou[2,1]の3つが第1行を構成する全要素です。

参考になった数0

03

正解は「1」です。

 

問題文に「数の並びは、一番左の列を第0列、一番上の行を第0行として、第x列第y行の値が2次元配列Mahou[x,y]の要素に格納された形で与えられる。」と記載があります。

 

2次元配列Mahou[x,y]のx部分が列、y部分が行となる。第0行の和を求めるには、Mahou[0,0]、Mahou[1,0]、Mahou[2,0]を足し合わせる。同様に、第1行の和を求めるには、Mahou[( ア ),1]、Mahou[1,( イ )]、Mahou[2,( イ )]を足し合わせる。

 

第0行の和を求める際に列の部分は0と固定になっているので、第1行に当てはめると、( イ )は1になります。

参考になった数0