10/02/04 07:45:56
>>597
% Prolog
program :-
user_parameters(L),
dividePart(L,L1),
assertz('>>597 構造体'(L1)).
dividePart([],[]) :- !.
dividePart([A|R1],[(整数部(_整数部),小数部(_小数部),(実数値(_実数値))|R2]) :-
atom_to_term(A,_実数値,_),
_整数部 is float_integer_part(_実数値),
_小数部 is float_fractional_part(_実数値),
dividePart(R1,R2).
printData :-
'>>597 構造体'(L),
printSum(L,0.0,0.0,0.0).
printSum([],_整数部の合計,_小数部の合計,_実数値の合計) :-
write_formatted('整数部の合計=%t,小数部の合計=%t,実数値の合計=%t\n',[_整数部の合計,_小数部の合計,_実数値の合計]),!.
printSum((整数部(_整数部),小数部(_小数部),(実数値(_実数値))|R1],_整数部の合計1,_小数部の合計1,_実数値の合計1) :-
_整数部の合計2 is _整数部 + _整数部の合計1,
_整数部の合計2 is _小数部 + _小数部の合計1,
_実数値の合計2 is _実数値 + _実数値の合計1,
printSum(R1,_整数部の合計2,_小数部の合計2,_実数値の合計2).