電卓記法
ブログに使うには高機能すぎるぐらい色々計算できる記法です。*1
電卓記法の基本
基本的には式として使用します。
2の16乗は[calc:2^16]。3+4は[calc:3+4]。√2は[calc:sqrt(2)]。
2の16乗は65536。3+4は7。√2は1.4142135623731。
となります。加減乗除やいろいろな関数が使えます。
電卓記法で変数が使える
変数を使うことができます。変数の代入は次のように行います。
[calcx:x=15] [calcx:y="test"]
[calcx]は結果を出力しない記法です。
変数はさつき記法の自由変数を使用していますので、さつき記法からも代入や表示することができます。
:::z1=220 :::z2=あいうえお z1の値は「[$z1]」です。
電卓記法で何ができる
この例はせりかさんに提供して頂きました。
2次方程式
y = x2 - 6x + 9
の解は以下で計算できます.
[calcx: a = 1][calcx: b = - 6][calcx: c = 9][calcx: d = b * b - 4 * a * c] \ [calc: if(d < 0, "解無し", if(d==0, (-b/(2 * a))."(重回)", (-b+sqrt(d))/(2 * a)) )]
3(重回)
お金の計算
表と連携した場合
[calcx:total=0] |* 商品 |* 価格 |* 個数 |* 計 | | 端麗 | [calc: p=198] | [calc:n=2] | [calc:t=p*n][calcx:total += t]| | エビス | [calc: p=248] | [calc:n=1] | [calc:t=p*n][calcx:total += t]| | 生搾り | [calc: p=198] | [calc:n=2] | [calc:t=p*n][calcx:total += t]| |合計 |<|<|[calc:total]|
商品 価格 個数 計 端麗 198 2 396 エビス 248 1 248 生搾り 198 2 396 合計 1040
使える関数や式
電卓記法では、次の式や関数が使用できます。
利用可能な演算子(優先度の低い順)。
; , = += *= /= %= .= **= <<= >>= &= |= &&= ||= || && | & == != <=> eq ne < > <= >= defined >> << + - . * / % x(文字列をn回複製) ++ -- ! ~ ^(べき乗) **(べき乗) #(配列参照)
利用可能な関数
sin cos tan asin acos atan atan2(x,y) rand oct hex abs ln log exp sqrt pow(x,y) sqr root floor round ceil int rint cint ceiling max(a,b, ... ,z) min(a,b, ... ,z) pow10(x) log10 log2 hypot fabs fma remainder ldexp scalb rad2deg def2rag time localtime substr ord length index rindex chop chomp regexp replace split join crypt push pop unshift shift sort strsort reverse if(式, x, y) ("式"が真ならばxを、偽ならばyを返す)
ポーランド記法
[poland]というタグがあり、入力した式を逆ポーランド記法で出力します。
たとえば[poland:(b^2-sqrt(4*a*c))/(2*a)]と入力すると次のようになります。
b 2 ^ sqrt 4 a * c * %r - 2 a * /
内部処理の都合で %r とかでていますが気にしないでください。