ITパスポート 平成23年度 秋期 問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)列
答えと解説
✓ これが正解エ j 行(8−i)列
解説
角の一点では決まらないので、二点目で式を切り分けます。
右へ90度回すと、左上の画素は右上へ動きます。回転前の1行1列は、回転後の1行7列になります。そこで4つの式に i=1、j=1 を入れて確かめると、2つの式は7行1列となり、ここで外れます。残る2つはどちらも1行7列を指すため、1点では決まりません。そこでもう1点を取ります。2点目の1行7列は、回転すると7行7列へ動きます。一方の式は1行1列を指して外れ、もう一方は7行7列となって残ります。したがって、行と列を入れ替え、列だけを引き算にした式が正解です。繰返しの中で、画素を1つずつ移し替えていく形です。対称でない2点目を取るのが、この問の要です。シラバスも、この構造をアルゴリズムの項目に置いています。
ほかの選択肢の解説
- ア (8−i)行 j 列:行を引き算にした式です。i=1、j=1 を入れると7行1列になりますが、左上の画素は右へ回すと右上へ動くので、1行7列でなければなりません。角の1点で外れます。引き算を置く場所を取り違えた式です。
- イ (8−j)行 i 列:行を引き算にして、列に行の番号を置いた式です。i=1、j=1 を入れるとこちらも7行1列となり、左上の画素が左下へ動く形になります。右へ回せば右上へ動くはずなので、同じく角の1点で外れます。回す向きが逆です。
- ウ i 行(8−j)列:行に行の番号を置き、列を引き算にした式です。i=1、j=1 を入れると確かに1行7列になり、角の1点だけでは残ります。ところが2点目の1行7列を入れると1行1列となり、右上の画素が左上へ動く形になります。2点目で外れるため、1点では足りません。
関連用語
- 流れ図アルゴリズム、つまり処理の手順を図で表す方法の一つです。
出典:平成23年度 秋期 ITパスポート試験 問91(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
同じ分野の問題
誤りを見つけたら報告する