このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1307166756/269
#   
#  [1] 授業単元:Cプログラミング 
#  [2] 問題文:2つの正の整数値を入力させ四則演算の結果を表示させる。 
#  

2つの正の整数値を入力させ四則演算の結果を表示させる :-
        2つの正の整数値を入力させ([N1,N2]),
        四則演算の結果を(N1,N2,_四則演算の結果),
        表示させる(_四則演算の結果).

2つの正の整数値を入力させ(L) :-
        length(L,_要素数),
        2つ(_要素数),!.
2つの正の整数値を入力させ([_正の整数値|R]) :-
        正の整数値を入力させ(_正の整数値),
        2つの正の整数値を入力させ(R).

2つ(2).

正の整数値を入力させ(_正の整数値) :-
        write('正の整数値を入力してください : '),
        get_line(Line),
        正の整数値診断(Line,_正の整数値),!.

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

四則演算の結果を(N1,N2,_四則演算の結果) :-
        findall([_演算,_式],四則演算(_演算,_式),_四則演算の結果).

四則演算(加算,N1 + N2 = _演算結果) :-
        _演算結果 is N1 + N2.       
四則演算(減算,N1 - N2 = _演算結果) :-
        _演算結果 is N1 - N2.       
四則演算(乗算,N1 * N2 = _演算結果) :-
        _演算結果 is N1 * N2.       
四則演算(除算,N1 / N2 = _演算結果) :-
        _演算結果 is N1 + N2.       

表示させる(_四則演算の結果) :-
        append(_,[[_演算,_式]|R],_四則演算の結果),
        writef('%t %t\n',[_演算,_式]),
        R = [].