このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1342966104/90
#  助けてください!  
#  C言語の課題です。  
#   
#  「自分のフルネームをアルファベット小文字で入力し、そのアスキーコードを、10進数で求めて平均、分散、標準偏差を表示」  
#  を表すソースを教えてください。  
#   

'自分のフルネームをアルファベット小文字で入力し、そのアスキーコードを、10進数で求めて平均、分散、標準偏差を表示' :-
        自分のフルネームをアルファベット小文字で入力し(_自分のフルネーム),
        'そのアスキーコードを、10進数で求めて'(_自分のフルネーム,_自分のフルネームのアスキーコードならび),
        '平均、分散、標準偏差を表示'(_自分のフルネームのアスキーコードならび).

自分のフルネームをアルファベット小文字で入力し(_自分のフルネーム) :-
        write('自分のフルネームをアルファベット小文字で入力してください : '),
        get_line(_自分のフルネーム).

'そのアスキーコードを、10進数で求めて'(_自分のフルネーム,_自分のフルネームのアスキーコードならび) :-
        atom_codes(_自分のフルネーム,_自分のフルネームのアスキーコードならび).

'平均、分散、標準偏差を表示'(_自分のフルネーム,_自分のフルネームのアスキーコードならび) :-
        相加平均(_自分のフルネームのアスキーコードならび,_相加平均),
        分散(_自分のフルネームのアスキーコードならび,_分散),
        標準偏差(_自分のフルネームのアスキーコードならび,_標準偏差),
        writef('自分のフルネーム = %t, 自分のフルネームのアスキーコード = %t, 平均 = %t, 分散 = %t, 標準偏差 = %t\n',[_自分のフルネーム,_自分のフルネームのアスキーコードならび,_平均,_分散,_標準偏差]).

相加平均(L,M) :-
        length(L,N),
        相加平均(L,N,0.0,M).

相加平均([],N,S,M) :-
        M is S / N,!.
相加平均([A|R],N,S,M) :-
        S1 is S + A,
        相加平均(R,N,S1,M).

分散(L,V) :-
        length(L,N),
        相加平均(L,M),
        分散(L,N,M,0.0,V).

分散([],N,M,S,V) :-
        V is S / N,!.
分散([A|R],N,M,S,V) :-
        S1 is (A - M) ^ 2,
        S2 is S + S1,
        分散(R,N,M,S2,V).

標準偏差(L,V) :-
        length(L,N),
        相加平均(L,M),
        標準偏差(L,N,M,0.0,V).

標準偏差([],N,M,S,V) :-
        V is sqrt(S / (N - 1)),!.
標準偏差([A|R],N,M,S,V) :-
        S1 is (A - M) ^ 2,
        S2 is S + S1,
        標準偏差(R,N,M,S2,V).