09/07/12 14:06:09
>>447
% Prolog
t447 :-
write('整数は何個ですか: '),
get_line(Line),
atom_to_term(Line,N,_),
整数をn個読み込む(1,N,L),
sum(L,Sum),
avg(L,Avg),
write('合計値: %t\n平均値: %t\n',[Sum,Avg]).
整数をn個読み込む(M,N,[]) :- M > N,!.
整数をn個読み込む(M,N,[_整数|R]) :-
write_formatted('No.%t: ',[M]),
get_line(Line),
atom_to_term(Line,_整数,_),
M2 is M + 1,
整数をn個読み込む(M2,N,R).
sum([],0).
sum([A|R],X) :- sum(R,Y),X is A + Y.
avg(L,X) :- length(L,Len),Len > 0,sum(L,Sum),X is Sum / Len.