このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/132
#  [1] 授業単元:プログラミング演習  
#  [2] 問題文:  
#  double func(double x,double y, double z) 
#  { 
#   double sum; 
#   sum=x+y+z; 
#   return sum; 
#  } 
#  上記のfunc関数を利用して3つの実数を入力すると、それらの合計値を計算するプログラムをmain関数からfunc関数を呼び出す形で作成しなさい。 
#  

:- op(700,xfx,は).

関数定義(func(_x,_y,_z),_値) :-
        _値 is _x + _y + _z.

_値 は _関数 :-
        関数定義(_関数,_値),!.
_値 は _関数 :-
        _値 is _関数.

'上記のfunc関数を利用して3つの実数を入力すると、それらの合計値を計算する'(_合計値) :-
       '3つの実数を入力すると'(_実数_1,_実数_2,_実数_3),
       それらの合計値を計算する(_実数_1,_実数_2,_実数_3,_合計値).

それらの合計値を計算する(_実数_1,_実数_2,_実数_3,_3つの実数の合計値) :-
       _3つの実数の合計値 は func(_実数_1,_実数_2,_実数_3).

'3つの実数を入力すると'(_実数_1,_実数_2,_実数_3) :-
       'n番目の実数を入力'(1,_実数_1),
       'n番目の実数を入力'(2,_実数_2),
       'n番目の実数を入力'(3,_実数_3).

'n番目の実数を入力'(_n,_実数) :-
        writef('%番目の実数を入力してください : ',[_n]),
        get_line(Line),
        'n番目の実数を入力診断'(Line,_実数),!.
'n番目の実数を入力'(_n,_実数) :-
        'n番目の実数を入力'(_n,_実数).

'n番目の実数を入力診断'(Line,_実数) :-
        atom_to_term(Line,_実数,_),
        float(_実数),!.
'n番目の実数を入力診断'(Line,_実数) :-
        writef('入力された %t からは実数値が得られません。再入力をお願いします。\n',[Line]),
        fail.