数値モード | 三角・指数・対数 | SQR(x) | INTSQR(x) | GCD(a,b) | 多倍長 |
---|---|---|---|---|---|
十進 | ○ | ○ | × | × | × |
十進1000桁 | × | ○ | × | × | × |
2進 | ○ | ○ | × | × | × |
複素数 | ○ | ○ | × | × | × |
有理数 | × | × | ○ | ○ | ○ |
以下に示すOPTION ARITHMETIC文を各プログラム単位(主プログラムと外部手続き)に書くと,ツールバーアイコンで指定される数値モードに関係なく動作させることができる。
十進 OPTION ARITHMETIC DECIMAL (Full BASIC互換) 十進1000桁 OPTION ARITHMETIC DECIMAL_HIGH 2進 OPTION ARITHMETIC NATIVE (Full BASIC互換) 複素数 OPTION ARITHMETIC COMPLEX 有理数 OPTION ARITHMETIC RATIONAL
主プログラムに書いたOPTION文は,外部手続き(外部関数,外部副プログラムなど)には効力が及ばないことに注意。
数値モードの選択
十進1000桁モードは,小数で近似して計算する場合に用いる。
近似を用いたくない場合や,(1000桁を超える)長大桁の整数を扱いたい場合には有理数モードを使う。
1000桁モードにするか有理数モードにするかの選択のカギは,SQR関数を使うか否か。
例 コラッツ予想(奇数は3倍して1を加え,偶数は2で割る計算をくり返すといつかは1になる?)
数値がどこまで大きくなるかわからないので有理数モードを使う。1000桁モードは適さない。
OPTION ARITHMETIC RATIONAL INPUT n DO IF MOD(n,2)=0 THEN LET n=n/2 ELSE LET n=3*n+1 PRINT n END IF LOOP UNTIL n=1 END