このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/218
#  [1] 授業単元: プログラム 
#  [2] 問題文(含コード&リンク): 番号 国語 数学 英語のメンバを持っている構造体を作って各教科の平均値と、全平均値を求めてください。(人数は4人とか5人で行ってください。あと番号っていうのは、番号は、4人なら1〜4までで5人なら1〜5までです) 
#  

構造定義(成績,成績(_番号,_国語,_数学,_英語)).
構造検査(成績,成績(_番号,_国語,_数学,_英語)) :-
        integer(_番号),integer(_国語),integer(_数学),integer(_英語).

'番号  国語  数学  英語のメンバを持っている構造体を作る' :-
        '番号  国語  数学  英語のメンバを持っている構造体を作る'(1,L).

'番号  国語  数学  英語のメンバを持っている構造体を作る'(_,[]) :-!. 
'番号  国語  数学  英語のメンバを持っている構造体を作る'(N,[[A,B,C]|R]) :-
        assertz(成績(N,A,B,C)),
        N2 is N + 1, 
        '番号  国語  数学  英語のメンバを持っている構造体を作る'(N2,R).

各教科の平均値と、全平均値を求める(_各教科の平均,_全平均値) :-
        findavg([_国語,_数学,_英語],(
                    成績(_,_国語,_数学,_英語),
                _各教科の平均値ならび),
        findavg(_個人合計,(
                    成績(_,_国語,_数学,_英語),
                    _個人合計 is _国語 + _数学 + _英語),
                _全平均値).