• ベストアンサー

一方をつけると一方が消える、

電車の遮断機のところにあるランプなど一方がつくと 一方が消えるというのがありますよね~、。 あのアルゴリズムってどっちかが消えたあとつくようにしている という単純なものですか?そして遮断機があがると消えるという 感じでしょうか? でも目にはきえると同時についているように見えます。 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • layer13
  • ベストアンサー率47% (37/78)
回答No.2

フリッカ回路と呼ばれるものですね。 これは、どっちかが消えた後点くようにしているのではなく、 スイッチが入っているときに電気が流れる回路 スイッチが入っていないときに電気が流れる回路 の、二つを組み合わせて作ります。 C言語的に書くと if(a && b) printf("左が点いてます"); if(a && !b) printf("右が点いてます"); というような感じでしょうか? で、トリガとなるbの制御はたとえば、 1.電車が来た 2.aを真にする 3.タイマ1でn秒を計測 4.タイマ1満了 5.bを真にする 6.タイマ1満了で動き始めるタイマ2でn秒を計測 6.タイマ2満了 8.bを偽にしタイマ1、タイマ2をリセットする 9.電車が通り過ぎるまで、3~8を繰り返す 10.電車が通り過ぎた 11.aを偽にする って感じですね。 電車が通り過ぎてaが偽になれば、最初の2行はかならず偽なのでどちらも 実行されない=ランプが消える。というのはおわかり頂けると思います。 #でもこれ、プロコンなら数ステップの回路だなぁ(笑) 以上、ご参考になりましたでしょうか?

amuro_78
質問者

お礼

ありがとうございます。はい!とても参考になりました。 論理文をつかうのですね。

その他の回答 (1)

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.1

仮にランプをAとBとします。 最初Aを点灯する命令を出した後、 A,Bの点灯と消灯を反転させる命令を周期的に行っている のではないでしょうか。 そして、終了する命令がきたときに、A,Bのどっちが点灯しているかを チェックして、最後に点灯している方を消灯する命令を出す。 こんな感じだと思うんですけど。 (意味分かりますか?)

amuro_78
質問者

お礼

ありがとうございます。はいわかります。 回答遅くてすいません。

関連するQ&A

専門家に質問してみよう