このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 132代目 #784 # [1] 授業単元:プログラミング演習 # [2] 問題文(含コード&リンク): 構造体を身長順に並べ変えなさい。身長が同じ場合は番号が若い順に並べなさい。 #   作ったけどうまくいかなかったのがこれです。 #   http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10249.txt # :- dynamic. '番号・氏名・身長'([[ 3,'一郎',180.0 ], [ 5,'二郎',175.5 ],[ 1,'三郎',180.0 ], [ 4,'四郎',175.5 ],[ 2,'五郎',169.9 ]]). '構造体を身長順に並べ変えなさい。身長が同じ場合は番号が若い順に並べなさい' :- retract('番号・氏名・身長'(L)), '身長順に並べ変える。ただし身長が同じ場合は番号が小さい順'(L,[],L2), assertz('番号・氏名・身長'(L2)). '身長順に並べ変える。ただし身長が同じ場合は番号が小さい順'([],L1,L). '身長順に並べ変える。ただし身長が同じ場合は番号が小さい順'([U|R1],L1,L) :- '身長順に挿入ただし同じ場合は番号の小さい順'(U,L1,L2), '身長順に並べ変える。ただし身長が同じ場合は番号が小さい順'(R1,L2,L). 身長順に挿入ただし同じ場合は番号の小さい順(U,[U]) :- !. 身長順に挿入ただし同じ場合は番号の小さい順([_番号,_氏名,_身長],[[_番号1,_氏名1,_身長1]|R1],[[_番号,_氏名,_身長],[_番号1,_氏名1,_身長1]|R1]) :- _身長 > _身長1,!. 身長順に挿入ただし同じ場合は番号の小さい順([_番号,_氏名,_身長],[[_番号1,_氏名1,_身長1]|R1],[[_番号,_氏名,_身長],[_番号1,_氏名1,_身長1]|R1]) :- _身長 = _身長1, _番号 < _番号1,!. 身長順に挿入ただし同じ場合は番号の小さい順([_番号,_氏名,_身長],[U|R1],[U|R2]) :- 身長順に挿入ただし同じ場合は番号の小さい順([_番号,_氏名,_身長],R1,R2).