このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/551
#  こんにちは。 
#  早速ですがtxtファイルに書いてある下記の数値を取り込んで平均点の大きい順に 
#  上から並び替え、別のtxtファイルに出力するプログラムを作りたいのですが 
#  どうすればいいんでしょうか。 
#   
#  ご回答お願いします。 
#   
#  14 
#  1001 90 80 70 67 
#  1002 60 50 40 60 
#  1003 55 30 56 65 
#  1004 88 70 77 20 
#  1005 60 30 90 30 
#  1006 100 0 100 100 
#  1007 23 33 21 50 
#  1008 65 66 46 98 
#  1009 58 87 88 64 
#  1010 30 55 63 32 
#  1011 65 54 70 77 
#  1013 98 89 79 90 
#  1014 100 60 95 68 
#  1016 30 22 56 30 
# 
# 

'txtファイルに書いてある下記の数値を取り込んで平均点の大きい順に上から並び替え、別のtxtファイルに出力する'(_txtファイル,_別のtxtファイル) :-
        'txtファイルに書いてある下記の数値を取り込んで'(_txtファイル,LL1),
        平均点の大きい順に上から並び替え(LL1,LL2),
        別のtxtファイルに出力する(LL2,_別のtxtファイル).

'txtファイルに書いてある下記の数値を取り込んで'(_txtファイル,LL1) :-
        get_split_lines(_txtファイル,[' '],[_|LL1]).

平均点の大きい順に上から並び替え(LL1,LL2) :-
        平均点の(LL1,LL3),
        大きい順に上からならび替え(LL3,LL2).

平均点の([],[]).
平均点の([[A|L1]|R1],[[_平均点,A|L1]|R2]) :-
        相加平均(L1,_平均点),
        平均点の(R1,R2).

大きい順に上からならび替え(LL3,LL2) :-
        整列(LL3,LL4),
        reverse(LL4,LL2).

別のtxtファイルに出力する(_別のtxtファイル,LL2) :-
        length(LL2,Len),
        open(_別のtxtファイル,write,Outstream),
        出力する(Outstream,[[Len]|LL2]),
        close(Outstream).

出力する(Outstream,[]).
出力する(Outstream,[[_|L]|R]) :-
        atomic_list_concat(L,'  ',S),
        writef(Outstream,'%t\n',[S]),
        出力する(Outstream,R).