午後問8のcのαって4回実行されません?

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
ジョンさん  
(No.1)
公式の解答見たらαは3回みたいなのですが、
最初に1回実行されて
スキップが3回実行されるので4回じゃないですか?
2015.10.18 21:02
受験者さん 
(No.2)
私もイの4を選んでしまいました・・・
Pat[3]のCの位置はText[4],[8],[10],[12]の4か所なので、
PLast<=TextLenのfor文に4回入り、αも4回実行されると考えたのですが・・・

答えが3回ということはfor文に入るのは3回なのでしょうか?
2015.10.18 22:08
通りすがる人さん 
(No.3)
Text[] ABC"X"BBACABACADEC
Pat[]   ABAC
    ※"X"は現在のPLastの位置

1回目のスキップで、
ABCXBBA"C"ABACADEC ←こうなり
2回目のスキップで、
ABCXBBACABA"C"ADEC ←こうなり
そのまま文字列が見つかって、9を返すのではないでしょうか。
なのでスキップ回数は2回、αの実行回数は3回になると思われます。
自信はないですが...
2015.10.18 22:13
ジョンさん  
(No.4)
そうか!2回目にスキップするときのText[PLast]は'C'だから4つ飛ばすんですね!
'B'かと読み違えしていました^^;
2015.10.18 22:46
受験者さん 
(No.5)
すみません、2回目のスキップが4つ飛ぶのが分かりません・・・

1回目のスキップ後は
要素    5  6  7  8
Text[]  B  B  A  C
Pat[]   A  B  A  C

こうなりますよね?この状態で配列末尾から比較すると要素5で相違が発生し、
Text[5]がBなので飛ぶのは2つ、ということではないのでしょうか?
2015.10.18 22:56
ジョンさん  
(No.6)
多分わたしと同じ勘違いをしていると思うのですが、
(4)の③をご覧ください。

スキップするのを決めるのはText[4]のBであり、等しくなくなった地点のText[3]のBではないのです。

コードを見てもPlastという添え字が減らされずにとってあるのがそのためです。

だから2回目のスキップでText[5]のBでスキップするのではなくText[8]のCでスキップするのです。
2015.10.18 23:08
受験者さん 
(No.7)
>>スキップするのを決めるのはText[4]のBであり、等しくなくなった地点のText[3]のBではないのです。

確かにこの通りの説明がなされてました・・・相違が発生した場合はText[]の末尾の英字を参照するんですね
幸い私のような勘違いをしていてもdとeの解答に支障はなかったので、完答配点でないことを祈ります笑

通りすがる人さん、ジョンさん、ありがとうございました
2015.10.18 23:39

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop