このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1328276597/895
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク): 
#  [問1] 1からNまでの平均値を求めるプログラムkadai1.cを書きなさい。ただしNはキーぼどから入力するものとし、出力は以下で出力されるものとする。 
#   printf("average = %f\n", answer);  
#  

'1からNまでの平均値を求める。ただしNはキーぼどから入力するものとする' :-
        'Nはキーぼどから入力する'(N),
        findavg(M,for(1,M,N),_相加平均),
        writef('平均値 = %t\n',[_相加平均]).

'Nはキーぼどから入力する'(N) :-
        write('0より大きい整数 N を入力して下さい : '),
        get_line(Line),
        整数入力検査(Line,N),!.
'Nはキーぼどから入力する'(N) :-
        'Nはキーぼどから入力する'(N).

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

findavg(_集約項,_項,_算術平均) :-
        findall(_集約項,_項,_値ならび),
        sum(_値ならび,_合計値),
        length(_値ならび,_ならびの長さ),
        _算術平均 is _合計値 / _ならびの長さ,!.

sum([],0).
sum([N|R],S) :-
        sum(R,Sum_1),
        Sum is Sum_1 + N.