状態遷移表のとおりに動作し,運転状況に応じて装置の温度が上下するシステムがある。
システムの状態が“レディ”のとき,①~⑥の順にイベントが発生すると,最後の状態はどれになるか。
ここで,状態遷移表の空欄は状態が変化しないことを表す。
〔発生するイベント〕
① メッセージ1を受信する。
② メッセージ1を受信する。
③ 装置の温度が50℃以上になる。
④ メッセージ2を受信する。
⑤ 装置の温度が40℃未満になる。
⑥ メッセージ2を受信する。
正答4
解説
正解は4です。
図の状態遷移表は、列が現在の状態(レディ、高速運転、低速運転、一時停止)、行が条件(イベント)を表します。
各欄には動作名と、遷移先の状態番号(1:レディ、2:高速運転、3:低速運転、4:一時停止)が書かれています。
空欄は状態が変化しないことを表すので、イベントを順にたどります。
【計算】
初めはレディ(状態1)です。
①メッセージ1を受信すると、レディの欄は「運転開始、2」なので高速運転になります。
②メッセージ1を受信すると、高速運転の欄は空欄なので高速運転のままです。
③温度が50℃以上になると、高速運転の欄は「減速、3」なので低速運転になります。
④メッセージ2を受信すると、低速運転の欄は「一時停止、4」なので一時停止になります。
⑤温度が40℃未満になると、一時停止の欄は「運転再開、3」なので低速運転になります。
⑥メッセージ2を受信すると、低速運転の欄は「一時停止、4」なので一時停止になります。
【選択肢別解説】
1:× レディに戻るのは、一時停止中にメッセージ2を受信して「初期化」が行われたときです。
⑥の時点では低速運転なので、レディにはなりません。
2:× 高速運転になるのは①から②までの間です。
その後、③の温度上昇で減速して低速運転になっています。
3:× 低速運転になるのは③の後と⑤の後です。
最後の⑥でメッセージ2を受信して一時停止に移るので、最後の状態ではありません。
4:○ ⑥で低速運転中にメッセージ2を受信して一時停止に遷移するので、最後の状態は一時停止です。
【ポイント】
状態遷移表は「現在の状態の列」と「起きたイベントの行」の交点を見て、遷移先をたどります。
空欄(変化なし)を見落とさないことが大切です。