平成21年 春期 基本情報技術者 午後 問08
問08 必須問題次のプログラムの説明及びプログラムを読んで,設問に答えよ。 〔プログラムの説明〕 64(8 × 8)画素からなる表示領域がある。この表示領域中の一つの画素を指定して, その画素を含む同じ色の領域を,指定した色で塗り替えるプログラムである。 ある一つの画素について,その画素の上下左右の4方向に隣接した画素の中に同じ 色のものがあれば,それらの画素は同じ色の領域内にあるものと判定する。 このようにして領域内にあると判定された隣接する各画素について,同様の判定を繰り返し, 指定した色で塗り替えていく。 (1) 大きさ 10 × 10 の2次元配列 Image(各添字の範囲は0〜9)を用意する。 各画素の色は,配列 Image の一部(各添字の範囲は1〜8)に保持する。 (2) 色は, の3色で,それぞれを値1,2,3で表す。 (3) 塗り替えたい領域中の開始点を示す一つの画素を,変数 VS と HS で指定する。 VS と HS は,その画素に対応する配列 Image の要素の縦と横方向の添字である。 (4) 塗り替えたい色を,変数 NC で指定する。 (5) プログラムは,Image[VS, HS] から現在の画素の色を取得し, その画素を含む同じ色の領域を,色 NC で塗り替える。 (6) 大域変数 Image, NC, VS, HS には,正しい値が設定されているものとする。 (7) 配列 VPos, HPos の添字は,1から始まる。 (8) 図1は,VS=5, HS=3 として,Image[5, 3] を塗り替えたい領域内の開始点に 指定し,NC=1 として,塗り替える色を黒(■)に指定した場合の,プログラムの実行例である。
図1 プログラムの実行例(NC=1,VS=5,HS=3 の場合)
〔プログラム〕
設問 次の記述中の に入れる正しい答えを,解答群の中から選べ。 このプログラムに関する先輩技術者(以下,先輩という)と新入技術者(以下,新人という)の会話である。
図2 1画素,2画素,3画素からなる領域 新入:では,追跡してみます。結果は,次の表のとおりです。この結果から, 行番号 12 〜 14 は省略できない必要な処理であることが分かりました。
b に関する解答群 イ これらの要素も色 NC での塗替えの対象とすることで,処理を簡素化できる ウ 配列 Image の各添字の範囲チェックを省略できる エ 配列 VPos と HPos の各添字の範囲チェックを省略できる ウ 2(m+n+2) エ 2(m+n−2) ウ ・Wall ← 256 − CC エ ・Wall ← 255 − NC イ 塗替えは一度も実行せずに終了する。 ウ 塗り替えるべき領域に含まれない周辺の画素まで塗り替えて終了する。 エ 変数 More の値が増加していき配列の添字の上限を超える。 オ 変数 More の値は一定値以下であるが処理が無限にループする。
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||||||||||