HOME»基本情報技術者試験掲示板»午後問8のcのαって4回実行されません?
投稿する

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

 ジョンさん(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日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop