このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1370255305/772
#  今朝急に友人から依頼されたのですが、javaしか経験したことがなく、C++なんて今まで触れたことすらないのでどなたかお助け下さい。 
#  一応ウィンドウ画面については作れたのですが・・・。 
#   
#  [1] 授業単元: 課題 
#  [2] 問題文:  
#  1:数値a,b を入力し,a+b,a−b,a*b,a/b を計算するプログラムを作成して 
#  ください。 
#    注:数値は小数点以下を含むものとし,変数の型宣言をDouble としてください。 
# 
# 
:- op(450,xfy,'+').
:- op(450,xfy,'−').
:- op(450,xfy,'*').
:- op(450,xfy,'/').

'数値a,b を入力し,a+b,a−b,a*b,a/b を計算するプログラムを作成してください。 注:数値は小数点以下を含むものとし,変数の型宣言をDouble としてください。' :-
        '数値a,b を入力し'(_数値a,_数値b),
        'a+b,a−b,a*b,a/b を計算する'(_数値a,_数値b).

'数値a,b を入力し'(_数値a,_数値b) :-
        数を入力する(数値a,_数値a),
        数を入力する(数値b,_数値b).

'a+b,a−b,a*b,a/b を計算する'(_数値a,_数値b) :-
        'a+b,a−b,a*b,a/bの計算式を得る'(_数値a,_数値b,R,_式文字列),
        計算して表示する(_式文字列,_数値a,_数値b),
        R = [].

'a+b,a−b,a*b,a/bの計算式を得る'(_数値a,_数値b,R,_式文字列) :-
        split('a+b,a−b,a*b,a/b',[,],L),
        append(_,[_式文字列|R],L).

計算して表示する(_式文字列,_数値a,_数値b) :-
        atom_to_term(_式文字列,_式,_),
        計算する(_式,_数値a,_数値b,_計算結果),
        表示する(_式文字列,_計算結果).

計算する(_ + _,_数値a,_数値b,_計算結果) :-
        _計算結果 is _数値a + _数値b.
計算する(_ − _,_数値a,_数値b,_計算結果) :-
        _計算結果 is _数値a - _数値b.
計算する(_ * _,_数値a,_数値b,_計算結果) :-
        _計算結果 is _数値a * _数値b.
計算する(_ / _,_数値a,_数値b,_計算結果) :-
        _計算結果 is _数値a / _数値b.

表示する(_式文字列,_計算結果) :-
        writef('%t = %t\n',[_式文字列,_計算結果]).