このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 135代目 #426 # [1] 授業単元:プログラム # [2] 問題文(含コード&リンク):sample.txtを読み込み、データを身長の小さい人から順番に並び変えてans.txtに出力せよ。 # # sample.txtの中身はこんな感じです。 # 12 ヤマダタロウ 56.7 165.1 # 43 タナカハナコ 44.3 156.8 # 54 スズキイチロウ 70.3 179.2 # 左から番号、名前、体重、身長です # %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 鍵項目位置(身長,[_,_,_,_身長],[_身長]). % 鍵項目位置(体重,[_,_,_体重,_],[_体重]). % 鍵項目位置('身長・体重',[_,_,_体重,_身長],[_身長,_体重]). '鍵項目順に整列(昇順)の一般解'(Ls,_鍵名,_整列されたLs) :- 'ならび要素の先頭に鍵項目を付加して、整列し、'(Ls,_鍵名,_整列された先頭に鍵名が付いたLs), 'その後付加した鍵項目を除去する'(_整列された先頭に鍵名が付いたLs,_鍵名,_整列されたLs). 'ならび要素の先頭に鍵項目を付加して、整列し、'(Ls,_鍵名,_整列された先頭に鍵名が付いたLs) :- 'ならび要素の先頭に鍵項目を付加して、'(Ls,_鍵名,_先頭に鍵名が付いたLs), '整列し、'(_先頭に鍵名が付いたLs,_整列された先頭に鍵名が付いたLs). 'ならび要素の先頭に鍵項目を付加して、'(Ls,_鍵名,_先頭に鍵名が付いたLs) :- findall(L2,( 先頭に鍵項目を付加して(Ls,_鍵名,L2)),_先頭に鍵名が付いたLs). 先頭に鍵項目を付加して(Ls,_鍵名,L2) :- member(L1,Ls), '鍵項目位置述語によって鍵項目を取り出し、先頭に鍵項目を付加する'(_鍵名,L1,L2). '整列し、'(Ls2,Ls3) :- msort(Ls2,Ls3). 'その後付加した鍵項目を除去する'(_整列された先頭に鍵名が付いたLs,_鍵名,_整列されたLs) :- findall(L4,( 先頭の鍵項目を除去する(_整列された先頭に鍵名が付いたLs,_鍵名,L4)),_整列されたLs). 先頭の鍵項目を除去する(_整列された先頭に鍵名が付いたLs,_鍵名,L4) :- member(L3,_整列された先頭に鍵名が付いたLs), '鍵項目位置述語によって鍵項目を取り出し、先頭の鍵項目を除去する'(_鍵名,L3,L4). '鍵項目位置述語によって鍵項目を取り出し、先頭に鍵項目を付加する'(_鍵名,L1,L2) :- 鍵項目位置(_鍵名,L1,L0), append(L0,L1,L2). '鍵項目位置述語によって鍵項目を取り出し、先頭の鍵項目を除去する'(_鍵名,L1,L2) :- 鍵項目位置(_鍵名,L2,L0), append(L0,L2,L1).