アルゴリズムとプログラミング
令和元年度 秋期 基本情報技術者試験 午前 問9
配列 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 の状態(行 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 の状態(* の位置):
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: なし
答えを選ぶ
出典:令和元年度 秋期 基本情報技術者試験 午前 問9(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:エ
覚える知識
2次元配列の回転・転置操作の読解
2次元配列の回転は、元の添字(i,j)を別の添字へ写す式で表せる。
この問題で必要なこと
配列AとBの要素位置の対応から、添字の変換式(回転)を導く。
ひっかけ
対称な変換(反転・転置)の式と混同させる。
この知識の出題:本試験系 2 回・免除試験 2 回(公開問題での観測値)