INT


 [機能] 小数点以下を切り捨てて、値を超えない最大の整数を返します。

 [書式] INT(n)

 [説明]
  値がマイナスの時の結果がFIXと異なります。

 [例]
    print int(-5.4)
     -6



  FIX


 [機能] 値の整数部を返します。

 [書式] FIX(n)

 [説明]

 [例]
    print fix(-5.4)
     -5



  ABS


 [機能] 絶対値を返します。

 [書式] ABS(n)

 [例]
    print abs(-5.4)
     5.4



  SGN


 [機能] 符号を求めます。

 [書式] SGN(n)

 [説明]
  正か負かを最小値1の符号付きで返します。
  0のときは0を返します。

 [例]
    print sgn(-5.4); sgn(0); sgn(5.4)
     -1  0  1



  SQR


 [機能] 平方根を得ます。

 [書式] SQR(n)

 [例]
    print sqr(256)
     16



  SIN


 [機能] 正弦(サイン)を得ます。

 [書式] SIN(n)

 [説明]
  n の単位はラジアン。
  (init命令で360単位の角度に変更できます)

 [例]  [smp_sin.bas]
    100 cls 3
    110 line(0,120)-(360,120),col(15)
    120 for i=0 to 360
    130 r=rad(i)*2
    140 pset(i,cos(r)*64+120),col(10)
    150 pset(i,sin(r)*64+120),col(9)
    160 pset(i,tan(r)*16+120),col(12)
    170 next
    180 line(0,0)-(360,32),0,bf
    190 line(0,208)-(360,240),0,bf



  COS


 [機能] 余弦(コサイン)を得ます。

 [書式] COS(n)

 [説明]
  n の単位はラジアン。
  (init命令で360単位の角度に変更できます)

 [例]
  参照;sin [smp_sin.bas]



  TAN


 [機能] 正弦(タンジェント)を得ます。

 [書式] TAN(n)

 [説明]
  n の単位はラジアン。
  (init命令で360単位の角度に変更できます)

 [例]
  参照;sin [smp_sin.bas]


  ATN


 [機能] 逆正接(アークタンジェント)を得ます。

 [書式] ATN(n)

 [説明]
  そのタンジェントが n であるような角度を返します。
  戻り値の単位はラジアンになります。
  (init命令で360単位の角度に変更できます)

 [例]
    print atn(0.25534192122103627)
     0.25


  ASIN


 [機能] 逆正弦(アークサイン)を得ます。

 [書式] ASIN(n)

 [説明]
  そのタンジェントが n であるような角度を返します。
  戻り値の単位はラジアンになります。
  (init命令で360単位の角度に変更できます)

 [例]
    print asin(0.479425538604203)
     0.5


  ACOS


 [機能] 逆余弦(アークコサイン)を得ます。

 [書式] ACOS(n)

 [説明]
  そのタンジェントが n であるような角度を返します。
  戻り値の単位はラジアンになります。
  (init命令で360単位の角度に変更できます)

 [例]
    print acos(0.7316888688738209)
     0.75


  LOG


 [機能] 自然対数を得ます。

 [書式] LOG(n)



  EXP


 [機能] 自然対数の底e に対する指数関数の値を得ます。

 [書式] EXP(n)



  FAC


 [機能] n の階乗(1からnまでのすべての整数の積)を得ます。

 [書式] FAC(n)

 [例]
    print fac(5)
     120


  PI


 [機能] 円周率(π)の値を得ます。

 [書式] PI(n)

 [説明]
  n には倍率を指定します。
  n を省略したときは1になり 3.141592653589793を返します。

 [例]
    print pi()
     3.141592653589793


  VAL


 [機能] 数字で表された文字列を実際の数値に変換して返します。

 [書式] VAL(文字列)

 [説明]
  文字による数値表現を実際の10進数数値に変換します。
  文字列の先頭が'&h'で始まる場合、以下の文字を16進数表記の値とみなして10進数数値化します。
  文字列の先頭が'&b'で始まる場合、以下の文字を2進数表記の値とみなして10進数数値化します。

  2進数の左端16bit目はマイナスのフラグ(1のときマイナス)になっています。
  [-32762?-1]と[32762?65535]は2進数では同じ値になります。
  val("&b")では常に正の値を返しますが左端16bitをマイナスフラグとする場合次のようにしてマイナス値を得ます。
      d=val("&b1111101100101110")
      if d>32767 then d=d-65536
      print d
      -1234

 [例]
    a=val("123")
    b=val("&hc8")
    print a;b
     123  200


  BIN$


 [機能] 数値を2進数に変換した値(文字列)を返します。

 [書式] BIN$(n)

 [説明]
  nは小数は切り捨てられ、32bit、2進数のデータの扱いで変換します。
  nの範囲は-2147483648?4294967296です。
  [-2147483648?-1]と[2147483648?4294967296]は2進数では同じ値になります。
  左側が0の連なりの時はそれを省いた桁数の表記を返します。
  小さい数で16bitの桁に揃えるには次のようにします。
      n=1234
      b$=right$(string$(15,"0")+bin$(n),16)
      print b$
      0000010011010010

 [例]
    print bin$(12345)
    11000000111001



  HEX$


 [機能] 数値を16進数に変換した値(文字列)を返します。

 [書式] HEX$(n)

 [説明]
  nは小数は切り捨てられ、32bit、16進数のデータの扱いで変換します。
  nの範囲は-2147483648?4294967296です。
  [-2147483648?-1]と[2147483648?4294967296]は16進数では同じ値になります。
  左側が0の連なりの時はそれを省いた桁数の表記を返します。

 [例]
    print hex$(61640)
    F0C8



  RND


 [機能] 0以上1未満の小数の乱数を発生させます。

 [書式] RND(n)

 [説明]
  nが正の時は乱数を発生します。
  nが0の時は前回発生させた乱数の値になります。
  nが負の時は乱数発生系列を初期値にして乱数を発生します。

 [例]
     print rnd(1)
      0.2189351810794058
     print rnd(1)
      0.7110011485445428
     print rnd(0)
      0.7110011485445428
     print int(rnd(1)*8)
      5
     print int(rnd(1)*8)
      2


  IRND


 [機能] 指定値 n未満の整数の乱数を発生させます。

 [書式] IRND(n)

 [説明]
  範囲は 0~n-1 です。
  RNDより簡単に整数の乱数を発生させることができます。

 [例]
    print irnd(8)
     3
    print irnd(8)
     6



  RANDOMIZE (コマンド)


 [機能] 乱数発生の系列を指定します。

 [書式] RANDOMIZE n

 [説明]
  数値 nにて乱数発生の系列を指定します。
  同じ数字を指定すると毎回同じ系列の乱数を発生します。
  RNDとIRNDの両方に設定されます。

 [例]
     randomize 24
     print rnd(1): print rnd(1)
      0.4221061271850657
      0.18021435338363986
     randomize 24
     print rnd(1): print rnd(1)
      0.4221061271850657
      0.18021435338363986


  RAD


 [機能] 度をラジアンに変換した値を返します。

 [書式] RAD(n)

 [例]
    print rad(180)
     3.141592653589793



  DEG


 [機能] ラジアンを度に変換した値を返します。

 [書式] DEG(n)

 [例]
    print deg(6.28)
     359.81749534215703



  MAX


 [機能] 2つの数値のうち大きい方の数値を返します。

 [書式] MAX(n,m)

 [例]
    print max(12,24)
     24



  MIN


 [機能] 2つの数値のうち小さい方の数値を返します。

 [書式] MIN(n,m)

 [例]
    print min(12,24)
     12



  RANGE


 [機能] 数値を指定の範囲内に収めます。

 [書式] RANGE(数値,最小値,最大値)

 [例]
    print range(6,12,24)
     12



  EVAL


 [機能] "計算式文字列"を式として計算してその値を返します。

 [書式] EVAL("計算式文字列")

 [説明]
  変数、配列、組み込み関数全てを使用することができます。
  返し値は結果が数値の場合は数値を、文字列の場合は文字列を返します。

 [例]
    b=eval("(a+2)*10")
    print b
  インタプリタモードでは"計算式文字列"は文字変数で与えることも出来ます。
  コンパイラモードでは返し値が数値の時のみ可能です。
  (この場合、計算の動作速度はインタプリタモードと同等になります)
    c$="(a+2)*10"
    b=eval(c$)
    print b



  BCD$


 [機能] 誤差が出ない10進数演算を行い結果を返します。長い桁数の計算もできます。

 [書式] BCD$("計算タイプ","数値1","数値2")

 [説明]
  桁数が長い数値を扱うので文字列で数値データを与えます。結果も文字列で返されます。
  誤差が出ない演算を行うことができます。
  "計算タイプ":計算の種類を次の中から選びます。
  "add"  足し算
  "sub"  引き算
  "mult" 掛け算
  "div"  割り算

  "scale" これは演算ではなく出力結果での小数点以下の桁数を指定します。
  はみ出す桁は四捨五入されます。
  第二パラメーターで指定します。(第三は記述しません)
  割り算の結果に適応されます。

 [例]
     '足し算
     print bcd$("add","1234567890.12345","1212.1212")
     1234569102.24465

     '割り算 小数点以下12桁
     r$=bcd$("scale","12")
     r$=bcd$("div","10","3")
     print r$
     3.333333333333