基本数学関数
この章では、PP Basicで使用できる基礎的数学関数の使用法を説明します。
数値の絶対値を返します。
#-----------------------------abs関数サンプルコード
a=abs(-10)
print "a -> ",a
#-----------------------------結果
a -> 10
数値の平方根を取得します。与える数値は0以上でなければなりません。
#-----------------------------平方根関数サンプルコード
a=sqrt(2)
print "a -> ",a
#-----------------------------結果
a -> 1.41421
数値の小数点以下を切り捨て、整数部分を取得します。
#-----------------------------int関数サンプルコード
a=int(3.141592)
print "a -> ",a
#-----------------------------結果
a -> 3
mod(i1,i2)
i1をi2で割った余りを返します。
#-----------------------------mod関数サンプルコード
a=mod(777,100)
print "a -> ",a
#-----------------------------結果
a -> 77
rnd(x)
0〜xの範囲の乱数を返します。
#-----------------------------乱数生成サンプルコード
a=rnd(1)
print "a -> ",a
#-----------------------------結果
a -> 0.84018
与えられた数値の対数値を返します。logは低がe、log10は低を10として計算します。
#-----------------------------対数関数サンプルコード
a=log(10)
b=log10(10)
c=exp(1)
print "a, b, c -> ",a, b, c
#-----------------------------結果
a, b, c -> 2.30258 1 2.71828
三角関数の演算を行います。数値はラジアンで与えます。
#-----------------------------三角関数サンプルコード
pi=3.141592
n=300
for i=1 to n
i0=i-1:i1=i
thita0=pi*6/n*i0
thita1=pi*6/n*i1
a0=sin(thita0):a1=sin(thita1)
b0=cos(thita0):b1=cos(thita1)
c0=tan(thita0):c1=tan(thita1)
MoveTo(i0*2,a0*50+100):LineTo(i1*2,a1*50+100)
MoveTo(i0*2,b0*50+100):LineTo(i1*2,b1*50+100)
MoveTo(i0*2,c0*50+100):LineTo(i1*2,c1*50+100)
next
#-----------------------------結果
値の逆正弦、逆余弦および逆正接を返します。返される値の単位はラジアンです。asinおよびacosに対しては、数値は-1.0〜1.0の範囲内でなければなりません。
#-----------------------------逆三角関数サンプルコード
width=2
n=300
for i=1 to n
i0=i-1:i1=i
val0=-1+width/n*i0
val1=-1+width/n*i1
a0=asin(val0):a1=asin(val1)
b0=acos(val0):b1=acos(val1)
c0=atan(val0):c1=atan(val1)
MoveTo(i0*2,a0*50+100):LineTo(i1*2,a1*50+100)
MoveTo(i0*2,b0*50+100):LineTo(i1*2,b1*50+100)
MoveTo(i0*2,c0*50+100):LineTo(i1*2,c1*50+100)
next
#-----------------------------結果
a,b,c -> 1.57080 0 0.78540
引数の双曲線正弦、双曲線余弦および双曲線正接を返します。
#-----------------------------双曲線関数サンプルコード
width=8
n=300
for i=1 to n
i0=i-1:i1=i
val0=-width/2+width/n*i0
val1=-width/2+width/n*i1
a0=sinh(val0):a1=sinh(val1)
b0=cosh(val0):b1=cosh(val1)
c0=tanh(val0):c1=tanh(val1)
MoveTo(i0*2,a0*50+100):LineTo(i1*2,a1*50+100)
MoveTo(i0*2,b0*50+100):LineTo(i1*2,b1*50+100)
MoveTo(i0*2,c0*50+100):LineTo(i1*2,c1*50+100)
next
#-----------------------------結果