このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/880
#  [1] 授業単元:C言語 
#  [2] 問題 http://codepad.org/I9NEBx3U 
#  
#  
#   [1] 次の数列の第20項までの和を計算するプログラムを繰り返し処理を用いて作成せよ。
#       5,10,15,20,・・・・
#  

'次の数列の第20項までの和を計算する
     5,10,15,20,・・・・'(_数列の和) :-
        次の数列の第20項までの([5,10,15,20|R]),
        和を計算する([5,10,15,20|R],_数列の和).

次の数列の第20項までの(L) :-
        第20項までの(L),
        次の数列の(L,_).

第20項までの(L) :-
        length(L,20).

次の数列の([],_).
次の数列の([A,B|R],_公差) :-
        等差数列の連続した二項(A,B,_公差),
        次の数列の([B|R],_公差).
次の数列の([A,B|R],_公比) :-
        等比数列の連続した二項(A,B,_公比),
        次の数列の([B|R],_公比).

等差数列の連続した二項(A,B,_公差) :-
        var(B),
        B is A + _公差.
等差数列の連続した二項(A,B,_公差) :-
        \+(var(B)),
        _公差 is B - A.

等比数列の連続した二項(A,B,_公比) :-
        var(B),
        B is A * _公比.
等比数列の連続した二項(A,B,_公比) :-
        \+(var(B)),
        _公比 is B / A.

和を計算する([],0).
和を計算する([_数|R],_和) :-
        和を計算する(R,_和_1),
        _和 is _和_1 + _数.