HOME»基本情報技術者試験掲示板»H23年秋午後 問8 状態遷移 と 終端 処理
投稿する

H23年秋午後 問8 状態遷移 と 終端 処理 [0866]

 ボルチモアの奇跡さん(No.1) 
初めて投稿します。質問です。『平成23年度 秋 午後 問8 プログラム問題』です。
設問1 の err(エラー番号)推測問題です。

私は代入文1~4のerr を
「1: 65
  2: 51
  3: 64 ? 65の可能性
  4: 24 」
とだしました。

消去法で 問題 b = ウ = 代入文3」で正解はしたのですが、

err番号64と65で迷ったのは、 代入文1との比較です。
表2の状態遷移表をみると 、 
代入3 末尾部分 「~index++」を

x | 変数→ 変数  | err なし
+ | 変数→ 演算  | err なし
+ | 演算  ↓まま | err  ”+”なので 「64」

と処理計算しました。ここまではいいのですが、
代入文1も同様ですが、さらにそこから 「>> 終端マーク」の処理はしなくていいのでしょうか?
>>| 演算        | err ”>>”なので(64→)「65」
に書き換えられないのですか?

代入文1 は 同じ要領で 「err 65」とだしましたが…
どなたか解説いただければ幸いです。
2017.08.20 03:54
昨年合格者さん(No.2) 
問題の中に「代入文の構文解析」として手順(1)~(6)までありますが、
(4)で「実行の結果、errの値が0以外のとなったら手順(5)へ」と書かれおり、
(5)は「errの値に応じて適切なエラーメッセージを表示し、処理を終了する」となっております。
設問1の③の場合、Position=Index++の1回目の「+」の時点で
ステータスが「変数」から「演算」に変わり、2回目「+」の時点では
ステータス「演算」での「+」となるのでerrが64になります。
エラーが発生した時点で手順(4)の記述から手順(5)に移行し、エラーメッセージを表示して「終了」するので、
2番目の「+」の次にある「>>」の処理は実行されません。
2017.08.20 07:25
 ボルチモアの奇跡さん(No.3) 
はじめまして、丁寧な解説ありがとうございます。一瞬で氷解しました。

二重の意味で間違えていました。

1.問題文をしっかり確認しなかった
このミス、特に今回のような本流処理に対して、イレギュラー発生時分岐の記述見逃しが多いので気をつけていた(し、実際読み直していた)のに、やっぱり「気付かなかった」です。

2.常識的な処理としても気付くべきフロー
問題文の記述に気付かなくても、普通エラーが発生した時点で別フェイズに移行が当然なのに、代入文2でも「7FFF」の箇所を最初のFがでてerr51がでた後も処理を継続して「err 51→ 51→51」と最後まで計算していました。いわれれば、最初のerr51発生時点で次の文字に移行(上書き)する理由なんてないのですが、問題文上だと、まだまだテンパって、そこに思い至る余裕は全然ない現状です。

まだ時間調整は無視している段階なのに(かつ単問で演習しているのに)、問題文のボリュームに圧倒されて、概略把握とディティール確認のバランスが摑めていない状況です。
重ねてありがとうございました。
2017.08.20 15:02

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop