このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1342966104/103
#  [1] 授業単元:C言語 
#  [2] 問題文: 
#  2つの整数aとb(但しa<b)を入力すると、aからbまでの和と積を求めるプログラムを作成せよ。 
#  但し、#if〜#endif文を用いて、「#define on 1」と「#define on 0」の制御により、最終的な結果だけを出力する場合と 
#  和を入れる変数waと積を入れる変数sekiの計算途中の値も出力する場合の2通りで実行できるようにせよ。 
#  そして両方の場合について実行せよ。 
#  <入力例> 
#  wa=3 seki=6 
#  <結果のみ出力する場合> 
#  wa=18 seki=360 
#  <途中経過も出力する場合> 
#  wa=3 seki=3 
#  wa=7 seki=12 
#  wa=12 seki=60 
#  wa=18 seki=360 
#  (最後の結果が重複して表示されてもよい。) 
#  

'2つの整数aとb(但しa<b)を入力すると、aからbまでの和と積を求める' :-
        '2つの整数aとb(但しa<b)を入力すると'(_a,_b),
        'aからbまでの和と積を求める'(_a,_b,_和,_積).

'2つの整数aとb(但しa<b)を入力すると'(_a,_b) :-
        repeat,
        整数を得る(a,_a),
        整数を得る(b,_b),
        _b > _a,!.

'aからbまでの和と積を求める'(_a,_b,_和,_積) :-
        'aからbまでの和を求める'(_a,_b,_和),
        'aからbまでの積を求める'(_a,_b,_積).

'aからbまでの和を求める'(_b,_b,_b) :- !.
'aからbまでの和を求める'(N,_b,S) :-
        N_2 is N + 1,
        'aからbまでの和を求める'(N_2,_b,S_2),
        S is S_2 + N.

'aからbまでの積を求める'(_b,_b,_b) :- !.
'aからbまでの積を求める'(N,_b,M) :-
        N_2 is N + 1,
        'aからbまでの積を求める'(N_2,_b,M_2),
        M is M_2 * N.