基礎理論|平成23年度 秋期 ITパスポート試験 問91
〔中問A・ディジタル画像〕〔テクノロジ〕ディジタル画像を右に 90 度回転させる処理を流れ図で表すとき,図 3 の a に入れる適切な字句はどれか。
〔中問A の記述(抜粋・再掲)〕縦 7 画素,横 7 画素のディジタル画像を回転させる処理について考える。
```
〔図3 ディジタル画像を右に 90 度回転させる処理〕流れ図
╭──────╮
│ 開始 │
╰──────╯
│
┌────────────────────┐
│ i での繰返し │ i = 1, 2, …, 7
└────────────────────┘
│
┌────────────────────┐
│ j での繰返し │ j = 1, 2, …, 7
└────────────────────┘
│
┌──────────────────────────────────────┐
│ 回転前の i 行 j 列の画素を │
│ 回転後の [ a ] の画素に設定する │
└──────────────────────────────────────┘
│
┌────────────────────┐
│ j での繰返し(終端)│
└────────────────────┘
│
┌────────────────────┐
│ i での繰返し(終端)│
└────────────────────┘
│
╭──────╮
│ 終了 │
╰──────╯
〔図の左側〕回転前の画像(数字の “9”)→「右に 90 度回転」→ 回転後の画像
```
- (8−i)行 j 列
- (8−j)行 i 列
- i 行(8−j)列
- ✓ これが正解j 行(8−i)列
解説
角の一点では決まらないので、二点目で式を切り分けます。
右へ九十度まわすと、左上の点が右上へ動きます。だから角の一点を当てはめれば、いくつかの式が落ちました。まわす前の一行一列は、まわした後の一行七列になります。四つの式に一と一を入れて、順に確かめました。二つの式は七行一列となり、そこで外れます。残った二つは、どちらも一行七列を指しました。一点では決まらないので、もう一点を取ります。二点目は一行七列で、まわすと七行七列へ動きます。片方は一行一列を指すので、そこで落ちました。もう片方は七行七列となり、こちらが残りました。だから行と列を入れ替え、列だけを引き算にした式が当たります。繰返しの中で、一つずつ移し替えていく形でした。対称でない二点目を取るのが、この問の要です。二点目で切ります。シラバスも、この構造をアルゴリズムの項目に置いています。
ほかの選択肢はなぜ違うのか
- 行を引き算にした式が、こちらのほうです。一と一を入れると、七行一列になりました。ところが左上の点は、右上へ動きます。一行七列でなければなりません。角の一点で落ちます。引く場所が違いました。引く場所を取り違えました。
- 行を引き算にして、列に行の番を置いた式です。こちらも一と一を入れると、七行一列でした。左上が左下へ動く形になっています。けれども右へまわせば、右上へ動きました。同じく一点で落ちます。向きが逆でした。左下へ動きます。
- 行に行の番を置き、列を引き算にした式です。一と一を入れると、確かに一行七列になりました。角の一点だけでは、残ってしまいます。ところが一行七列を入れると、一行一列でした。右上が左上へ動きます。二点目で落ちました。一点では足りません。
この問題に関係する言葉
- 繰返し
出典:平成23年度 秋期 ITパスポート試験 問91(改変:原典の図表をテキストに書き起こした)
同じ単元をまとめて解くなら基礎理論へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)