Go to the first, previous, next, last section, table of contents.


代数的入力方式

計算は代数形式でも入力できます。 アポストロフィー・キー ' を押し、 続けて通常形式の表現を入力すれば良いのです。 ' 2+3*4 RET とすると、 2+(3*4) = 14 を計算し結果をスタックに push します。 あなたが望むなら、Calc の RPN 的側面を完全に無視して、 この方法で代数的表現を判りやすく入力することができます。 スタックにある以前の結果を消したい時は、 その度に DEL を使うことができます。

普通の数値入力の途中でアポストロフィー・キーを押すと、 入力途中の数値と共に代数的入力モードに切替ります。 この様な操作を行うのは、 Emacs 完全互換のカーソル移動キーや編集キーを使いたい時です。 それらの編集キーは代数的入力では使えますが、数値入力では使えないからです。

同様に、数値入力や代数的入力の途中で ` (バッククォート) を押すと、 calc-edit モードに入って入力途中の内容を別のバッファで編集し、 入力を完遂することができます。スタック項目の編集 参照 。

代数的入力方式がお好みなら、 コマンド m a (calc-algebraic-mode) を使って代数モードに設定することができます。 このモードでは、 数字キーなど通常では数値入力を開始するキーが、 かわりに代数的入力を開始します。 そのため入力する式が数字で始まる場合、 アポストロフィー・キーを省略できます。 また左カッコやカギカッコも代数的入力を開始します。 このモードでも RPN による計算ができますが、 各項を入力する度に RET を押して、入力を終了せねばなりません。 つまり 2 RET 3 RET * 4 RET + というように入力すると、 2*3+4 RET と同じ計算をします。

m a コマンドに C-u のような数値接頭引数を付けると、 制限代数モードになります。 これは普通の代数モードと同じですが、 代数的入力を開始するキーは ([ に制限され、 数値キーでは数値入力方式のままです。

m t (calc-total-algebraic-mode) は より強力な代数モードを提供します。 このモードでは、全ての標準文字と句読点キーは代数的入力を開始します。 Q よりも sqrt( ), a f よりも factor( ) を タイプするのが好みなら、このモードを使ってください。 「完全」代数モードにいる時に通常 Calc コマンドを入力するには、 META キーを押しながらタイプします。 従って、M-q は Calc を終了するコマンドであり、 M-p は計算精度を設定し、 M-m t (または M-m M-t) は完全代数モードを終了します。 メタキーも代数的入力を終了させますから、 2+3 M-S2+3 RET M-S と同等です。 このモードにいるときは常にモードラインに `Alg*' という記号が現れます。
(訳注: このモードは Emacs 19 以降ではサポートされていない)

' (アポストロフィー)を 2回押すと、 前の代数式を再入力します。 そして Emacs の編集キーを使ってこの式を好きなように修正し、 RET を押します。

キーボードから入力された式の中では、 $ 記号はスタック top の数を意味します。 入力式中に $ 文字があったら、 Calc はその式を単に push するのではなく、top をその式に置換えます 従って、' 1+2 RET は 3 をスタックに push し、 そして $*2 RET はそれを 6 に置換えます。 ちなみに $ キーは常に代数的入力を始めるので、 入力する式の先頭が $ の場合は ' は不要です。
(訳注: $ があったら、pop して代入計算し、結果を push する。)

入力式から より高位のスタックにアクセスするには、 記号 $$, $$$, ... を使います。 スタックから除かれる(そして入力値に置換わる)項の数は、 式中で一番長い $マークの数と等しくなります。
(訳注: $ が連なる数だけ pop して代入)
例えば、`$$+$$$' は 2番目と 3番目のスタック項を足し合せ、 top の 3項をその答に置換えます(訳注: 答が 3つコピーされるのではない)。 (この式に単独の `$' は含まれないので、 スタックの第1項の情報は完全に失われます。)

$マークと数字を組合せた記号は、少し異なるスタック参照方法を行います。 `$1', `$2', ... は `$', `$$', ... にそっくりですが、 参照されたスタック項は入力項に置換わりません。
(訳注: つまり pop が起こらない。)
`$+1' がスタックの 5 を 6 に置きかえるのに対し、 `$1+1' はスタックに 5 を残したまま 6 を push します。

カンマで区切られた複数の式が入力されたら、 それぞれの式が順番に push されます。 例えば、`1,2,3' は 3つの数をスタックに push し(3 が top に来ます)、 `$+1,$-1' はスタック先頭の 5 が 6 と 4 に置換わります。 さらに、`$,$$' はちょうど TAB キーのように、 スタック先頭の 2項 を入換えます。

RET の代りに M-=M-RET を使って代数的入力を完了することができます。 これはスタックに置かれる前に式中の変数を評価します。 (従って、' pi RET は変数 `pi' を push しますが、 ' pi M-RET は 3.1415 を push します。)

RET の代りに LFD (あるいは C-j) で代数的入力を完了した場合、 Calc はデフォルトの簡単化(m O のような; 簡単化モード 参照 )を 行わずに push します。 従って ' 1+2 RET は 3 を スタックに push しますが、 ' 1+2 LFD は式 1+2 を push します。 後で式を評価すべき局面になったら、その時に = を押せば良いのです。


Go to the first, previous, next, last section, table of contents.     利用度数