このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 133代目 #210 # 【質問テンプレ】 # [1] 授業単元:C言語 # [2] 問題文(含コード&リンク):http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10290.txt # # 名前と点数のデータを持っているリスト構造をソートさせたいのです。 # # (名前) (点数) # 骨川スネ夫 50 # 野比のび太 0 # 出木杉英才 100 # 剛田たけし 20 # 源静香    80 # # のようなデータを予め持っているとして、名前でソートしたい時はあいうえお順に、 # 点数でソートしたい時は0から順に並び替え、画面に出力させたいのですが、 # そもそもあいうえお順でソートさせる方法が分からず、 # 名前と点数を同時に動かす方法も思いつかず、提出期限間近になってしまいました。 # どうかお願いします。 # # //漢字でソートは無理だから漢字名とは別に表示させずにひらがなで名前のデータを入れておくのでしょうか? 点数(骨川スネ夫,50). 点数(野比のび太,0). 点数(出木杉英才,100). 点数(剛田たけし,20). 点数(源静香,80). '名前と点数のデータを持っているリスト構造をソートさせたいのです。 (名前) (点数) 骨川スネ夫 50 野比のび太 0 出木杉英才 100 剛田たけし 20 源静香     80 のようなデータを予め持っているとして、名前でソートしたい時はあいうえお順に、 点数でソートしたい時は0から順に並び替え、画面に出力させたい'(_点数で整列された_名前_点数ならび) :- findall([_名前,点数],点数(_名前,_点数),_名前_点数ならび), '「漢字文字列・点数」を「かな読み・点数」で整列する'(_名前_点数ならび,_点数で整列された_名前_点数ならび). '「漢字文字列・点数」を「かな読み・点数」で整列する'(_漢字文字列_点数ならび,_整列された漢字文字列ならび) :- 'かな読みに変換しながらデータ番号を付加して、さらに整列する。'(1,_漢字文字列_点数ならび,LL2), '付加されたデータ番号により整列された漢字文字列・点数ならびを得る'(LL2,_漢字文字列_点数ならび,_整列された漢字文字列ならび). 'かな読みに変換しながらデータ番号を付加して、さらに整列する。'(N,_漢字文字列_点数ならび,LL2) :- かな読みに変換しながらデータ番号を付加して(N,_漢字文字列_点数ならび,LL1), さらに整列する(LL1,LL2). かな読みに変換しながらデータ番号を付加して(_,[],[]) :- !. かな読みに変換しながらデータ番号を付加して(N,_漢字文字列_点数ならび,_かなに変換された文字列_点数ならび) :- 全ての漢字文字列をかな読みに変換しながらデータ番号を付加して行く(N,_漢字文字列_点数ならび,_かなに変換された文字列_点数ならび). さらに整列する(LL1,LL2) :- sort(LL1,LL2). 全ての漢字文字列をかな読みに変換しながらデータ番号を付加して行く(N,[[_漢字文字列,_点数]|R1],[[_かなに変換された文字列,_点数,N]|R2]) :- 漢字文字列を可能な限りかな読み文字列に変換する(_漢字文字列,_かなに変換された文字列), succ(N,N2), かな読みに変換しながらデータ番号を付加して(N2,R1,R2). '付加されたデータ番号により整列された漢字文字列・点数ならびを得る'([],_,[]) :- !. '付加されたデータ番号により整列された漢字文字列・点数ならびを得る'([[_,_,N]|R1],_漢字文字列_点数ならび,[L|R2]) :- nth1(N,_漢字文字列_点数ならび,L), '付加されたデータ番号により整列された漢字文字列・点数ならびを得る'(R1,_漢字文字列_点数ならび,R2). 漢字文字列を可能な限りかな読み文字列に変換する(_漢字文字列,_かなに変換された文字列) :- 漢字文字列をかな読みならびに変換する(_漢字文字列,_かな読みならび), atomic_list_concat(_かな読みならび,_かなに変換された文字列). 漢字文字列をかな読みならびに変換する(_漢字文字列,_かな読みならび) :- 先頭からかな読みに変換して行く(_漢字文字列,_かな読みならび),!. 漢字文字列をかな読みならびに変換する(_,[]). 先頭からかな読みに変換して行く(_漢字文字列,[_かな読み|R2]) :- atom_concat(A,B,_漢字文字列), かな読み(A,_かな読み), 漢字文字列をかな読みならびに変換する(B,R2). かな読み(骨川,ほねかわ). かな読み(スネ夫,すねお). かな読み(野比,のび). かな読み(のび太,のびた). かな読み(出木杉,できすぎ). かな読み(英才,ひでたけ). かな読み(剛田,ごうだ). かな読み(たけし,たけし). かな読み(源,みなもと). かな読み(静香,しずか).