dポイントプレゼントキャンペーン実施中!

基本情報技術平成21年春午後問8の設問eとfの動作の追跡が理解できません。
何か勘違いをしているのだろうと思うのですが、ポイントがどこなのか判りません。
どなたか解説して頂けないでしょうか?
宜しくお願い致します

行番号12~14を取り去って~~の設問です

A 回答 (3件)

まず、eのケースもfのケースもどちらも25行目で呼び出した


副プログラム内の38行目の条件を満たすことはよいでしょうか?
(開始画素の色と比較しているので当然満たします。)

で、その結果26行目のMore>0も満たします。

<eのケース>
1回目のループで4つすべての呼び出した副プログラムで
最初の条件を満たさないので、Moreが増加しません。
その結果、ループが終了します。

<fのケース>
1回目のループではMoreが1となり終了します。
2回目のループでは、なぜか一回目でチェックしたはずの
左隣の画素のチェックで引っかかります。
これは、ループ内でのチェック内容が
「周囲の画素の色」と「スタート地点の画素の開始時の色」
が一致しているか見ているためです。
その結果、この2つの画素を行ったり来たりとチェックしていく
ことになり、無限ループに陥ります。


うーん、非常に説明が難しいのですが、わかります?
具体的にわからない部分がわかるともうちょっとわかり易く説明できそうなんですが。。
    • good
    • 0
この回答へのお礼

回答有難うございます

お二人の判りやすい回答を読んでいたら理解できました。

理解できると何でもない流れですね・・・
アルゴリズムの問題は詰まると訳がわからなくなりますね

助かりました。有難うございます!!

お礼日時:2009/08/26 07:53

正解できたけど,頭の中で考えただけなので,どこか間違っているかも


=========================
「3つの時,なぜ上限を超えるのか」を考えさせるためにわざと問題文側で提供していますね。考えてみましょう。

以下の図でGHIが白であると仮定します


ABCDE
FGHIJ
KLMNO

で白であるHを塗るとGとIがVPosとHPosに載ります[GI]

次ににIを取り出しIの周囲を調べます
→ IのとなりのHは白でIと同じ領域なのでリストに加えておきましょう→ここでEがFと異なる色ならばFとEは同じ領域とはみなされない

[GH]

次にHを取り出し,周囲を調べます。
→ HのとなりのGとIは白でHと同じ領域なのでリストに加えておきましょう

[GGI]


→IのとなりののHは白でIと同じ領域なのでリストに加えておきましょう

[GGH]

この後の展開はもちろん
[GGGI],[GGGH],[GGGGI],[GGGGH]…

…と言う風にどんどんGが増えるので,問題文の通りであることがわかります。
=======================
という「3つのときの問題点」が見えたら,同じ事を二つのマスで考えて見ましょう。
    • good
    • 0
この回答へのお礼

回答有難うございます

お二人の判りやすい回答を読んでいたら理解できました。

理解できると何でもない流れですね・・・
アルゴリズムの問題は詰まると訳がわからなくなりますね

助かりました。有難うございます!!

お礼日時:2009/08/26 07:53

正解できたけど,頭の中で考えただけなので,どこか間違っているかも


=========================
「3つの時,なぜ上限を超えるのか」を考えさせるためにわざと問題文側で提供していますね。考えてみましょう。

以下の図でGHIが白であると仮定します


ABCDE
FGHIJ
KLMNO

で白であるHを塗るとGとIがVPosとHPosに載ります[GI]

次ににIを取り出しIの周囲を調べます
→ IのとなりのHは白でIと同じ領域なのでリストに加えておきましょう→ここでEがFと異なる色ならばFとEは同じ領域とはみなされない

[GH]

次にHを取り出し,周囲を調べます。
→ HのとなりのGとIは白でHと同じ領域なのでリストに加えておきましょう

[GGI]


→IのとなりののHは白でIと同じ領域なのでリストに加えておきましょう

[GGH]

…と言う風にどんどんGが増えるので,問題文の通りであることがわかります。
=======================
という「3つのときの問題点」が見えたら,同じ事を二つのマスで考えて見ましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!