日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年2月17日火曜日

変数とはなにか (9):

「変数」という言葉自体を調べてみた。


変数(数学)

通常は定数に対する言葉であると解され、値が変化するものであるとみなされる。正確に述べれば、変数には、それが現れる文脈ごとに必ず、その変数の変域あるいは定義域などと呼ばれる、変数が値としてとりうるもの(その変数への代入が許されるもの)の範囲を示す集合が決まっているということである。

このような見方が正当なのかどうかはわからないが、上記の数学的意味での「変数」の説明を、プログラミングにおける「変数」にも当てはめて考えてみた。

Mayaで一番広範囲な定義域は、

整数(int)
浮動小数点数(float)
文字列(string)

の3種類となる。

ここで気がついたことだが、
「配列」、「ベクトル(浮動小数点数3つ)」、「行列」=(イコール)「変数」ではない。

たしかに「配列型変数」なので変数の一種だが、「変数」の二文字だけで表現できるプリミティブな意味での「変数」ではない。

いままでは、「変数」も「配列」も「ベクトル」も「行列」もほぼ同一レベルの情報として記憶しようとしていたので、なんとなく混乱している感じがあったが、これで整理ができた。

(読んでいる人は何を当たり前のことを小難しく考えてるんだとあきれてしまうかもしれないが。。。)

自分にとってこれは重要だ。
:(プリミティブな意味での)「変数」は「整数、浮動小数点数、文字列」の定義域のうちどれかになる。

変数において一番最初に集中して頭にたたき込んでおくべき事は、
「変数」「配列」「ベクトル」
といったことではなく、

「変数」は値が一つだけで、必ず「整数、浮動小数点数、文字列」のどれかになる

ということだと思う。

「配列」「ベクトル」というのはその次にくる概念だ。
学ぶべき情報としての重要性では、これは、もっと後になる。


自分がいいたいことをまとめられたのか、どうかわからないがとりあえず、
ここに書き留めておいてまた後ほどみなおしたい。


プログラミングにおける変数とは
変数(wiki):
プログラムのソースコードにおいて、扱われるデータを一定期間記憶し必要なときに利用できるようにするために、データに固有の名前を与えたものである。

ちなみに数学における変数は
数学、特に解析学において変数とは、未知あるいは不定の数・対象を表す文字記号のことである。


コンピュータにおける「変数」は、変数の名前自体は「不定の数、文字」をあらわす記号である。
その中にあるデータが代入されると、ここで数学の変数の意味である「未知あるいは不定の数」という定義とはことなり、どちらかというと定数のようになる。
しかしながら、同じ変数にさらに異なる値のデータを代入することができる。
それにより変数内の値は変動すると言える。

プログラミングにおける変数は、
1)ある数値または、文字を表しており、それが最後まで変化しない。
2)ある数値または、文字を表しており、それが途中で変化する。
の二種類のパターンがある。
「変数」と呼ばれるからといって、かならずしも「変化」するわけではない。

これがプログラム初心者に混乱を引き起こしているように思う。

変化しない変数は、プログラムの中で最初に値が代入されたら、それがいじられることなく、
必要なだけ何度でもそのプログラム内で使われる。

変化する変数はプログラミングの中で、最初に値が代入されてから、
後ほど、状況に応じて新たな値が代入される。
それは小さなサイクルの中で頻繁に上書きされ続けることもある。
例)for next 文 で、i=i+1,if文で、if a<10

0 件のコメント:

コメントを投稿