このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/666
#  [1] 授業単元: C言語プログラミング 
#  [2] 問題文(含コード&リンク):  
#  為替レート(rate)、円(yen)、ドル(doll)、セント(cent)(いずれも整数)からなる構造体moneyの 
#  ポインタを引数とし円からドルへの変換を行う関数exchangeを作成せよ. 
#   
#  関数exchangeのプロトタイプ宣言 
#   void exchange(struct money *mp); 
#   
#  上の関数を使ってrateが80円のときの25800円のドルとセントを求めるプログラムを作成せよ。 
#  なお、メインプログラム内に以下のような初期値つきの構造体変数宣言を使うこと. 
#   
#  struct money m = { 80, 25800, 0, 0 }; 
#   
#  実行例 
#  $./kadai1 
#  322 doll 50 cent 
#   
#  ヒント 
#  「 
#  struct money { 
#    // メンバー 
#  }; 
#   
#  exchange(&m); // 擬似的参照渡しになるので,結果はmoneyに返る 
#  」 
#  

為替レート(円,ドル,80.0,1).
'セント・ドル'(セント,ドル,100,1).

'為替レート(rate)、円(yen)、ドル(doll)、セント(cent)(いずれも整数)から円からドルへの変換を行う'(_円,_ドル,_セント) :-
        為替レート(円,ドル,A,B),
        'セント・ドル'(セント,ドル,C,D),
        E is truncate(floor(_円 * (B /  A) * C / D)),
        _ドル is E // (C / D),
        _セント is  _ドル mod (C / D).