このディレクトリの索引

#  宿題じゃないんだけど、 
#  input.txtの中身が 
#  北アイルランド 
#  あいうえお 
#  aaa 
#  だったとして 
#  → 
#  aaa 
#  あいうえお 
#  北アイルランド 
#  とエクセルの昇順と同じように並べ替えて 
#  output.txtとして保存するプログラムを作成する 
#  
#  C言語でお願いします。 

'input.txtの中身が
北アイルランド
あいうえお
aaa
だったとして
→
aaa
あいうえお
北アイルランド
とエクセルの昇順と同じように並べ替えて
output.txtとして保存するプログラム' :-
        'input.txtの中身が'(_行ならび),
        エクセルの昇順と同じように並べ替えて(_行ならび,_整列済み行ならび),
        'output.txtとして保存する'(_整列済み行ならび).

'input.txtの中身が'(_行ならび) :-
        get_lines('input.txt',_行ならび).

エクセルの昇順と同じように並べ替えて(_行ならび,_整列済み行ならび) :-
        整列(_行ならび,_整列済み行ならび).

'output.txtとして保存する'(_整列済み行ならび) :-
        open('output.txt',write,Outstream),
        'output.txtとして保存する'(Outstream,_整列済み行ならび),
        close(Outstream).

'output.txtとして保存する'(_,[]).
'output.txtとして保存する'(Outstream,[_行|_残り行ならび]) :-
        writef(Outstream,'%t\n',[_行]),
        'output.txtとして保存する'(Outstream,_残り行ならび).

整列([],[]).
整列([_軸要素|_残りならび],_整列したならび) :-
        分類(_軸要素,_残りならび,_軸要素に等しいか小さい要素ならび,_軸要素より大きい要素ならび),
        整列(_軸要素に等しいか小さい要素ならび,_整列した軸要素に等しいか小さい要素ならび),
        整列(_軸要素より大きい要素ならび,_整列した軸要素より大きい要素ならび),
        append(_整列した軸要素に等しいか小さい要素ならび,[_軸要素|_整列した軸要素に等しいか小さい要素ならび],_整列したならび).