このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1309076891/453
#  【 課題 】コマンドラインから入力された点数を集計するプログラムを作成。 
#        ソースファイルにコードを追加して、以下の実行結果になるように。 
#   
#              実行結果  
#        java CalcMain 69 88 70 45 95 33 
#        高得点順: 95点 , 88点 , 70点 , 69点 , 45点 , 33点 
#        科目数:6科目 
#        合計点:400点 
#        平均点: 66.666664点 
#         CalcMainクラスはmain()メソッドを持つ。 
#         Calculationクラスは、合計点の計算をするgetTotal()メソッド、平均点の計算をするgetAve()メソッド、並び替え処理を行うsort()メソッドを持つ。 
#         コマンドライン引数から受け取った不特定数の数値(点数)について、降順並び替え表示、科目数、合計点、平均点の表示を行う。 
#         sort()メソッドの並び替え処理には「バブルソート」を使用する 
#   
#   
#        ソースファイル 
#        http://ime.nu/www.dotup.org/uploda/www.dotup.org2249012.java.html 
#   
#              http://ime.nu/www.dotup.org/uploda/www.dotup.org2249060.java 
#   
#   
#   
#  【 形態 】1. Javaアプリケーション(main()で開始)  
#  【 期限 】11月14日まで 
#  【 Ver  】java version "1.6.0_22" 
#  【 用語 】 
#  【 補足 】よろしくお願いします。 
# 
# 

'コマンドラインから入力された点数を集計するプログラムを作成。ソースファイルにコードを追加して、以下の実行結果になるように。' :-
        コマンドラインから入力された点数(_コマンドラインから入力された点数ならび),
        高得点順に表示(_コマンドラインから入力された点数ならび),
        科目数と合計点と平均点の表示(_コマンドラインから入力された点数ならび).

コマンドラインから入力された点数(_コマンドラインから入力された点数ならび) :-
        current_prolog_flag(argv,_コマンドライン),
        append(_,['--'|_コマンドラインから入力された点数ならび],_コマンドライン]).

高得点順に表示(L) :-
        バブルソート降順(L,L2),
        concat_atom(L2,',',_表示文字列),
        writef('高得点順: %t\n',[_表示文字列]).

科目数の表示(L,_科目数) :-
        length(L,_科目数),
        writef('科目数: %t\n',[_科目数]),

科目数と合計点と平均点の表示(L) :-
        length(L,_科目数),
        sum(L,_合計点),
        _平均点 is _合計点 / _科目数.
        writef('科目数: %t\n合計点: %t\n平均点: %t\n',[_科目数,_合計点,_平均点]).

バブルソート降順(_対象ならび,_整列済みならび) :-
    降順交換(_対象ならび,_対象ならびの一),
    !,
    バブルソート降順(_対象ならびの一,_整列済みならび).
バブルソート降順(_整列済みならび,_整列済みならび).

降順交換([],[]) :- !,fail.
降順交換([A,B|R],[B,A|R]) :-
        A @< B,!.
降順交換([A|R1],[A|R2]) :-
        降順交換(R1,R2).