数値は、12
や 34.567
のように入力します。
浮動小数点表記 (例: 1.23e-4
(= 1.23×10-4)) も使用できます。
いわゆる全角文字は使えません。
虚数は数値に i
を付けて表します。
(例: 3i
、9.8e+6i
)
単に i
と書いただけでは変数の i とみなされます。
よって、初期状態では i
を虚数単位として使うことはできません。
しかし変数 i に虚数単位の値を代入しておくと、i
を虚数単位として使えるようになります。
i = 1i
整数を書くときは、十進法の代わりに二進法・八進法・十六進法が使えます。
それぞれ数字の頭に 0b
・0o
・0x
を付けて表します。
大文字でも小文字でも構いません。また桁数の制限はありません。
0b11001010
0B00100100
0o12345670
0O07654321
(大文字の O (オー) は数字の 0 と紛らわしいのでお奨めしません。)0x169A
0Xcafe
小数には、精度があります。入力された桁数に見合った精度が自動的に設定されます。
例えば、小数 123.45
は (約) 5 桁の精度、0.1000
は
(約) 4 桁の精度となります。もちろん 100.00
と 100.0000
とでは同じ 100 でも精度が違います。
計算結果の精度は、元の値の精度によって自動的に設定されます。例えば、
1.0+2.0
の結果は 3.0 に、1.000+2.000
の結果は
3.000 になります。
小数の最後に x
を付けると、精度を無限大にすることができます。例えば
1.234e+5
の精度は (約) 4 桁ですが、x
を付けて
1.234e+5x
にすると精度は無限大になります。精度が無限大の値の計算では、
できる限り正確な結果を得ようと試みます。つまり、結果が有限小数になる限り、
正確な結果が得られます (結果の精度もまた無限大になります)。結果が無限小数になるときは、
デフォルトの精度に値が丸められます。
整数に精度はありません。整数は常に正確にその整数の値を表します。
通常の実数や複素数のほかに、無限大も数値として扱うことができます。
無限大には、正の無限大・負の無限大・複素無限大の三種類があります。これらを式の中で使うには、
それぞれ @inf
・-@inf
・@cinf
と入力します。
正の無限大・負の無限大は、それぞれ正と負の符号を持ちます。複素無限大には符号はありません。
0 を 0 で割ったり、正の無限大と負の無限大を足したりするような演算では、
結果の値は数学的には一意に定義されません。このような時、結果は NaN
という特殊な値になります。NaN の値を式の中で使うには、@nan
と入力します。
注意: 多くのプログラミング言語では、NaN の値同士を比較すると等しくないと判定されますが、 #Calc (#Script) では NaN 同士は等しいと判定します。
変数に値を代入しておき、後でその値を使用することができます。変数に値を代入するには、代入演算子を使います。
変数の名前は、比較的自由に付けられます。記号でない文字ならばほとんどの文字が変数の名前に使えます。
ひらがなや漢字も使えます。ただし、変数の名前の一文字目を数字にすることはできません。
また記号 "_
" も変数の名前に使えます。
次の変数が最初から定義されています。
変数名 | 内容 |
---|---|
e | ネイピア数 (自然対数の底) |
pi | 円周率 |
#Calc には、void・null・true・false という特殊な値があります。これらの値を入力するには、
それぞれアット記号を付けて @void
・@null
・@true
・@false
と書きます。
関数は次のようにして定義できます。
例えば、一次関数 f(x) = 2 x + 3 を定義するには、 次のように入力します。
f = @[x] { 2 x + 3 }
括弧 [
]
の中に関数の変数を書き、{
}
の中に関数の値を書きます。
多変数関数 (例: @[x, y] { 2 x + 3 y }
) や定数関数 (例: @{ 3 }
)
も定義できます。定数関数では括弧 [
]
を省略できます。
実際に関数の値を求めるときも、括弧 [
]
を使います。例えば
f[3]
と入力すると、f(3) の値つまり 9 が出力されます。
(結合演算子を使って、単に f 3
と書いても構いません。)
最初から定義されている組込み関数の一部を以下に挙げます。
使用できる主な演算子は以下の通りです。
+
x+
y-
x-
y*
y/
x/
y\
y%
y^
y**
y(
x )
(2 * 3) + 4
のように他の演算子と組合わせて使います。=
y比較演算子もあります。二つの値を比較し、条件が満たされているかどうかを調べる演算子です。 演算の結果は、条件が満たされているなら true、満たされていなければ false という値になります。
複素数の比較は、等しいか等しくないかのみ調べることができます。 複素数の大小を比較すると (虚部が 0 でも) 常に false になります。
==
y!=
y<
y>
y<=
y>=
yこのほか、次の演算子があります。
!!
x!
x&&
y||
y?
y :
z++
x--
x++
--
@exists
x@delete
x+=
などの演算子です。演算と代入を同時に行います。
例えば、x += 3
は x = x + 3
を表します。-=
や
*=
のほかに、&&=
や ^=
など、
比較演算子以外の全ての二項演算子に対して複合代入演算子が使えます。3 x
のように値を続けて書いた場合、3 と x
を掛け算します。左側が数値ではなく関数のときは、掛け算ではなく関数の適用になります。
(結合演算子を使うときは、二つの値を空白で区切ってください。3x
のようにくっつけて書くことはできません。)===
y!==
y@bind
x演算子の優先順位は、次のようになっています。(括弧が最初に計算され、代入が最後に行われる。)
++
・--
)**
・^
)+
・-
・/
・!!
・!
・++
・--
)*
・/
・\
・%
)+
・-
)==
・!=
・<
・>
・<=
・>=
)===
・!==
)&&
)||
)? :
)ただし、冪乗演算子の右辺には前置単項演算子を使用できます。例えば、-a^-b^-c
は -(a^(-(b^(-c))))
と同じです。
優先順位が同じ演算子同士では、基本的に左から順番に演算が行われます。 ただし、前置単項演算子・冪乗・代入は右側が先になります。
© 2006-2007 magicant / version 1.2.10