問題プレビューID: a58d3c08

問 6

配列 AA が図 2 の状態のとき、図 1 の流れ図を実行すると、配列 BB が図 3 の状態になった。図 1 の a に入れるべき操作はどれか。ここで、配列 A,BA, B の要素をそれぞれ A(i,j),B(i,j)A(i, j), B(i, j) とする。

(注) ループ端の繰り返し指定は、変数名:初期値、増分、終値を示す。

図 2 配列 A の状態(i が行、j が列。左上から右下への対角線以外の一部に * がある) 図 3 実行後の配列 B の状態(図 2 を時計回りに 90 度回転させた状態)

解説

図 2 と図 3 を比較すると、配列が右に 90 度回転していることがわかります。 具体的な座標で対応を確認します。

  • 図 2 で A(0,1)A(0, 1) にある * は、図 3 では B(1,7)B(1, 7) に移動しています。(i=0,j=1→B(1,7)i=0, j=1 \rightarrow B(1, 7))
  • 図 2 で A(1,0)A(1, 0) にある * は、図 3 では B(0,6)B(0, 6) に移動しています。(i=1,j=0→B(0,6)i=1, j=0 \rightarrow B(0, 6))
  • 図 2 で A(7,1)A(7, 1) にある * は、図 3 では B(1,0)B(1, 0) に移動しています。(i=7,j=1→B(1,0)i=7, j=1 \rightarrow B(1, 0))

この規則性を一般化すると、A(i,j)A(i, j) の値が B(j,7−i)B(j, 7-i) に格納されていることがわかります。

ア:180 度回転です。 イ:反時計回りに 90 度回転です。 ウ:左右反転です。 エ:時計回りに 90 度回転です。

したがって、正解は「エ」です。