ページ 11

辞書順

Posted: 2009年6月12日(金) 11:30
by 研修生
C言語の記号における辞書順ってどういうことでしょうか?
よく参考書などの目次などで記号の項目がありずらっと並んでいますがこれは辞書順なのでしょうか?
ネットで調べたら辞書順=アルファベット順・五十音順とか書いてあるんですが・・
統一性がなくてさっぱりわかりません。

,(カンマ)
\n(改行)
"(ダブルクォーテーション)
\(円記号)
EOF

これを辞書順に並べるとどうなりますか?
くだらない質問で申し訳ないですが教えて下さい。

Re:辞書順

Posted: 2009年6月12日(金) 12:00
by やそ
ttp://www9.plala.or.jp/sgwr-t/c_sub/ascii.html

EOFは「EOF 値」とかで調べられませんか?

ネットでいうところの辞書順はまさしく本の辞書をイメージしているから
五十音順ということになるんじゃないのかな?

Re:辞書順

Posted: 2009年6月12日(金) 12:34
by たかぎ
辞書順というのは辞書の編集者が勝手に決めることです。
今回の場合も、設計者が定義すればよいのではないでしょうか?

ちなみにC++の場合、辞書順の比較にはstd::lexicographical_compareを使います。
その場合でも、具体的な比較方法はプログラマが指定しなければなりません(デフォルトでは値を単純比較するだけです)。

Re:辞書順

Posted: 2009年6月12日(金) 13:10
by 研修生
一種のコンピューター用語だから調べるべきとか言われたのですが
どこか載ってるサイトないかな

Re:辞書順

Posted: 2009年6月12日(金) 13:40
by たかぎ
> 一種のコンピューター用語だから調べるべきとか言われたのですが

コンピュータ用語というよりは数学の用語です。
http://ja.wikipedia.org/wiki/%E8%BE%9E% ... 6%E5%BA%8F

一般的な意味での辞書順にするには、文字だけを比べたのでは不十分です。
単語にならなければ漢字の読みが確定しませんので。
日本語の辞書は、文字の順序ではなく、読みの順序になっていることに要注意です。
(五十音順の話が出ているので、当然日本語を想定しているのですよね?)

Re:辞書順

Posted: 2009年6月12日(金) 13:46
by 研修生
五十音順というのはネットでちらっとみたらそうかいてあっただけです。
なんかASCⅡコード表を参考にとかもネットにあったのでバラバラですね・・

とりあえず
\n
"
,
\
EOFを辞書順に並べ替えた順番が知りたいだけなんだけどさっぱりわからなく・・

Re:辞書順

Posted: 2009年6月12日(金) 14:53
by やそ
EOFならstdio.hの中身を覗いてみるといいんじゃないかな??

,(カンマ)
\n(改行)
"(ダブルクォーテーション)
\(円記号)

はASCIIコード表にあったよね?
改行は別の表記になっていると思いますが。

Re:辞書順

Posted: 2009年6月12日(金) 15:43
by 研修生
何か数学用語でもあるとのことだからたかぎさんの意見のことかな。
直積集合とかいわれてもさっぱりわからないんですが並び替えたらどうなるんですかね。。

Re:辞書順

Posted: 2009年6月12日(金) 16:00
by たかぎ
> 並び替えたらどうなるんですかね。。

どうなるかは辞書式順序の定義次第で決まります。
ですので、まずは仕様を定めることが重要なのです。

もっと具体的にいうと、'あ'と'A'ではどちらが先かといわれても、それを決めるのは仕様を作る人が決めることなのです。記号についても同じことがいえます。

Re:辞書順

Posted: 2009年6月12日(金) 16:15
by toyo
辞書順の決まりはないのでいくら調べてもわかりませんよ
とりあえず記号の辞書順はASCIIコード順とすると自分で決めたらいいのではないでしょうか

Re:辞書順

Posted: 2009年6月12日(金) 16:20
by 研修生
なんか変な考えだったようです。
<
Flag   cの値  dの値  動作
TRUE   "     "      ○
FALSE  "     "   △
TRUE   ,    "      □
FALSE  ,     "      X
この表を
Flagの値の集合、cの値の集合、dの値の集合で直積集合の順序の並び替えをしたらどうなりますか?

Re:辞書順

Posted: 2009年6月12日(金) 16:54
by 研修生
すいません。自己解決しました。ありがとうございました。