変数 – Expressive Programming

Filed in processing , 制作応用演習(グラフィカルプログラミング演習) 0 comments

1. 変数

まず、やはり変数(variable)の理解がプログラミング言語の理解の第一段階でしょう。
変数の英語名はvariableといって、「変化する数」という意味です。
非常に一般的な解釈の仕方は、変数とはメモリの中にある箱で、その箱の中に数値が入るという考え方です。
例えば、以下の式は下図のように解釈できます。(intの意味は「4. 変数の型」で説明します)

1
2
3
int a = 1;
int b = 10;
int c = 4;

variable.gif

例えば、変数aの箱には1を入れ、変数bの箱には10を入れ・・・
といった意味になります。
a = 1という式なので、数学で習った式と同じように考えてしまいがちですが、この式はプログラミングの場合、「aの箱に1という値を入れる」という意味です。この時、必ず右の値が左の箱に入ります

それでは、次の式はどうでしょう。

1
2
3
4
5
int a;
int b = 10;
int c = 4;
 
a = b + c;

var_plus.gif

初めに、何も値を入れていない変数aを設定し、その次に変数b、cにはそれぞれ値を入れます。そして変数b、 cの値を箱の中から取り出して足したものを変数aに入れるという式になります。つまり、a = 14ですね。
どうでしょうか?このような形で値を入れ替えていけば、様々な計算が可能になります。

2. 演算子

当然、変数のはこの中に入った値は変えられなければ何もプログラムできません。
そこで、上記の式に使われている”+”のように、計算をするための演算子というものが用意されています。

Processingで使われる演算子

3. ビット(bit)とバイト(byte)

このような形で、どのような数値も入れられる変数なのですが、その仕組みは一体どうなっているのでしょうか?
変数、変数と言っても、要はパソコンのメモリにある一定のスペースを確保し、そこに数値を記憶させるということなのです。メモリは分かりますか?パソコンを買う際に512MBとか1GのRAMなどという表記を見たことがありますよね?これは、パソコンの中に組み込まれている小さなチップです(下の写真)。
55645094pjpeg.jpg
ここで覚えておかなくてはならないことがあります。ビット(bit)とバイト(byte)という言葉です。
似たような言葉なので混同しがちですが、全く違う意味の言葉です。
知っている人もいると思いますが、パソコンという機械は0か1の情報、電気が流れているか流れていないか、という情報しか扱えません。ONとOFFしかないスイッチのようなものです。しかし、パソコンはそのスイッチを大量に持っていて、0か1という情報を瞬時に処理するため、どんな複雑な計算でも出来るのです。その0と1を判断する機構、メモリの最小単位がビットと呼ばれます。
そして、1ビットが8つ集まって1バイトとなります(下図参照)。基本的に変数はこの1バイトを基準にして決められています。

var_byte.gif

1バイトは2の8乗(2x2x2x2x2x2x2x2=256)ですから256通りのパターンがあります。これは数値で言うと0〜255通りの数値が選択できるということです。
ですから、例えばbyte型の変数aを設定した場合、このaには127から-128までの数値しか入れることができません。
どうですか、何となくでもビットとバイトの関係が分かってきましたか?このことは次の項の変数の型を理解するためには必要不可欠なので、よく分からないまま、変数の型を読まない方がいいでしょう。

4. 変数の型

それでは、変数の型を理解しましょう。
先ほどの項からも繋がりますが、変数の型を宣言するというのは、何バイトのスペースをメモリ上に確保するかということなのです。下がそれぞれの変数が何バイトを必要とするかを表わす図表です。
変数はそれぞれの言語によって少しずつ違います。以下はProcessingの変数の表です。
少しややこしいところは、例えばintなどの同じ名前でもC言語などではパソコンの種類によってバイト数が違ったりすることもあります。基本的にはバイト数はそんなに気にする必要はないですが、原理的なことだけは覚えておいて下さい。

分類
型名
サイズ
値の範囲
初期値
整数
byte
1byte
127 〜 -128
0
整数
int 4bytes 2,147,483,647 〜 -2,147,483,648 0
浮動小数点数
float 4bytes 3.40282347E+38 〜 -3.40282347E+38 0.0F
文字
char 2bytes 文字と記号
color 4bytes (0, 0, 0, 0)〜(255, 255, 255, 100) (0, 0, 0, 0)
真偽値
boolean
1bit
trueまたはfalse
false

ここで、例としてchar型とint型を見てみましょう。下図を見て下さい。
var_int.gif

char型は2バイト、int型はその倍の4バイトを使います。このようにして、変数を宣言するとその型によって、メモリ上に確保されるスペースに違いが出てきます。つまり、変数の型を宣言するということは、箱の大きさを決めるということなのです。

5. 変数の使用

それでは、例題をやってみましょう。下の図を見ると、別の場所で同じ変数が使われています。変数の値を色々変えながらこのコードをProcessing上で実行してみてください。
ellipse();は円を描くメソッドです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int a = 10;     //円同士の間隔を設定
int eSize = 2;  //円のサイズを設定
 
size(100, 100);
background(255);
 
ellipse(0, 0, eSize, eSize);  //円(ellipse)を描く
ellipse(a, a, eSize, eSize);
ellipse(2*a, 2*a, eSize, eSize);
ellipse(3*a, 3*a, eSize, eSize);
ellipse(4*a, 4*a, eSize, eSize);
ellipse(5*a, 5*a, eSize, eSize);
ellipse(6*a, 6*a, eSize, eSize);
ellipse(7*a, 7*a, eSize, eSize);
ellipse(8*a, 8*a, eSize, eSize);
ellipse(9*a, 9*a, eSize, eSize);
ellipse(10*a, 10*a, eSize, eSize);
Posted by noguchi   @   21 3月 2007 0 comments

0 Comments

Sorry, comments are closed.

Previous Post
«
Next Post
»
Stroom designed by Credit Cards In conjunction with Web Hosting Reseller , Dream Interpretation Guide , Best Website Hosting.