アルゴリズムとプログラミング
平成27年度 秋期 基本情報技術者試験 午前 問6
配列 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〜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〜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: 空
答えを選ぶ
出典:平成27年度 秋期 基本情報技術者試験 午前 問6(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:エ
覚える知識
2次元配列の回転・転置操作の読解
n×n配列の右90度回転は、A(i,j)をB(j,n−1−i)へ格納する操作である。
この問題で必要なこと
A(0,1)の印がB(1,7)に移るなど、具体的な点を追って対応式を特定する。A(i,j)→B(j,7−i)は右90度回転。
ひっかけ
他の選択肢は左回転・180度回転・左右反転に相当し、特定の点で検証しないと区別できない。
この知識の出題:本試験系 2 回・免除試験 2 回(公開問題での観測値)。頻出知識ランキング344位(全1,254件中)。