本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和元年度 秋期 基本情報技術者試験問題と解説

問9

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


    図1 流れ図

          j 
    ───────────────→
    0 1 2 3 4 5 6 7 
 │ ┌─┬─┬─┬─┬─┬─┬─┬─┐
 │0│ │*│*│*│*│*│*│ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │1│ │*│ │ │ │ │ │ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │2│ │*│ │ │ │ │ │ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │3│ │*│*│*│*│ │ │ │
i│ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │4│ │*│ │ │ │ │ │ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │5│ │*│ │ │ │ │ │ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │6│ │*│ │ │ │ │ │ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │7│ │*│ │ │ │ │ │ │
 ↓ └─┴─┴─┴─┴─┴─┴─┴─┘
    図2 配列Aの状態

          j 
    ───────────────→
    0 1 2 3 4 5 6 7 
 │ ┌─┬─┬─┬─┬─┬─┬─┬─┐
 │0│ │ │ │ │ │ │ │ │
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │1│*│*│*│*│*│*│*│*│
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │2│ │ │ │ │*│ │ │*│
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │3│ │ │ │ │*│ │ │*│
i│ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │4│ │ │ │ │*│ │ │*│
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │5│ │ │ │ │ │ │ │*│
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │6│ │ │ │ │ │ │ │*│
 │ ├─┼─┼─┼─┼─┼─┼─┼─┤
 │7│ │ │ │ │ │ │ │ │
 ↓ └─┴─┴─┴─┴─┴─┴─┴─┘
    図3 実行後の配列Bの状態

ア 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の“*”状態に着目すると、アルファベットの“F”の文字に見える。図3では、“F”が時計回りに90度回転していることが分かる。
つまり例えば、A(i, j) = A(0, 6) は B(6, 7) になる。

選択肢にA(i, j) = A(0, 6)を代入して、B(6, 7) になる選択肢が正解となる。

ア B(7-0, 7-6) = B(7, 1)
イ B(7-6, 0) = B(1, 0)
ウ B(0, 7-6) = B(0, 1)
エ B(6, 7-0) = B(6, 7)

念のため、例えば、A(i, j) = A(7, 1) は B(1, 0) になるが、選択肢エでは
B(1, 7-7) = B(1, 0) となり正しいことが分かる。

問8 目次 問10