クリエイター手抜きプロジェクト[612]IoT Orange pico編 変数と計算/古籏一浩

投稿:  著者:  読了時間:5分(本文:約2,000文字)



今回は、Orange pico(Orangino)のBASIC(以後Oraneg BASIC)で計算を行ってみます。また、数値を扱う変数についても説明します。

Orange BASICは整数演算だけでなく浮動小数点演算もできます。IchigoJamでは整数計算しかできませんでしたので、温度表示で小数値を処理するような場合は工夫が必要でした。

その点、Orange BASICでは標準で浮動小数点演算ができるのは大変便利です。ただ、Orange BASICで計算を行う場合は注意が必要です。というのも、すべての計算が浮動小数点演算になるわけではないからです。小数値を含む計算結果を得たい場合には、ちょっとした約束事があります。




とりあえず簡単な計算を行ってみましょう。Orange BASICには一般的な古き良き時代のBASICと同じ、ダイレクトモードが用意されています。これは、プログラムを作らなくても命令を実行することができるモードです。前回の文字表示も、このダイレクトモードを使っています。

それでは、まずは足し算をしてみましょう。足し算は+を使います。printまたは?の後に計算式を入力し、リターンキーを押します。

?1+2+3+4

すると、以下のように1+2+3+4を合計した10が表示されます。
■はカーソルで定期的に点滅します。

10
OK


引き算は-を使います。
?10-7
3
OK


掛け算は*を使います。
?2*3*4
24
OK


割り算は/を使います。
?10/3
3
OK


割り算の余り(商)は%を使います。ここまでは、一般的なプログラム言語と同じなので、覚えやすいでしょう。

?10%3
1
OK


ところで10を3で割った時に3.3333...ではなく、3だけが表示されました。10÷3は3.3333...になって欲しいところですが、整数部分だけしか計算されていないようです。

Orange BASICで小数値計算を行う場合は、明示的に .(ピリオド)を付ける必要があります。さきほどの10÷3は、以下のようにしないと小数点以下が計算されません。

?10.0/3
3.33333
OK


以下のようにしても小数計算が行われます。

?10/3.
3.33333
OK


次に、変数に値を入れて計算させてみましょう。Orange BASICでは、変数名は英大文字小文字が区別されます。例えば、以下のふたつの変数は、異なる変数として処理されます。

A
a

さらに、変数には以下の3種類があります。単精度実数型は変数名の後ろに!を付けて区別します。文字型の場合は、変数名の後ろに$を付けて区別します。整数型の場合は、変数名のみで何も記号は付けません。

・整数型
・単精度実数型(浮動小数)
・文字型

同じAという名前の変数名でも、種類が違えば異なる変数として処理されます。以下の3つは別の変数として扱われます。

A
A!
A$

それでは、数値を変数に入れて計算させてみましょう。変数に数値を入れるには=を使います。=の左側に変数名を書きます。右側に変数に入れたい数値を書きます。以下の場合は、変数Aに12を入れます。

A=12

変数Bに3.14の浮動小数値を入れるには、以下のようになります。!を忘れると整数の値が入ってしまいますので注意してください。

B!=3.14

変数同士の足し算をしてみましょう。以下のように、足したい変数名を+を使って書くだけです。printの代わりに、省略形である?を使っても構いません。

print A+B!
15.14
OK


変数のうちどちらかが、単精度実数型なら小数計算が行われます。変数に16進数値を入れたい場合は、&hか&Hを使います。16進数値の前に、&hを付けるだけです。

A=&hFFFF

これでFFFFの値が変数Aに入ったことになります。printを使うと10進数で表示されます。

print A
65535
OK



【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

首都封鎖とかいうことで、これはそろそろ「バイオレンスジャック」のような世界になるのかなと思ったけど、そんな事はなさそうなほど静かみたいで。

・連載再現版 バイオレンスジャック(1)
https://www.amazon.co.jp/dp/4065128978

首都圏は買いだめしなくても大丈夫らしいのですが、それは農家とか物流関係とかが、まったく止まらない正常であるという前提の話……コロナウイルスは第一次産業とかに従事してる人には感染しないのか、と思ったりもしてしまうわけで。

もっとも、感染したことを知られたら会社が潰れてしまうことがあるので、自宅待機せずに自力で治すしかない流れに。テレビから流れてくるワイドショーやNHKの情報は、第三次産業前提やセレブ向けのものばかりで、下級市民には役立たず。

こういう時には政府も銀行もあてにならないので、企業も内部保留多くするしかない。本当にピンチの時には、どこもアテにならない。それからすると、今回は人が十分に対処できることなので、ゆっくりと家でプログラムでも作るのがよさそうです。