ページ 11

Sqr()関数に問題あり

Posted: 2009年10月02日(金) 23:23
by Nyaonyao
Sqr()関数に問題があります.
しかも,C:\Program Files\ActiveBasic 5.0\ablib\src\basic\function.sbp内のソースコードの修正が反映されない様で簡単には対応できません.

以下のソースをVer.4.20でコンパイルすると正しく動作しますが,5.0ではInfinityと表示されてしまうものが現れます.

Dim i As Long
Dim x As Double, y As Double
Dim s As String
s=""
For i=1 To 20
x=0.5*i
y=Sqr(x)
s=s+"Sqr("+Str(x)+")="+Str$(y)+Chr$(13)
Next
MessageBox(0,s,"Sqr()のテスト",MB_OK)

私見ですが, 標準的な関数に関してもソースコードの修正が有効な方が使い勝手が良い様に感じます.

次バージョンで反映いただければ幸いです.

Posted: 2009年10月04日(日) 23:55
by イグトランス
報告ありがとうございます。
失礼ですが、バージョンはいくつでしょうか。公開されている中で一番新しい5.0 CP3で私が実行したところ、Infinityとなるものはありませんでした。

コード: 全て選択

---------------------------
Sqr()のテスト
---------------------------
Sqr(0.5)=0.707106781186547
Sqr(1)=1
Sqr(1.5)=1.22474487139159
Sqr(2)=1.41421356237309
Sqr(2.5)=1.58113883008419
Sqr(3)=1.73205080756888
Sqr(3.5)=1.87082869338697
Sqr(4)=2
Sqr(4.5)=2.12132034355964
Sqr(5)=2.23606797749979
Sqr(5.5)=2.34520787991171
Sqr(6)=2.44948974278318
Sqr(6.5)=2.54950975679639
Sqr(7)=2.64575131106459
Sqr(7.5)=2.73861278752583
Sqr(8)=2.82842712474619
Sqr(8.5)=2.91547594742265
Sqr(9)=3
Sqr(9.5)=3.08220700148449
Sqr(10)=3.16227766016838

---------------------------
OK   
---------------------------
標準関数のソースの変更が反映されないことについてですが、これはコンパイル時間短縮のため予めコンパイルしたファイルを利用するようになったためです。将来的には、標準ライブラリのソースコードを修正したときに、それを反映する方法をきちんとアナウンスするようになるかもしれません。しばらくお待ちください。

Posted: 2009年10月04日(日) 23:59
by イグトランス
申し訳ありません。一番新しいのはCP5でしたね。たしかにInfinityだらけでした。まだ公開されていない最新版では問題なく動作しますので、次の公開版までお待ちください……。