オリジナル模擬試験1 問6

問6

配列Aが図1の状態のとき,下記の流れ図で示されるアルゴリズムを実行すると,配列Bが図2の状態になった。流れ図中の a に入れるべき操作はどれか。ここで,配列A,Bの要素をそれぞれ A(i,j),B(i,j)とする。なお,配列の添え字は0から始まり,8×8の2次元配列である。
06.gif/image-size:399×474
  • B(7−i,j)←A(i,j)
  • B(7−j,i)←A(i,j)
  • B(i,7−j)←A(i,j)
  • B(j,7−i)←A(i,j)

分類

テクノロジ系 » アルゴリズムとプログラミング » アルゴリズム

正解

解説

配列Aの値が配列Bのどの位置に移動しているかを、配列中の適当な場所でサンプルを取ってみるとわかりやすいです。

例として、下図中の赤で印をつけたの一点を考えてみます。
06a.gif/image-size:399×210
この位置を配列の添え字[i,j]を使って表すと、配列Aが[3,1]、配列Bが[1,4]となります。

選択肢を見ると、配列A[i,j]を配列Bのどこに移動するかを問われているので、i=3,j=1の場合に、配列Bの位置が[1,4]となる選択肢を探すことになります。

すべての選択肢に、i=3,j=1を代入してみると、
  • B(7−i,j)=B(7−3,1)=B(4,1)となるので誤りです。
  • B(7−j,i)=B(7−1,3)=B(6,3)となるので誤りです。
  • B(i,7−j)=B(3,7−1)=B(3,6)となるので誤りです。
  • B(j,7−i)=B(1,7−3)=B(1,4)となり適切な位置に値を移動することができます。
© 2010-2021 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop