このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1288531658/32
#  失礼しました。 
#   
#  [1] 授業単元:応用プログラミング 
#  [2] 問題文(含コード&リンク): 
#  n人の成績データを一次元配列に格納し、平均点を求めるプログラムを作成せよ。 
#  ただし、データ入力部、計算部、出力部は関数化せよ。 
#   
#  

'n人の成績データを成績データならびに格納し、平均点を求める'(File) :-
'n人の成績データを成績データならびに格納し、'(_Lines,_成績データならび),
平均点を求める(_n人,_成績データならび,_平均点),
平均点を出力する(_成績データならび,_平均点).


'n人の成績データを成績データならびに格納し、'(File,_n人,_成績データならび) :-
get_lines(File,Lines),
'n人の'(Lines,_n人,R),
'成績データを成績データならびに格納し、'(R,_成績データならび).


'n人の'(Lines,_n人,R) :-
append([Line],R,Lines),
read_term_from_atom(Line,_n人,[]).


'成績データを成績データならびに格納し、'(R,_成績データならび) :-
findall(_成績,(member(A,R),read_term_from_atom(A,_成績,[])),_成績データならび).


平均点を求める(_n人,_成績データならび,_平均点) :-
sum_list(_成績データならび,_n人の合計点),
_平均点 is _n人の合計点 / _n人.


平均点を出力する(_成績データならび,_平均点) :-
writef('成績ならびは %t. 平均点は %t です。\n',[_成績データならび,_平均点]).