コンピュータプログラミングで、データを一時的に記憶しておく領域。
- 変数とは、電卓のメモリーのようなもの。
- 変数には型がある。
- 変数は最初に使う前に宣言をしなくてはならない。
- 「=」を使って、変数に代入することができる。
- printf関数を使って、変数の内容を知ることができる。
- 「+」等を使って演算することができる。計算方法は四則演算に基づいている。
- 8進数、10進数、16進数等で数値を表現できる。
- 文字コード調べなくても「'」で囲んで直接文字を書くことができる。
変数は定数に似ていますが、プログラム実行中に値を変化させることができます。
また、変数には型があり、変数に入れるデータに応じて型を指定しなければなりません。
整数を入れる場合には[INTEGER型]
実数を入れる場合には[REAL型]
文字列を入れる場合には[STRING型]
と 決まっています。
[STRING型]の変数に整数を入れるとエラーになります。
変数をメインプログラムで使用する場合には 変数宣言(VAR宣言)を行います。
VAR の 後に改行を入れて 宣言したい変数を1行ずつ書いていきます。
変数の後にコロン(:)をいれて続いて型の名前を書きます。
最後にセミコロン(;)をつけることも忘れないでください。
同じ型の変数を複数宣言するときにはカンマ(,)で区切ってまとめることもできます。
(例)
VAR
n:INTEGER;
x,y,area:REAL;
name:STRING;
変数の型は 宣言時に決定されます。
一度決定した変数の型をあとで変更することはできません。
変数の名前は 識別子のルールに従って自由につけることができます。
一目でわかるような名前をつけると、プログラムが読みやすくなります。
あまり短い名前だとプログラムの見通しを悪くするだけでなく、タイプミスの原因にもなります。
特に Iと1 Oと0 UとV は 間違えやすいので、なるべく使わない方がよいでしょう。
変数は代入する値に応じてプログラムの最初に型を宣言します。
変数の型には 以下の種類があります。
INTEGER*1型 | 整数を格納するための型 範囲(-32768 ~ +32767) |
LONGINT型 | 大きな整数を格納するための型 (-2147483648 ~ +2147483647) |
REAL*2型 | 実数を格納するための型(1.9E-4951〜1.1E4932) |
STRING型 | 文字列を格納するための型(255文字まで扱える) |
BOOLEAN型 | 論理演算の結果を格納するための型。(TRUE FALSE のいずれか) |
CHAR型 | ASCIIのキャラクターコードを格納するための型。 |
HANDLE型 | 図形やレイヤなどのアドレスを格納するための型。 |
ARRAY型 | 配列変数を格納するための型。 |
VECTOR型 | X,Y,Zの位置を格納するための型。 |
VectorScriptでは C言語のように独自の型や構造体を定義することはできません。
変数に値を代入するには、変数に続いてコロンとイコール(:=)を書き、データ(値、変数、計算式、関数)を書きます。
例
x:=50;
x:=y;
x:=y*20+75;
x:=Sqrt(81);
(悪い例)
VAR
i:INTEGER;
s:STRING
b:BOOLEAN
BEGIN
i:='Hello';{INTEGER型に文字列を代入している}
s:=100;{STRING型に整数を代入している}
b:=5;{BOOLEAN型に整数を代入している}
END;
型の範囲を超える値を代入するとオーバーフローになります。
(悪い例)
VAR
a:INTEGER;
BEGIN
a:=1000000;{INTEGER型の範囲を超えている}
END;
文字列の扱い方
文字列はシングルクォーテーション(')で囲み、最大255文字まで表現できます。
文字列の中に(')を含みたいときは2つの(')を書きます。
(例)
「Bill's House」を文字列で表現するとき
'Bill''s House'
ひとつの変数に複数の値を格納したいときに使います。
配列変数は以下のように宣言します。
VAR
変数名:ARRAY[最小値..最大値]OF 変数の型;
(例)
VAR
x:ARRAY[1..100]OF INTEGER;
y:ARRAY[20..80]OF REAL;
宣言した配列変数をプログラムの中で使うときには、変数の後にカギ括弧([ ])でくくったインデックス値を書きます。
インデックス値は宣言したときの最小値と最大値の範囲を超えないように注意してください。
変数名[インデックス値]
x[20]:=100;
y:=x[30];
2次元配列は以下のように宣言します。
VAR
変数名:ARRAY[最小値..最大値,大小値..最大値]OF 変数の型;