IPA過去問ドリル

令和元年度 秋期 基本情報技術者試験 午前 問9

テクノロジ/アルゴリズム

配列 A が図2の状態のとき,図1の流れ図を実行すると,配列 B が図3の状態になった。図1の a に入れる操作はどれか。ここで,配列 A,B の要素をそれぞれ A(i, j),B(i, j) とする。 (注)ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。

令和元年度 秋期 基本情報技術者試験 午前 問9の図

出典:令和元年度 秋期 基本情報技術者試験 午前 問9

正解:エ

解説

図2の配列 A は,列 j=1 が全行にわたって並び,行 i=0 と行 i=3 に横棒がある「F」のような形をしています。図3の配列 B は,行 i=1 が全列にわたって並び,列 j=7 と列 j=4 に縦棒がある形で,A を時計回りに90度回転させた形になっています。時計回り90度回転は,A(i, j) の要素を B の行 j,列 7−i に移す操作なので,B(j, 7−i) ← A(i, j) が答えです。

選択肢ごとの解説

  • 誤り。B(7−i, 7−j) ← A(i, j) は180度回転(上下左右の反転)で,図3のような横向きの形にはなりません。
  • 誤り。B(7−j, i) ← A(i, j) は反時計回りに90度回転する操作で,図3とは左右・上下が逆の形になります。
  • 誤り。B(i, 7−j) ← A(i, j) は左右反転(鏡像)で,行と列が入れ替わらないため図3のような形にはなりません。
  • 正しい。行番号に j,列番号に 7−i を割り当てる時計回り90度回転であり,A(0,1)→B(1,7),A(7,1)→B(1,0) などがすべて図3と一致します。
基本情報技術者の過去問を演習モードで解く