このディレクトリの索引

http://ime.nu/pc12.ch.net/test/read.cgi/tech/1247438792/887 
# [1] 授業単元:ic論 
# [2] 問題文 
# キーボードから入力した二つの単語を辞書的順序に表示するプログラムを作れ。 
# 条件は 
# ・関数の呼び出しを使う(main関数とstrcomp関数を使う) 
# ・ポインタを使う 
# ・配列を使う 
# 
# ・例は 
# 「2つの単語を入力してください。 
#  red,green 
# 
# 

キーボードから入力した二つの単語を辞書的順序に表示する :-
        キーボードから入力した二つの単語を(_単語ならび),
        辞書的順序整列(_単語ならび,_辞書的順序に並べかえた単語ならび),
        表示する(_辞書的順序に並べかえた単語ならび).

キーボードから入力した二つの単語を([_単語_1,_単語_2]) :-
        write('二つの単語をカンマ区切りで入力してください : '),
        readln([_単語_1,_単語_2|_]).

辞書順整列([],[]) :- !.
辞書順整列([_単語],[_単語]) :- !.
辞書順整列([_基単語|_単語ならび],_辞書順に整列された単語ならび) :-
        atom_chars(_基単語,_文字ならび2),
        辞書順整列分割(_単語ならび,_文字ならび2,_より小さい単語ならび,_より大きい単語ならび),
        辞書順整列(_より小さい単語ならび,_辞書順に整列された単語ならび1),
        辞書順整列(_より大きい単語ならび,_辞書順に整列された単語ならび1),
        append(_辞書順に整列された単語ならび1,[_基単語|_辞書順に整列された単語ならび2],_辞書順に整列された単語ならび).

辞書順文字ならび比較([],[],=).
辞書順文字ならび比較([A|R1],[A|R2],_判定) :-
        辞書順文字ならび比較(R1,R2,_判定),!.
辞書順文字ならび比較([A|R1],[B|R2],<) :-
        \+(A==B),
        to_upper(B,A),!.
辞書順文字ならび比較([A|R1],[B|R2],>) :-
        \+(A==B),
        to_upper(A,B),!.
辞書順文字ならび比較([A|R1],[B|R2],>) :-
        A @> B,!.
辞書順文字ならび比較([A|R1],[B|R2],<) :-
        A @< B,!.

辞書順整列分割([],_,[],[]) :- !.
辞書順整列分割([_単語|R1],_文字ならび2,_より小さい単語ならび,_より大きい単語ならび) :-
        atom_chars(_単語,_文字ならび1),
        辞書順文字ならび比較(_文字ならび1,_文字ならび2,>),
        辞書順整列分割(R1,_文字ならび2,_より小さい単語ならび,[_単語|_より大きい単語ならび]),!.
辞書順整列分割([_単語|R1],_文字ならび2,_より小さい単語ならび,_より大きい単語ならび) :-
        辞書順整列分割(R1,_文字ならび2,[_単語|_より小さい単語ならび],_より大きい単語ならび).

表示する(_辞書的順序に並べかえた単語ならび) :-
        append(_,[_単語|R],_辞書的順序に並べかえた単語ならび),
        writef('%t\n',[_単語]),
        R = [].