HSP sun 無料WINDOWSプログラミングソフト

HSP HSPプログラミング講座 [4]

○ さまざまな計算をする

難しい言葉だと「演算」(えんざん)です。算数の+(足し算)、−(引き算)、×(掛け算)、÷(割り算)です。

	mes 1+1

	mes 10-5

	mes 10*10

	mes 10/5

足し算と引き算は半角文字の「+」と「-」を使います。日本語モード(ATOKとかMs IMEとかが有効)なっている時の全角文字ではだめです。そして、掛け算と割り算は半角文字の「*」(アスタリスク)と「/」(スラッシュ)を使います。下は計算式が分かりやすくさせてみたソースです。

	mes "1+1 = "+(1+1)+""

	mes "10−5 = "+(10-5)+""

	mes "10×10 = "+(10*10)+""

	mes "10÷5 = "+(10/5)+""

ついでに、割り算の余りを計算してみましょう。半角文字の「\」(円マーク)を使います。

	mes 5\2

	mes "5÷2 = "+(5/2)+"、余り"+(5\2)+""

いやいや、上の「5÷2」の計算は、小数点以下を切り捨てないで「2.5」という答えを出したいのよ〜・・・、と思う人がいるでしょうか。

	mes 5.0/2

	mes "5÷2 = "+(5.0/2)+""

これで小数点付きの答えとなります。計算式が小数点の数値であればいいのです。ところが、HSPで小数点の計算を行うにはちょと注意が必要です。下を実行してみて下さい。

	mes 5/2.0

	mes "5÷2 = "+(5/2.0)+""

普通に余りがある計算結果となってしまいました。HSPは計算式での小数点の扱いが、左側の先頭の数値で決まるんです。これはくれぐれも忘れないようにしないとだめです。

○ 計算処理と優先順位

計算式の計算記号に優先順位があるのはもちろんご存知ですよね。つまり「+」や「-」よりも「*」や「/」の方を先に計算するわけです。(ちなみに、HSP 3の前のバージョンHSP 2ではこの考え方がなくって左から順番に計算してく形だった)

//	「答えは20」と答えたあなたは天才!(ウソ)
	mes 5+5*2

	mes "5+5×2 = "+(5+5*2)+""

もし足し算や引き算を先に計算させたい場合は、普通に半角のかっこで計算式をくくります。算数と同じ考えです。

	mes (5+5)*2

	mes "(5+5)×2 = "+((5+5)*2)+""

○ ばらばらな数値を提示する乱数発生

乱数(らんすう)は、ばらばらな数値を提示してくれる機能です。ものすごい簡単にいえば、スクリプトがサイコロのようなものを振ってくれるようなものといえます。HSPで乱数を発生させるには「rnd」関数です。(ボタンオブジェクトについては、こちらのオブジェクト講座

	button "乱数",*ransu
	stop

*ransu
	mes rnd(6)+1

「rnd」関数で指定するパラメータは乱数の範囲(1〜32768)です。ここでは6を指定したので、ボタンを押すたびに0〜5の範囲(つまり数が6個)でバラバラな数値が返ります。サイコロ風にするなら、それに1を足し算しているのです。ただ、これは毎度コンパイル実行するたびに必ず同じパターンで数値が返ってきます。

	randomize

	button "乱数",*ransu
	stop

*ransu
	mes rnd(6)+1

この場合は「randomozei」命令を最初に宣言しておきます。これがあると、パソコンの時刻を利用して乱数のパターンを完全にバラバラな乱数に発生するようにします。

< 前へ | 次へ >

アバウト

HSP sun」へようこそ。こちらは無料のスクリプト言語システム「HSP」の講座ページです。このサイトはリンクフリーです。

HSP3講座メニュー

Copyright(c) HSP sun [HSP]

inserted by FC2 system