このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/396
#  [1] 授業単元:一次元配列 
#  [2] 問題文  
#  キーボードから得点を入力し、最高点、最低点、合計点、平均点を表示した後、元の得点と、元の得点から平均点を引いた値を表示させるプログラムを作成しなさい。なお、配列の要素数は100個とし、得点の終わりは999とする。 
#    
#  

'キーボードから得点を入力し、最高点、最低点、合計点、平均点を表示した後、元の得点と、元の得点から平均点を引いた値を表示させる。なお、要素数は最大100とし、得点入力の終わりは999とする。' :-
        'キーボードから得点を入力する。なお、要素数は最大100とし、得点入力の終わりは999とする。'(_得点ならび),
        '最高点、最低点、合計点、平均点を'(_得点ならび,_最高点,_最低点,_合計点,_平均点),
        表示した後(_最高点,_最低点,_合計点,_平均点),
        元の得点から平均点を引いた値を表示させる(_得点ならび,_平均点).

'キーボードから得点を入力する。なお、要素数は最大100とし、得点入力の終わりは999とする。'(_得点ならび) :-
        length(Ln,100),
        整数を得る(得点,_得点),
        'キーボードから得点を入力する。得点の終わりは999とする。'(Ln,_得点,_得点ならび).

'キーボードから得点を入力する。得点の終わりは999とする。'(_,999,[]) :- !.
'キーボードから得点を入力する。得点の終わりは999とする。'([_],_得点,[_得点]) :- !.
'キーボードから得点を入力する。得点の終わりは999とする。'([_|Ln],_得点,[_得点|R3]) :-
        整数を得る(得点,_得点_2),
        'キーボードから得点を入力する。得点の終わりは999とする。'(Ln,_得点_2,R3).

'最高点、最低点、合計点、平均点を'(_得点ならび,_最高点,_最低点,_合計点,_平均点) :-
        max(_得点ならび,_最高点),
        min(_得点ならび,_最低点),
        sum(_得点ならび,_合計点),
        相加平均(_得点ならび,_平均点).

表示した後(_最高点,_最低点,_合計点,_平均点) :-
        writef('最高点 = %t, 最低点 = %t, 合計点 = %t, 平均点 = %t\n',[_最高点,_最低点,_合計点,_平均点]).

元の得点から平均点を引いた値を表示させる(_得点ならび,_平均点) :-
        append(_,[_元の得点|R],_得点ならび),
        _元の得点から平均点を引いた値 is _元の得点 - _平均点,
        writef('元の得点から平均点を引いた値 = %t\n',[_元の得点から平均点を引いた値]),
        R = [].


%  max/2
%  min/2
%  sum/2
%  相加平均/2