四則演算
タイトルに四則演算と書きましたが、加算,減算,乗算,除算をします。
これらに使用する演算子は普段から馴染み深いのですぐ使えることでしょう…。
加算は「+」,減算は「-」,乗算(×のこと)は「*」,除算(÷のこと)は「/」。これらも半角文字で。
ひとつ気をつけると言うか覚えておくことは、通常の計算と違い右辺を左辺に代入します。
ソレでこの章から変数と呼ばれるものが出てきます。
中学時代にグラフのところで「y=x+1」とか習いましたよね?
ここの yやxが変数です。
xに5が入っているとき、yは6になります。
変数には半角で59文字までなら自由に名前を付けることができます。
ただし命令などで使われている名前(予約語)は使えません。
「mes」「stop」という変数は作れないと言うことです。
この章では計算に入る前に、計算結果を入れておく箱(変数)として用意します。
	w = 2 + 8
	x = 5 - 2
	y = 3 * 4
	z = 6 / 3
あと除算の余りを求める「¥」というものもあります。 例えば、3¥2とすれば、答えである余りは1となります。 プログラムでは「=」は「同じ」という意味ではなく「代入」なので、 「a=a+1」という式は「同じ」という考え方だと混乱してしまいますが、間違いではないのです。 「aとaに1足したもの」が同じ値になるものなんて存在しませんよね? 「aに1足したものを新しくaに代入する」と覚えてください。 尚、「同じ」を意味する演算子は「==」となるのですが、 HSPでは特別に「=」と「==」を分けて書かずに「=」を書けば良いとされています。 こう書くとややこしいですが、 「同じ」かを判定する評価でも、「代入」を行う時でも「=」を使えば 使われる式の用途に応じて等価判断・代入処理を自動的に判別してくれるとだけ考えればOKです。 それではやってみましょう。 計算結果を画面に出すために「mes」を使っています。
	mes 1 + 2 + 3
	stop
ウィンドウ内に6と表示されましたね? 次に変数を使ってみましょう。
	x = 10
	mes x
	stop
変数も普通の数値のように扱えます。 もちろん変数と数値の加算等も可能です。
	x = 10
	y = x + 5
	mes y
	stop
乗算や除算にはちょっと注意が必要です。 通常の計算では優先順位と言うものがあり、加算・減算よりも乗算・除算が先に演算されます。 HSPの場合、左から順番に計算されるので、下記の様な計算では思った答えが返って来ません。
	a= 10 + 5 * 2
	mes a
	stop
回避する為には式の順序変えてしまうか括弧を使います。
	a= 5 * 2 + 10
	mes a
	stop
	a= 10 + (5 * 2)
	mes a
	stop
通常の計算でもそうですが、「0を何かで割る」はできても「何かを0で割る」ことは出来ません。 「10を0等分しましょう」…わけがわかりませんね…。 もしこんな0で割る計算をHSPでするとエラーとなる。 余りを求める「\」でも乗算計算をしますのでエラーになりますよ! このぐらいの長さのスクリプトなら全然問題ないのですが、 長くなってくると「この命令では何をしているのか」ということになってきます。 そこでコメントを付けておくとあとで見た時すぐ理解できます。 コメントは「;」(セミコロン)を使います。 セミコロンよりあとはその行すべてコメントとなります。
	x=10 ; xに10を代入する
	mes x ; 変数xの中身をウィンドウ内に表示
	stop ; プログラムを中断する
上記の様に使います。 覚えたての命令などはどんどんコメントを入れて馴染んでいきましょう。 随分後の講座にHSP2.6から出現したコメントの書き方が 「;」以外に2つ紹介されてますがソコに辿り着くまではコレだけで行きましょう。 所詮コメントなので書き方が違うと言うことだけです。 時には見やすくする為に1行に2つ以上の処理を書くこともできます。
	x = 10 : y = x + 5 ; 2つ以上の処理をしています
	mes y
	stop
上記の様に「:」(コロン)を挟めば3つでも5つでも複数個同時に書くことができるようになりますが、 行数は減っても実行ファイルにした時のサイズに違いはなく、 スクリプトも見にくくなるだけなので多くを詰め込むのはどうかと思いますよ。 覚えなくて構いませんが、複数個同時に書くことをマルチステートメントと呼びます。 スペースはタブと同じく実行時に無視されますので幾つ入れても問題ありません。 ただし全角スペースは空白としてではなく見えない文字としてエラーとなってしまうので、 今までに書いたスクリプトのように半角スペースまたはTABスペースを挿入してください。 次章はスクリプトに目印をつけスクリプトの流れを変更します。