このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1267796762/13
#  【 課題 】  
#  ○県、市別に男女の人数をクロス集計するプログラムを作成せよ。 
#   
#  千葉県 柏市 男 
#  千葉県 松戸市 男 
#  埼玉県 さいたま市 女 
#  千葉県 柏市 男 
#  埼玉県 越谷市 男 
#  千葉県 松戸市 男 
#  埼玉県 岩槻市 女 
#  千葉県 柏市 女 
#  埼玉県 さいたま市 女 
#   
#  [実行例](男の場合) 
#  ,柏市,松戸市,さいたま市,越谷市,岩槻市 
#  千葉県,2,2,0,0,0 
#  埼玉県,0,0,0,1,0 
#   
#  [実行例](女の場合) 
#  ,柏市,松戸市,さいたま市,越谷市,岩槻市 
#  千葉県,1,0,0,0,0 
#  埼玉県,0,0,2,0,1 
#   
#  【 形態 】1. Javaアプリケーション  
#   
#  【 期限 】3/28まで  
#   
#  【 Ver  】java version "1.5.0_05"  
#   
#   
#  CSVへの出力やファイル入出力といったことはできますが、クロス集計のアルゴリズムに苦戦しています。 
#  よろしくお願い致します。 
# 
# 

○県、市別に男女の人数をクロス集計する(_性別) :-
      findall(_県名,県・市・男女(_県,_,_),_重複を許した県名ならび),
      sort(_重複を許した県名ならび,_整列した重複しない県名ならび),
      findall(_都市名,県・市・男女(_,_都市名,_),_重複を許した都市名ならび),
      sort(_重複を許した県名ならび,_整列した重複しない都市名ならび),
      concat_atom(_整列した重複しない都市名ならび,',',_都市名行表示),
      write_formatted(',%t\n',[_都市名行表示]),
      member(_県名,_整列した重複しない県名ならび),
      findall(_人数,( member(_都市名,_整列した重複しない都市名),
                      count(_県名,_都市名,_性別),_人数)),
              _人数ならび),
      concat_atom([_県名|_人数ならび],_行表示),
      write_formatted('%t\n',[_行表示]),
      fail.
○県、市別に男女の人数をクロス集計する(_性別).