平成31年春期 午後問題3
ファイル:2019h31h_ap_pm_qs.pdf
1、状態遷移について、(1)、(2)に答えよ
(1)鮭定食、野菜サラダ、ゴマドレッシング、みそ汁の順番で注文が入った場合の状態遷移について、図2の状態番号を使って遷移する順を答えよ。
状態遷移番号順については、図2だけは不十分ですね、表1も参照するのは必要です。
1)、イベントコードを整理する:
0 → 鮭定食(110)→野菜サラダ(212)→ゴマドレッシング(402)→みそ汁(310)
2)、図2を参照して、
0 → 2 → 3 → 4 → 5 が答えですね。
2、表2中のア、イに入れる適切な字句を答えよ。
図2を参照するのも必要ですね。
アは、状態3では、発券可否とのことですね、
図2により、3は発券不可ので、falseです。
イは、状態4から、イベントコード212に遷移するの結果のことですね。
図2により、状態3に遷移するよね。サイド1とサイド2だけ割引が可能ので、「3:0」が答えですね。
3、プログラム
ウはorder[i].A ですね。
エは、表3には、「N,S,O、Aが整数である」との説明があるので、
order[i].N ✖ 100 + order[i].S ✖ 10 + order[i].O ✖ 1 で計算されますね。
仮に、整数ではない場合、例え、文字列とすると、
order[i].N + order[i].S + order[i].O になりますね。
オは、discountであるので、変数status_table[stat][ev]から取得しますね。
ただ、注意点は、evは関数get_event_index()で取得する値また固定値ACCEPT_INDEXので、
status_table[status][event_index].discountですね。
カは、オを参照して、
status_table[status][event_index].statusですね。
キは、acceptedがtrueに等しい ですね。
4、図4の判定プログラムについて、プログラムに変更を加えず、表1,2の内容を変更するだけで対応できる要件を回答群の中から二つ選ぶ。
ここで、表1,2の内容について、業務運用中の変更は行わないものとする。
ポイントは、
・プログラムを変更しない
・表1,2の内容だけを変更
・二つを選ぶ
・表1,2の内容について、業務運用中の変更は行わない
つまり、業務外時間で設定して、そのまま運用で対応できる選択肢ですね。
アは、時間帯判定は、既存PGMはできないですね。✖
イは、表1に、つゆの量を追加する、オプションだから、分類名「4、オプション」に追加するだろう。表2に、カラム(イベントコード)を追加して、遷移状態を追加したらよいですね。PGM修正は発生しません。
ウは、値引きが食券の購入ごとに1回だけ適用されるので、複数個ずつ注文でも、値引きも1回だけ適用するよね。ルールはこういうルールだけど、内部でどうやるのは分からないです。PGMからみると、サイド1→サイド2順で注文すると、50値引き適用するよね。複数セットでサイト1,2を注文すると、もちろん、複数適用だろう。でもルール違反ですね。
オは、表1に普通に追加、表2は、特盛にE:0に設定すればよいですね。
なので、エ、オは正しいですね。
ウはちょっと謎です、まあ、試験中、こんなものを選ばない方が良いだろうね。