このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 131代目 #836 # [1] 授業単元: プログラミング実習 # [2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10095.txt # 文字列の配列を辞書順(アルファベット順)に並べ替えるプログラムを作成せよ 辞書順整列([_基準語|R1],X) :- atom_codes(_基準語,_基準語コードならび), 大小関係によって分類(R1,_基準語コードならび,_小さいグループ,_大きいグループ), 辞書順整列(_大きいグループ,_整列された大きいグループ), 辞書順整列(_小さいグループ,_整列された小さいグループ), append(_整列された小さいグループ,[_基準語|_整列された大きいグループ],X) . 辞書順整列([],[]). 大小関係によって分類([],_,[],[]). 大小関係によって分類([_語|R1],_基準語コードならび,[_語|_小さいグループ],_大きいグループ) :- atom_codes(_語,_語コードならび), 辞書順に比較基準語より小さいか等しい(_語コードならび,_基準語コードならび), 大小関係によって分類(R1,_基準語コードならび,_小さいグループ,_大きいグループ),!. 大小関係によって分類([_語|R1],_基準語コードならび,_小さいグループ,[_語|_大きいグループ]) :- 大小関係によって分類(R1,_基準値,_小さいグループ,_大きいグループ) . 辞書順に比較して基準語より小さいか等しい([],[]) :- !. 辞書順に比較して基準語より小さいか等しい([],[_|_]) :- !. 辞書順に比較して基準語より小さいか等しい([A|R1],[A|R2]) :- 辞書順に比較して基準語より小さいか等しい(R1,R2),!. 辞書順に比較して基準語より小さいか等しい([A|_],[B|_]) :- A >= 97, A =< 122, B >= 97, B =< 122,!, A < B. 辞書順に比較して基準語より小さいか等しい([A|_],[B|_]) :- A >= 97, A =< 122, B >= 65, B =< 90,!, A1 is A - 32, A1 < B. 辞書順に比較して基準語より小さいか等しい([A|_],[B|_]) :- A >= 65, A =< 90, B >= 97, B =< 122,!, B1 is B - 32, A < B1. 辞書順に比較して基準語より小さいか等しい([A|_],[B|_]) :- A < B,!.