令和元年度 秋期 基本情報技術者試験 午前 問9
テクノロジ/アルゴリズム配列 A が図2の状態のとき,図1の流れ図を実行すると,配列 B が図3の状態になった。図1の a に入れる操作はどれか。ここで,配列 A,B の要素をそれぞれ A(i, j),B(i, j) とする。 (注)ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。

出典:令和元年度 秋期 基本情報技術者試験 午前 問9
- アB(7−i, 7−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)
正解:エ
解説
図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と一致します。