このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1286978599/715
#
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク)
# 
# 問題1
# 整数型配列に格納された5個の整数{8,5,12,7,9}を大きい数の順番(降順)に並べ替えて表示するプログラムを作れ。
# 並び替えの方法は、まず全体の最大値を選び、つぎにその最大値である数値を除いた中の最大値を求め…という方法(通称、馬鹿ソート)を使うこと。
# [ヒント]2個の配列変数(1つは元データ用、1つは並び替えたデータ用)を使うと容易
# 問題2
# 問題1について「降順」を「昇順」に変えたプログラムを作成せよ。
# 結果は5、7、8、9、12 

'整数型配列に格納された5個の整数{8,5,12,7,9}を大きい数の順番(降順)に並べ替えて表示する'([],[]) :- !.
'整数型配列に格納された5個の整数{8,5,12,7,9}を大きい数の順番(降順)に並べ替えて表示する'(L,[Max|R]) :-
        最大値を削除(L,Max,_残りならび),
        '整数型配列に格納された5個の整数{8,5,12,7,9}を大きい数の順番(降順)に並べ替えて表示する'(_残りならび,R).

最大値を削除(L,_最大値,_残りならび) :-
        append(L0,[_最大値|R],L),
        すべてAより小さい(L0,_最大値),
        すべてAより小さい(R,_最大値),
        append(L0,R,_残りならび),!.
最大値を削除(L,_,L).

すべてAより小さい([],_) :- !.
すべてAより小さい([B|R],A) :-
        B =< A,
        すべてAより小さい(R,A).