アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20180722 実施分 問5
配列Aが図2の状態のとき,図1の流れ図を実行すると,配列Bが図3の状態になった。図1のaに入れるべき操作はどれか。ここで,配列A,Bの要素をそれぞれA(i, j),B(i, j)とする。
図1 流れ図: 開始 → ループ1(i : 0, 1, 7 (注))→ ループ2(j : 0, 1, 7 (注))→ [a] → ループ2(端)→ ループ1(端)→ 終了。
(注)ループ端の繰返し指定は,変数名:初期値,増分,終値を示す。
図2 配列Aの状態(8×8,行i=0〜7が縦(下向き矢印),列j=0〜7が横(右向き矢印)。*のあるセル): i=0: j=1,2,3,4,5,6 / i=1: j=1 / i=2: j=1 / i=3: j=1,2,3,4 / i=4: j=1 / i=5: j=1 / i=6: j=1 / i=7: j=1
図3 実行後の配列Bの状態(8×8,同じ軸): i=0: なし / i=1: j=0,1,2,3,4,5,6,7(全て) / i=2: j=4,7 / i=3: j=4,7 / i=4: j=4,7 / i=5: j=7 / i=6: j=7 / i=7: なし
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20180722 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:エ
覚える知識
2次元配列の回転・転置操作の読解
配列を時計回りに90度回転すると、A(i,j)はB(j,n-1-i)へ移る。
この問題で必要なこと
図2と図3の対応から、A(i,j)がB(j,7-i)に移る90度回転であることを読み取る。
ひっかけ
転置や180度回転、左右反転との混同。
この知識の出題:本試験系 2 回・免除試験 2 回(公開問題での観測値)