ページ 11

変数を使ったべき乗計算

Posted: 2006年2月23日(木) 21:35
by ar
標記の件、ver.4.13.00および4.21.00で下記のようなプログラムを実行すると演算結果が0となります。

コード: 全て選択

#N88BASIC
Dim a As Integer, b As Integer
a = 2
b = 2
Print a^b
どうやらどちらかの変数の型が2byte以下のもの(Char型、Byte型、Integer型、Word型)である場合に起こるようで、組み合わせによって例外処理やらアクセス違反やらエラーは無いけど結果がおかしかったりします。
当然ながら、二つの変数をLong型、DWord型、QWord型で宣言したり、演算時に型キャストした場合には正常に動きました。
確認願います。

ついでながら、Sqr関数内の変数2が型宣言されていないので#strictを記述したときに警告が出ます。
実用上は問題ないですが、宣言したほうが良いのでは。

Posted: 2006年2月24日(金) 00:57
by 山本
ar さんが書きました:標記の件、ver.4.13.00および4.21.00で下記のようなプログラムを実行すると演算結果が0となります。

コード: 全て選択

#N88BASIC
Dim a As Integer, b As Integer
a = 2
b = 2
Print a^b
どうやらどちらかの変数の型が2byte以下のもの(Char型、Byte型、Integer型、Word型)である場合に起こるようで、組み合わせによって例外処理やらアクセス違反やらエラーは無いけど結果がおかしかったりします。
当然ながら、二つの変数をLong型、DWord型、QWord型で宣言したり、演算時に型キャストした場合には正常に動きました。
確認願います。
ご報告ありがとうございます。次回のバージョンアップで修正しますので、今しばらくお待ちください。

ar さんが書きました:ついでながら、Sqr関数内の変数2が型宣言されていないので#strictを記述したときに警告が出ます。
実用上は問題ないですが、宣言したほうが良いのでは。
こちらのほうも、次回のバージョンアップで修正させていただきます。