
■ BASCOM-AVR (DEMO) の使用方法 ■ |
算術関数 演算子に関する命令 |
SIN |
正弦(サイン)を求めます。 |
COS |
余弦(コサイン)を求めます。 |
TAN |
正接(タンジェント)を求めます。 |
ASIN |
逆正弦(アークサイン)を求めます。 |
ACOS |
逆余弦(アークコサイン)を求めます。 |
ATN |
逆正接(アークタンジェント)を求めます。 |
ATN2 |
全四象限の逆正接(アークタンジェント)を求めます。 |
SINH |
双曲線の正弦(ハイパボリックサイン)を求めます。 |
COSH |
双曲線の余弦(ハイパボリックコサイン)を求めます。 |
TANH |
双曲線の正接(ハイパボリックタンジェント)を求めます。 |
RAD2DEG |
ラジアン(弧度)を角度に変換します。 |
DEG2RAD |
角度をラジアン(弧度)に変換します。 |
SQR |
平方根を求めます。 |
EXP |
指数関数(べき乗)を求めます。 |
POWER |
正の浮動小数点型変数専用の、べき乗計算を行います。 |
LOG |
対数関数(自然対数eを底とする)を求めます。 |
LOG10 |
対数関数(常用対数10を底とする)を求めます。 |
INT |
シングル型(単精度)またはダブル型(倍精度)の、整数部分を取り出します。 |
FIX |
小数点以下の桁を、より0に近い値にして、整数化します。 |
ROUND |
小数点以下の桁を、四捨五入します。 |
FRAC |
シングル型(単精度)の小数部分を取り出します。 |
ABS |
絶対値を求めます。 |
SGN |
浮動小数点型変数の符号を調べます。(正の数=1・ 0=0・負の数=-1) |
RND |
乱数を発生させます。 |
CONFIG RND |
RND命令(乱数の発生)の、出力のビット幅を設定します。 |
SIN |
一覧へ戻る |
正弦(サイン)を求めます。
書式 |
variable = Sin(source) |
注釈 |
variable |
= 正弦の値を入れる数値変数名。 |
source |
= 正弦を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single , X As Single |
' 使用する変数を宣言。 |
S = 90 |
' テスト用の数値を代入。 |
S = Deg2rad(s) : Print S |
' 角度をラジアンに変換。 (1.570796247) |
X = Sin(s) : Print X |
' 正弦(サイン)を求める。 (0.99999332) |
End |
' プログラムの終了。 |
|
|
COS |
一覧へ戻る |
余弦(コサイン)を求めます。
書式 |
variable = Cos(single) |
注釈 |
variable |
= 余弦の値を入れる数値変数名。 |
single |
= 余弦を求める数値変数名。 シングル型(単精度) |
|
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single , X As Single |
' 使用する変数を宣言。 |
S = 60 |
' テスト用の数値を代入。 |
S = Deg2rad(s) : Print S |
' 角度をラジアンに変換。 (1.047197459) |
X = Cos(s) : Print X |
' 余弦(コサイン)を求める。 (0.499994093) |
End |
' プログラムの終了。 |
|
|
TAN |
一覧へ戻る |
正接(タンジェント)を求めます。
書式 |
variable = Tan(source) |
注釈 |
variable |
= 正接の値を入れる数値変数名。 |
source |
= 正接を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single , X As Single |
' 使用する変数を宣言。 |
S = 45 |
' テスト用の数値を代入。 |
S = Deg2rad(s) : Print S |
' 角度をラジアンに変換。 (0.785398121) |
X = Tan(s) : Print X |
' 正接(タンジェント)を求める。 (0.999999576) |
End |
' プログラムの終了。 |
|
|
ASIN |
一覧へ戻る |
逆正弦(アークサイン)を求めます。
書式 |
variable = Asin(x) |
注釈 |
variable |
= 逆正弦の値を入れる数値変数名。 |
x |
= 逆正弦を求める数値変数名。 シングル型(単精度) |
|
・xは、−1から+1までの範囲で、求められる結果は、−π/2から+π/2までの範囲です。
・もし入力が−1より小さい場合は−π/2が返され、1より大きい場合はπ/2が返されます。
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single , X As Single |
' 使用する変数を宣言。 |
X = 1 |
' テスト用の数値を代入。 |
S = Asin(x) : Print S |
' 逆正弦(アークサイン)を求める。 (1.570796366) |
S = Rad2deg(s) : Print S |
' ラジアンを角度に変換。 (90.0) |
End |
' プログラムの終了。 |
|
|
ACOS |
一覧へ戻る |
逆余弦(アークコサイン)を求めます。
書式 |
variable = Acos(x) |
注釈 |
variable |
= 逆余弦の値を入れる数値変数名。 |
x |
= 逆余弦を求める数値変数名。 シングル型(単精度) |
|
・xは、−1から+1までの範囲で、求められる結果は、0からπまでの範囲です。
・もし入力が−1より小さい場合は0が返され、1より大きい場合はπが返されます。
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single , X As Single |
' 使用する変数を宣言。 |
X = 0 |
' テスト用の数値を代入。 |
S = Acos(x) : Print S |
' 逆余弦(アークコサイン)を求める。 (1.570796366) |
S = Rad2deg(s) : Print S |
' ラジアンを角度に変換。 (90.0) |
End |
' プログラムの終了。 |
|
|
ATN |
一覧へ戻る |
逆正接(アークタンジェント)を求めます。
書式 |
variable = Atn(single) |
注釈 |
variable |
= 逆正接の値を入れる数値変数名。 |
single |
= 逆正接を求める数値変数名。 シングル型(単精度) |
|
・求められる結果は、−π/2 (−90°)から+π/2 (+90°)までの範囲です。
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = Atn(1) : Print S |
' 逆正接(アークタンジェント)を求める。 (0.78539818) |
S = S * 4 : Print S |
' 結果を4倍する。 (3.141592736) π |
End |
' プログラムの終了。 |
|
|
ATN2 |
一覧へ戻る |
全四象限の逆正接(アークタンジェント)を求めます。
書式 |
variable = Atn2(y , x) |
注釈 |
variable |
= 全四象限の逆正接の値を入れる数値変数名。 |
y |
= Y-方向の距離を入れる数値変数名。 シングル型(単精度) |
x |
= X-方向の距離を入れる数値変数名。 シングル型(単精度) |
|
・求められる結果は、−π (−180°)から+π (+180°)までの範囲です。 (全円)
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
Dim X As Single , Y As Single |
' 使用する変数を宣言。 |
X = 1 : Y = 1 |
' テスト用の数値を代入。 |
S = Atn2(y , X) : Print S |
' 全四象限の逆正接を求める。 (0.78540468) |
S = Rad2deg(s) : Print S |
' ラジアンを角度に変換。 (45.000373839) 45° |
End |
' プログラムの終了。 |
|
|
SINH |
一覧へ戻る |
双曲線の正弦(ハイパボリックサイン)を求めます。
書式 |
variable = Sinh(source) |
注釈 |
variable |
= 双曲線の正弦の値を入れる数値変数名。 |
source |
= 双曲線の正弦を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
COSH |
一覧へ戻る |
双曲線の余弦(ハイパボリックコサイン)を求めます。
書式 |
variable = Cosh(single) |
注釈 |
variable |
= 双曲線の余弦の値を入れる数値変数名。 |
single |
= 双曲線の余弦を求める数値変数名。 シングル型(単精度) |
|
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
TANH |
一覧へ戻る |
双曲線の正接(ハイパボリックタンジェント)を求めます。
書式 |
variable = Tanh(source) |
注釈 |
variable |
= 双曲線の正接の値を入れる数値変数名。 |
source |
= 双曲線の正接を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・三角関数は、すべてラジアン(弧度)で扱われます。
・ラジアン(弧度)と角度の変換を行うには、RAD2DEG と DEG2RAD を使用します。
|
RAD2DEG |
一覧へ戻る |
ラジアン(弧度)を角度に変換します。
書式 |
variable = Rad2deg(source) |
注釈 |
variable |
= 変換された角度の値を入れる数値変数名。 |
source |
= ラジアン(弧度)を入れる数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
|
DEG2RAD |
一覧へ戻る |
角度をラジアン(弧度)に変換します。
書式 |
variable = Deg2rad(source) |
注釈 |
variable |
= 変換されたラジアン(弧度)の値を入れる数値変数名。 |
source |
= 角度を入れる数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
|
SQR |
一覧へ戻る |
平方根を求めます。
書式 |
variable = Sqr(source) |
注釈 |
variable |
= 平方根の値を入れる数値変数名。 |
source |
= 平方根を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = 9 |
' テスト用の数値を代入。 |
S = Sqr(s) : Print S |
' 平方根を求める。 (3.0) |
End |
' プログラムの終了。 |
|
|
EXP |
一覧へ戻る |
指数関数(べき乗)を求めます。
書式 |
variable = Exp(source) |
注釈 |
variable |
= 指数関数(べき乗)の値を入れる数値変数名。 |
source |
= 指数関数(べき乗)を求める数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = 1 |
' テスト用の数値を代入。 |
S = Exp(s) : Print S |
' 指数関数(べき乗)を求める。 (2.718281743) |
End |
' プログラムの終了。 |
|
|
POWER |
一覧へ戻る |
正の浮動小数点型変数専用の、べき乗計算を行います。
書式 |
variable = Power(source , raise) |
注釈 |
variable |
= べき乗の値を入れる数値変数名。 |
source |
= べき乗を求める底の数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
raise |
= べき乗を求める指数の数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・POWER関数は、正の浮動小数点変数だけに使用できます。
・[^] (べき乗)は、符号が使用できます。
・POWER関数は、[^] (べき乗)よりも、コンパイル時のコードが少なくなります。
|
(例) |
|
Dim S1 As Single , S2 As Single |
' 使用する変数を宣言。 |
S1 = 2.5 : S2 = 4 |
' テスト用の数値を代入。 |
S1 = Power(s1 , S2) : Print S1 |
' べき乗を求める。 (39.062492367 約39.0625) |
End |
' プログラムの終了。 |
|
|
LOG |
一覧へ戻る |
対数関数(自然対数eを底とする)を求めます。
書式 |
variable = Log(single) |
注釈 |
variable |
= 対数関数(eを底とする)の値を入れる数値変数名。 |
single |
= 対数関数(eを底とする)を求める数値変数名。 シングル型(単精度) |
|
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = 2.718281743 |
' テスト用の数値を代入。 |
S = Log(s) : Print S |
' 対数関数(自然対数eを底とする)を求める。 (1.0) |
End |
' プログラムの終了。 |
|
|
LOG10 |
一覧へ戻る |
対数関数(常用対数10を底とする)を求めます。
書式 |
variable = Log10(single) |
注釈 |
variable |
= 対数関数(10を底とする)の値を入れる数値変数名。 |
single |
= 対数関数(10を底とする)を求める数値変数名。 シングル型(単精度) |
|
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = Log10(1000) : Print S |
' 対数関数(常用対数10を底とする)を求める。 (3.0) |
End |
' プログラムの終了。 |
|
|
INT |
一覧へ戻る |
シングル型(単精度)またはダブル型(倍精度)の、整数部分を取り出します。
書式 |
variable = Int(source) |
注釈 |
variable |
= 整数部分の値を入れる数値変数名。 |
source |
= 整数部分を取り出す数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・整数部は、小数点の左側です。
|
(例) |
|
Dim S As Single , I As Integer |
' 使用する変数を宣言。 |
S = 1234.567 |
' テスト用の数値を代入。 |
I = Int(s) : Print I |
' 整数部分を取り出す。 (1234) |
End |
' プログラムの終了。 |
|
|
FIX |
一覧へ戻る |
小数点以下の桁を、より0に近い値にして、整数化します。
書式 |
variable = Fix(single) |
注釈 |
variable |
= 整数化をした値を入れる数値変数名。 |
single |
= 整数化をする数値変数名。 シングル型(単精度) |
|
・整数部は、小数点の左側です。
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = -1.5 |
' テスト用の数値を代入。 |
Print Int(s) |
' INTの場合。 (-2.0) |
Print Fix(s) |
' FIXの場合。 (-1.0) |
End |
' プログラムの終了。 |
|
|
ROUND |
一覧へ戻る |
小数点以下の桁を、四捨五入します。
書式 |
variable = Round(source) |
注釈 |
variable |
= 四捨五入をした値を入れる数値変数名。 |
source |
= 四捨五入をする数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・整数部は、小数点の左側です。
|
(例) |
|
Dim S As Single , I As Integer |
' 使用する変数を宣言。 |
S = 2.3 |
' テスト用の数値を代入。 |
I = Round(s) : Print I |
' 四捨五入をする。 (2) |
S = 2.8 |
' テスト用の数値を代入。 |
I = Round(s) : Print I |
' 四捨五入をする。 (3) |
End |
' プログラムの終了。 |
|
|
FRAC |
一覧へ戻る |
シングル型(単精度)の小数部分を取り出します。
書式 |
variable = Frac(single) |
注釈 |
variable |
= 小数部分の値を入れる数値変数名。 |
single |
= 小数部分を取り出す数値変数名。 シングル型(単精度) |
|
・小数部は、小数点の右側です。
|
(例) |
|
Dim S As Single |
' 使用する変数を宣言。 |
S = 1234.567 |
' テスト用の数値を代入。 |
S = Frac(s) : Print S |
' 小数部分を取り出す。 (0.567016601) |
End |
' プログラムの終了。 |
|
|
ABS |
一覧へ戻る |
絶対値を求めます。
書式 |
variable = Abs(source) |
注釈 |
variable |
= 絶対値を入れる数値変数名。 (Integer , Long , Single , Double) |
source |
= 絶対値を求める数値変数名。 (Integer , Long , Single , Double) |
|
・数の絶対値は常に正です。
|
(例) |
|
Dim I As Integer |
' 使用する変数を宣言。 |
I = -1000 |
' テスト用の数値を代入。 |
I = Abs(i) : Print I |
' 絶対値を求める。 (1000) |
End |
' プログラムの終了。 |
|
|
SGN |
一覧へ戻る |
浮動小数点型変数の符号を調べます。(正の数=1・ 0=0・負の数=-1)
書式 |
variable = Sgn(source) |
注釈 |
variable |
= 符号値を入れる数値変数名。 |
source |
= 符号を調べる数値変数名。 シングル型(単精度)、ダブル型(倍精度) |
|
・0以下の値は、-1が返されます。
・0は、0が返されます。
・0以上の値は、1が返されます。
|
(例) |
|
Dim S As Single , I As Integer |
' 使用する変数を宣言。 |
S = -12.345 |
' テスト用の数値を代入。 |
I = Sgn(s) : Print I |
' 符号を調べる。 (-1) |
End |
' プログラムの終了。 |
|
|
RND |
一覧へ戻る |
乱数を発生させます。
書式 |
variable = Rnd(limit) |
注釈 |
variable |
= 乱数の値を入れる数値変数名。 (バイト型、ワード型、インテジャー型) |
limit |
= 乱数の上限を設定する、定数または変数。 (バイト型、ワード型) |
|
・発生する乱数は、正の値で0から(limit値−1)の範囲です。
・RND命令を実行するたびに、新しい乱数値が得られます。
・発生する乱数は、ソフトウェアで生成される値なので、プログラムを起動するたびに同じ系列の
乱数になります。
・変数[___RSEED] (ワード型)を宣言し、タイマー等の値をこの変数に入れることで、系列を変える
ことができます。
|
(例) |
|
Dim W As Word , I As Byte |
' 使用する変数を宣言。 |
Dim ___rseed As Word |
' 使用する変数を宣言。 |
___rseed = 12345 |
' 乱数系列を変更する。 |
For I = 1 To 10 |
' 10回の繰り返し処理。 |
W = Rnd(100) |
' (0〜99)の範囲の乱数を発生させる。 |
Print W |
' 乱数値を出力。 |
Next I |
' |
End |
' プログラムの終了。 |
|
|
CONFIG RND |
一覧へ戻る |
RND命令(乱数の発生)の、出力のビット幅を設定します。
書式 |
Config Rnd = value |
注釈 |
value |
= 出力のビット幅。 (16:16ビット , 32:32ビット) |
|
・RND命令の初期状態では、16ビットの乗算と除算を使用して乱数が作成されます。
・このため、乱数の最大数はワード(16ビット)に制限されます。
・変数[___RSEED] (変数の系列の初期値)はWORD型です。
・より大きな乱数が必要な場合は、Config Rnd = 32を使用します。
・32ビットの分解能を使用する場合、指定された数で制限するために除算だけが使用されます。
・32ビットを使用する場合、[___RSEED] はWORD型ではなくDWORD型になります。
|
|