このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1200175247/927
#  n=12  
#  x=[2,6,20,15,8,21,8,22,15,20,1,15]  
#  y=["Jan","Feb","Mar","Apr","Mey","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] #  sx=0  
#  upper=0  
#  middle=0  
#  lower=0  
#  xmax=0  
#  xmin=0  
#  best_x=0  
#  worst_x=0  
#   
#  for i in 0..n-1  
#  sx=sx+x[i]  
#  end  
#  xave=sx/n  
#  print "Sipments:Total=",sx," Average=",xave,"\n"  
#  puts  
#  for i in 0..n-1  
#  if x[i] >= xave*1.5 then  
#  upper = upper + 1  
#  elsif x[i] <= xave*1.5*0.5  
#  middle = middle + 1  
#  else x[i] <= xave/2  
#  lower = lower + 1  
#  end  
#  end  
#  print "Sales:Upper=",upper," Middle=",middle," Lower=",lower,"\n"  
#  puts  
#  xmax=x[0]  
#  xmin=x[0]  
#  for i in 0..n-1  
#  if xmax >= x[i] then  
#  best_x = best_x + 1  
#  else xmin <= x[i]  
#  worst_x = worst_x + 1  
#  end  
#  end  
#  print "Best Month:",best_x, " Worst Month:",worst_x,"\n"  
#  puts  
#  出力結果  
#  Sipments:Total=153 Average=12  
#  Sales:Upper=4 Middle=5 Lower=3  
#  Best Month:2 Worst Month:10  
#  本当はBest Month:Aug、Worst Month:Novとしたいんですけど、どうしたらいいですか?  
#  やっぱり変数がおかしいんですか?それとも条件の書き方ですか??  

値([2,6,20,15,8,21,8,22,15,20,1,15]).

月表示(['Jan','Feb','Mar','Apr','Mey','Jun','Jul','Aug','Sep','Oct','Nov','Dec']).

月毎の売上分析 :-
        値(_値ならび),
        月表示(_月表示ならび),
        値と月表示を対にする(_値ならび,_月表示ならび,_値・月表示ならび),
        sum(_値ならび,_合計値),
        avg(_値ならび,_平均値),
        月値評価度数(_値ならび,_平均値,_上,_中の上,_中の下,_下),
        max(_値・月表示ならび,[_Max,_最良月]),
        min(_値・月表示ならび,[_Min,_最悪月]),
        writef('合計値=%t,平均値=%t\n',[_合計値,_平均値]),
        writef('上=%t,中の上=%t,中の下=%t,下=%t\n',[_上,_中の上,_中の下,_下]),
        writef('最良月=%t,最悪月=%t\n',[_最良月,_最悪月]),!.

値と月表示を対にする([],[],[]).
値と月表示を対にする([_値|R1],[_月表示|R2],[[_値,_月表示]|R3]) :-
        値と月表示を対にする(R1,R2,R3).

月値評価度数(_値ならび,_平均値,_上,_中の上,_中の下,_下) :-
        count((append(_,[_値|_],_値ならび),_値 >= _平均値 * 1.5),_上),
        count((append(_,[_値|_],_値ならび),_値 >= _平均値 * 1.5 / 2,_値 < _平均値 * 1.5),_中の上),
        count((append(_,[_値|_],_値ならび),_値 >= _平均値 * 0.5,_値 < _平均値 * 1.5 / 2),_中の下),
        count((append(_,[_値|_],_値ならび),_値 < _平均値 * 0.5),_下).