2-3.計算をさせて表示させる

表示ができたら、計算と、その表示をば。


2-1にて画面に文字を表示させる方法は分かりましたか? まずそれが出来ないと次へは進めませんし、文字表示は基本中の基本、どこまで行こうと使いますよ。

ま、そんな前置きは置いといて、この章の内容に入りましょうか。

演算・演算子

まず用語の話になりますが、コンピュータが行う「計算」を演算(英語でオペレーション)と言います。

で、一般的に「演算」と言えば、四則演算――足し算(加算)・引き算(減算)・掛け算(乗算)・割り算(除算)――が出てくると思います。というか大体の人はそれぐらいしか知らないはずです。記号で書くと+・-・×・÷ですね。

ですが、キーボードを見てもらうと分かるようにそんな記号は+と-以外ありません。これはどんなプログラミング言語でも常識となるので良く覚えておいて欲しいのですが、掛け算は"*"(アスタリスク)、割り算は"/"(スラッシュ)という記号になります。だから、3×2=3*2、4÷2=4/2です。掛け算の方はよく分からないけど、割り算の方は納得できると言う人は多くいるでしょう。分数になってますから。4÷2は4/2になり、2ですね。

これらの+,-,*,/(他にも色々ありますが)の記号を、演算子(英語でオペレータ)と言います。

そして、演算の対象となる値や変数を被演算子(英語でオペランド)と言います。

a + 10という式を例に取れば、「演算子」は"+"で、「被演算子」は"a"と"10"という値です。

表示する

計算結果を表示するには、mes命令を使い、パラメータに計算式を与えれば可能です。


    mes 1+2
    mes 2-1
    mes 2*2
    mes 4/2

どうでしょうか。画面に先頭から3、1、4、2と表示されるはずです。されなかったら嘘です。ちなみに、数字と演算子の間にスペースを入れても大丈夫です。あんまり詰めても見辛いのでスペースは入れていきましょう。


    mes 1 + 2

HSP3.0になり、優先順位が高いものから実行されるようになりました。(2.61までは括弧でくくらないと、単純に左から右へと計算していました)例えば、


    mes 2 + 3 * 2

という場合、HSP3.0ではまず3 * 2が実行されて結果は8となりますが、HSP2.61まででは、まず2 + 3が計算されて12となります。よって、この式でHSP2.61までと同じ動作をさせる場合は括弧でくくる必要があります。


    mes ( 2 + 3 ) * 2

次に、文字列と数字、計算式を組み合わせて表示する方法を紹介します。

まずは文字列と数字を組み合わせて表示する方法です。HSPでは単に"+"を使ってつなげれば表示できます。


    mes "num " + 5

この場合、num 5と表示されると思います。文字列"num "に、数字の'5'がくっついています。

しかし、試してみると分かりますが、これの逆は上手くいきません。


    mes 5 + " num"

このように、先に数値が来る場合は、以下のようにしなければなりません。


    mes "" + 5 + " num"

この例では空の文字列を先に置いています。こうするときちんと5 numと表示されます。理由についてはまた後で。

次は計算式の表示です。計算式もこれまで書いたようにすれば良いのですが、注意するべき点が1つあります。それは、計算式の部分を"()"で囲う必要があります。


    mes "1 + 2 = " + 1 + 2        ;上手く表示されない
    mes "1 + 2 = " + ( 1 + 2 )

1行目は1 + 2 = 12と表示されると思います。2行目は1 + 2 = 3と表示されるはずです。

理由はさっきのものと合わせて、後で説明します。


Last Modified: 2008-08-15