このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/200
#  {1] 授業単元:一次元配列(回数の表示) 
#  [2] 問題文:  
#  得点(0点〜100点)を入力して、すべての得点が入力を終えたとき、 
#  1回以上入力された得点について回数を表示せよ。また、入力の終わりは 
#  999が入力されたときとする。また、得点の表示は0点から100点に向かっ 
#  て行うこと。 
#  [実行例] 
#  10 
#  100 
#  50 
#  60 
#  10 
#  50 
#  10 
#  999 
#   
#  得点 回数 
#  10  3 
#  50  2 
#  60  1 
#  100   1 
#  

'得点(0点〜100点)を入力して、すべての得点が入力を終えたとき、1回以上入力された得点について回数を表示する。また、入力の終わりは999が入力されたときとする。また、得点の表示は0点から100点に向かって行うこと。'
        '得点(0点〜100点)を入力する。入力の終わりは999が入力されたときとする'(_得点ならび),
        '1回以上入力された得点について回数を表示せよ。得点の表示は0点から100点に向かって行うこと。'(_得点ならび).

'得点(0点〜100点)を入力する。入力の終わりは999が入力されたときとする'(_得点ならび) :-
        findall(_得点,(
                    整数を得る('得点(0点〜100点)',(_得点 >= 0,_得点 =< 100),_得点),
                    ( _得点 = 999,!,fail;true)),
                _得点ならび).

'1回以上入力された得点について回数を表示する。得点の表示は0点から100点に向かって行うこと。'(_得点ならび) :-
        write('得点  回数\n'),
        '0点から100点に向かって'(_点数),
        '1回以上入力された得点について回数を'(_点数,_得点ならび),
        _点数 = 100.

'0点から100点に向かって'(_点数) :-
        between(0,100,_点数).

'1回以上入力された得点について回数を表示する'(_点数,_得点ならび) :-
        count(member(_点数,_得点ならび),_度数),
        _度数 >= 1,
        writef('%4r  %4r\n',[_点数,_度数]),!.
'1回以上入力された得点について回数を表示する'(_,_).



%  count/2
%  整数を得る/3
%  得点の入力述語がc158_200.htmlとは違う。
%  代表的な2パターンと言える。