このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/619
#  [1] 授業単元: プログラミング 
#  [2] 問題文(含コード&リンク): 
#  30個の要素を持つ配列に小数をキーボードから代入し,それらを小さい順にソートし,その結果をモニタに出力するプログラムを作成せよ 
#   

'30個の要素を持つ配列に小数をキーボードから代入し,それらを小さい順にソートし,その結果をモニタに出力する' :-
      '30個の要素を持つ配列に小数をキーボードから代入し'(L1),
      それらを小さい順にソートし(L1,L2),
      その結果をモニタに出力する(L2).

'30個の要素を持つ配列に小数をキーボードから代入し'(L) :-
      findall(X,(for(1,N,30),get_line(Line),atom_to_term(Line,X,_)),L).

それらを小さい順にソートし(L1,L2) :- それらを小さい順にソートし(L1,[],L2).

それらを小さい順にソートし([],L,L) :- !.
それらを小さい順にソートし([V|R],L1,L2) :-
      挿入(V,L1,L3),
      それらを小さい順にソートし(R,L3,L2).

挿入(V,[],[V]) :- !.
挿入(V,[V1|R1],[V,V1|R1]) :- V =< V1,!.
挿入(V,[V1|R1],[V1|R2]) :-
      V > V1,
      挿入(V,R1,R2).

その結果をモニタに出力する([]) :- !.
その結果をモニタに出力する([V|R]) :- write_formatted('%t\n',[V]),その結果をモニタに出力する(R).