このディレクトリの索引

# C/C++の宿題片付けます 132代目 #354 # [1] 授業単元: プログラミング実習 # [2] 問題文(含コード&リンク): # (1)http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10174.txt # 次のように各0番目の列要素にテストの点数を初期設定にしてある大きさ # 10×2の配列がある。この配列の1番目の列要素に点数の高い順から順位を格納するプログラムを作成しなさい。 # #   [0] [1] # [0] 67 # [1] 43 # [2] 56 # [3] 97 # [4] 30 # [5] 88 # [6] 76 # [7] 55 # [8] 66 # [9] 78 :- set_prolog_flag(answer_write_options,[quoted(true), portray(true), max_depth(10000000), attributes(portray)]). 配列([[67,_],[43,_],[56,_],[97,_],[30,_],[88,_],[76,_],[55,_],[66,_],[78,_]]). 配列の1番目の列要素に点数の高い順から順位を格納する(L) :- 配列(L), 順位付け(L,[],_順位ならび), 第二要素に順位をセット(L,_順位ならび). 順位付け([],X,X). 順位付け([[A,_]|R1],Y1,X) :- 挿入(A,Y1,Y2), 順位付け(R1,Y2,X). 挿入(A,[],[A]). 挿入(A,[B|R],[A,B|R]) :- A @> B,!. 挿入(A,[B|R1],[B|R2]) :- A @=< B, 挿入(A,R1,R2). 第二要素に順位をセット([],_). 第二要素に順位をセット([[A,V]|R],_順位ならび) :- nth1(V,_順位ならび,A), 第二要素に順位をセット(R,_順位ならび).