09/06/18 16:46:28
>>227
% Prolog
'cos(x)とx軸で囲まれる領域において、xがa~bの区間の面積を台形積分で求める'(_開始
X座標,_終了X座標,X) :-
分割数(_分割数),
_開始X座標2 is _開始X座標,
_終了X座標2 is _終了X座標,
刻み幅(_分割数,_開始X座標2,_終了X座標2,_刻み幅),
Y座標ならびを得る(_分割数,_分割数,_開始X座標2,_終了X座標2,_Y座標ならび),
台形の総面積(_Y座標ならび,_刻み幅,X).
分割数(30).
台形の総面積([A,B],_刻み幅,X) :-
X is (A+B) * _刻み幅 / 2,!.
台形の総面積([A,B|R],_刻み幅,X) :-
Z is (A+B) * _刻み幅 / 2,
台形の総面積([B|R],_刻み幅,Y),
X is Z + Y.
Y座標ならびを得る(_分割数,_分割数,_開始X座標,_終了X座標,[A]) :-
A is cos(_終了X座標),!.
Y座標ならびを得る(N,_分割数,_開始X座標,_終了X座標,[A|R]) :-
A is cos(((_終了X座標-_開始X座標) * N / _分割数 + _開始X座標)),
Y座標ならびを得る(M,_分割数,_開始X座標,_終了X座標,R).
刻み幅(_分割数,_開始X座標,_終了X座標,_刻み幅) :-
_刻み幅 is (_終了X座標-_開始X座標) / _分割数.