配列Aが図2の状態のとき、図1の流れ図を実行すると、配列Bが図3の状態になった。図1のaに入れる操作はどれか。ここで、配列A, Bの要素をそれぞれA(i, j), B(i, j)とする。

添字の交換は転置、片方の反転を伴えば90度回転になる

頻出基本情報技術者試験2022年度 公開問題 科目A6/アルゴリズムとプログラミング / アルゴリズム

図1 流れ図:開始→ループ1(i:0,1,7)→ループ2(j:0,1,7)→[a]→ループ2→ループ1→終了。(注)ループ端の繰返し指定は、変数名:初期値,増分,終値を示す。図2 配列Aの状態(8×8、i=0〜7が縦・j=0〜7が横):*があるのは(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)、(1,1)、(2,1)、(3,1)(3,2)(3,3)(3,4)、(4,1)、(5,1)、(6,1)、(7,1)。図3 実行後の配列Bの状態:*があるのは(1,0)〜(1,7)の全て、(2,4)(2,7)、(3,4)(3,7)、(4,4)(4,7)、(5,7)、(6,7)。i=0の行とi=7の行は空。
図1 流れ図:開始→ループ1(i:0,1,7)→ループ2(j:0,1,7)→[a]→ループ2→ループ1→終了。(注)ループ端の繰返し指定は、変数名:初期値,増分,終値を示す。図2 配列Aの状態(8×8、i=0〜7が縦・j=0〜7が横):*があるのは(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)、(1,1)、(2,1)、(3,1)(3,2)(3,3)(3,4)、(4,1)、(5,1)、(6,1)、(7,1)。図3 実行後の配列Bの状態:*があるのは(1,0)〜(1,7)の全て、(2,4)(2,7)、(3,4)(3,7)、(4,4)(4,7)、(5,7)、(6,7)。i=0の行とi=7の行は空。

選択肢

正解と解説

正解: B(j, 7-i) ← A(i, j)

実行後の配列では、元の配列で縦に並んでいた印が横並びに、横に並んでいた印が縦並びに変わっている。これは行番号と列番号を入れ替える転置に加え、一方の添字を反転させる操作、すなわち図形を90度回転させる代入に相当する。添字の対応を1つの要素で確かめれば、行と列を交換したうえで元の行番号を反転させる式が合致すると分かる。

選択肢ごとの解説

出典:令和4年度 公開問題 基本情報技術者試験 科目A 問6(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。