10/06/25 20:09:37
>>86 (>>84)
% Prolog 述語名の終わりの'が落ちているところがあった。
構造定義(成績,成績(_番号,_国語,_数学,_英語)).
構造検査(成績,成績(_番号,_国語,_数学,_英語)) :-
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 _国語 + _数学 + _英語),
_全平均値).