• 締切済み

plorog計算

prologの計算で困っています。 2つの時間を定義してその2つを足した計算を行いたいのですが上手くいきません。 例えば 0150と1750を定義したとします。(0150は1時間50分、1750は17時間50分ということです。) この2つを足した時間、つまり1940(19時間40分)という回答を得るような述語を作成したいのです。 よろしくお願いします。

みんなの回答

  • chirubou
  • ベストアンサー率37% (189/502)
回答No.2

課題のようなので簡単に。 まず、せっかくprolog なんですから、1時間50分を0150と表記するのはどうかと思います。例えば、 time(1,50). とか定義すべきでしょう。とすると、時間を足すという述語は、 add_time(time(H0,M0),time(H1,M1),time(H,M)) :- ..... とかいう述語になるかと思います。後は簡単ですよね?

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.1

Prolog は使ったことがないので知りませんが, 0150 や 1750 など hhmm 形式の時刻を分に変換する述語 (0150 → 110分,1750 → 1070分) と, その逆変換を行う述語を作ればいいのでは? (Prolog はユニフィケーションがあるのでこれらの述語は 1つにまとめられるのかもしれませんが.) (1) 変換 (hhmm → 分) (2) 分同士を単純に加算 (3) 逆変換 (分 → hhmm) そうすれば加算以外の時間計算も簡単にできるようになります.