このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/648
#  [1] 授業単元:Cプログラミング 
#  [2] 問題文(含コード&リンク): 
#  下記のアップロードされたファイル(数字の羅列)を読み込み、並び替え方法(昇順/降順)で指定されたファイル(out.txt) 
#  へ出力するプログラムを作成せよ 
#  http://ime.nu/www1.axfc.net/uploader/He/so/280605 
#  以下実行結果 
#   
#  並び替え方法をしていしてください(1:昇順、2:降順) 
#  1 
#   
#  並び替えたファイルへ出力しました。 
#   
#  cat out.txt ←catコマンドで中身確認 
#  1 
#  3 
#  3 
#  3 
#  

'アップロードされたファイル(数字の羅列)を読み込み、並び替え方法(昇順/降順)で指定されたファイル(out.txt)へ出力する'(_アップロードされたファイル名) :-
        'アップロードされたファイル(数字の羅列)を読み込み'(_アップロードされたファイル名,_行ならび),
        '並び替え方法(昇順/降順)で指定されたファイル(out.txt)へ出力する'(_行ならび).

'アップロードされたファイル(数字の羅列)を読み込み'(_行ならび) :-
        get_lines('input.txt',_行ならび).

'並び替え方法(昇順/降順)で指定されたファイル(out.txt)へ出力する'(_行ならび) :-
        '並び替え方法を指定してください(1:昇順、2:降順)'(_並び替え方法),
        並び替え(_並び替え方法,_行ならび,_並び替えた行ならび),
        '指定されたファイル(out.txt)へ出力する'(_並び替えた行ならび).

'並び替え方法を指定してください(1:昇順、2:降順)'(_並び替え方法) :-
        write('並び替え方法を指定してください(1:昇順、2:降順)'),
        整数を得る('並び替え方法を指定してください(1:昇順、2:降順)',between(1,2,N),N),
        並び替え方法(N,_並び替え方法).

並び替え方法(1,昇順).
並び替え方法(2,降順).

並び替え(昇順,_行ならび,_並び替えた行ならび) :-
        整列(_行ならび,_並び替えた行ならび).
並び替え(降順,_行ならび,_並び替えた行ならび) :-
        整列(_行ならび,_並び替えた昇順行ならび),
        reverse(_並び替えた昇順行ならび,_並び替えた行ならび).

'指定されたファイル(out.txt)へ出力する'(_並び替えた行ならび) :-
        put_lines('out.txt',_並び替えた行ならび).

put_lines(_ファイル名,_行ならび) :-
        open(_ファイル名,write,Outstream),
        forall(nth1(_,_行ならび,_行),writef(Outstream,'%t\n',[_行])),
        close(Outstream).