このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/10
#  [1] 授業単元:プログラミング演習 
#  [2] 問題文(含コード&リンク):例に示すように、二つの整数値を読み込んで、 
#                小さい方の数以上で大きいほうの数以下の整数 
#                を全て加えた値を表示するプログラムを作成せよ。 
#                (例) 
#                   二つの整数を入力してください。 
#                   整数1: 37 
#                                    整数2: 28 
#                                    28以上37以下の全整数の和は325です。 
#                 
#  

'二つの整数値を読み込んで、小さい方の数以上で大きいほうの数以下の整数を全て加えた値を表示する' :-
        '二つの整数値を読み込んで、'(_二つの整数値),
        小さい方の数以上で大きいほうの数以下の整数を全て加えた値を(_二つの整数値,_小さい方の数,_大きい方の数,_小さい方の数以上で大きいほうの数以下の整数を全て加えた値),
        小さい方の数以上で大きいほうの数以下の整数を全て加えた値を表示する(_小さい方の数,_大きい方の数,_小さい方の数以上で大きいほうの数以下の整数を全て加えた値).

'二つの整数値を読み込んで、'(_二つの整数値) :-
        write('二つの整数を入力して下さい。\n'),
        findall(_整数,(
                    for(1,_何番目,2),
                    整数入力(_何番目,_整数)),
                _二つの整数値).

整数入力(_何番目,_整数) :-
        writef('整数%t: ',[_何番目]),
        get_line(Line),
        整数入力診断(Line,_整数),!.
整数入力(_何番目,_整数) :-
        整数入力(_何番目,_整数).

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

小さい方の数以上で大きいほうの数以下の整数を全て加えた値を([N1,N2],N1,N2,_小さい方の数以上で大きいほうの数以下の整数を全て加えた値) :-
        N1 =< N2,
        findsum(N,(
                    for(N1,N,N2)),
                _小さい方の数以上で大きいほうの数以下の整数を全て加えた値).
小さい方の数以上で大きいほうの数以下の整数を全て加えた値を([N1,N2],N2,N1,_小さい方の数以上で大きいほうの数以下の整数を全て加えた値) :-
        N1 > N2,
        findsum(N,(
                    for(N2,N,N1)),
                _小さい方の数以上で大きいほうの数以下の整数を全て加えた値).

小さい方の数以上で大きいほうの数以下の整数を全て加えた値を表示する(_小さい方の数,_大きい方の数,_小さい方の数以上で大きいほうの数以下の整数を全て加えた値) :-
        writef('%t以上%t以下の全整数を加えた値は%tです。\n',[_小さい方の数,_大きい方の数,_小さい方の数以上で大きいほうの数以下の整数を全て加えた値]).