XCALC(1) — NEWS-OS Programmer’s Manual
名称
xcalc − X 用の科学計算器
形式
xcalc [-stipple] [-rpn] [-toolkitoption...]
解説
xcalc は、 TI-30、HP-10C および計算尺をエミュレートできる科学計算用の デスクトップアクセサリーです。
オプション
xcalc はすべての標準的なツールキットコマンドラインのオプションに加え、 次の2つのオプションを受け入れます。
−stipple
このオプションは、計算器のバックグラウンドを、フォアグラウンドと バックグラウンドの色の点刻を使用して描くことを示します。 白黒ディスプレイでは、これによってディスプレイがより良くなります。
−rpn このオプションは、 Reverse Polish Notation を使用することを示します。 このモードでは、計算器は HP-10C のように見え、そのように動作します。 このフラグがないと、それは TI-30 をエミュレートします。
操作
ポインタの使用法 : 操作は、 Button1( 通常、ポインタ上の最も左側のボタン )、あるいは、 キーボードを使用します。 多くの計算器のコマンドは、キーボードからの入力を受けます。 Button3 ( 通常、右側 ) で TI 計算器上の AC キー、あるいは ON キーを 押すと計算器を脱出します。
計算器のキーの用途 ( TI モード ) : 数字キー、 +/- キー、および +、-、∗、/ および = キーはすべてそれぞれが 示すとおりに動作します。 オペレータは、標準の優先規則に従わなければならないことに注意してください。 よって、 "3+4∗5=" と入力すると、 "35" ではなく "23" となります。 これをオーバライドするには括弧を使用します。 たとえば、"(1+2+3)∗(4+5+6)=" は "6∗15=90" になります。 アクションプロシージャは、下のそれぞれの関数に関連しています。 もし、カスタム計算器を定義するのに興味があるなら、これらは非常に便利です。 すべての数字のキーを使うアクションは、digit(n) です。 n は、数字の 0..9 に対応しています。
1/x ディスプレイ中の数字を逆数に置き換えます。 対応するアクションプロシージャは、reciprocal() です。
x^2 ディスプレイ中の数字を 2 乗します。 対応するアクションプロシージャは、square() です。
SQRT ディスプレイ中の文字の平方根をとります。 対応するアクションプロシージャは、squareRoot() です。
CE/C 1 回押すと、ディスプレイ中の数字をクリアします。 このときマシンの状態はクリアされません。 数字を再入力することができます。 これを 2 回押すと、状態もクリアされます。 対応する TI モードのアクションプロシージャは、clear() です。
AC ディスプレイ状態、メモリ、などすべてをクリアします。 右側のボタンでこれを押すと、計算器が ’ オフになり ’ プログラムを 終了します。 状態をクリアするアクションプロシージャは、off() であり、 終了するのは、quit() です。
INV ファンクションキーの意味を逆にします。 詳細については、個々のファンクションキーを参照。 対応するアクションプロシージャは、inverse() です。
sin 現在の DRG モード ( 下記の DRG を参照 ) によって解釈されるとおりに、 ディスプレイ中の数字の正弦を計算します。 逆にされた場合は、これは逆正弦を計算します。 対応するアクションプロシージャは、sine() です。
cos 余弦を計算します。 逆にされた場合は逆余弦を計算します。 対応するアクションプロシージャは、cosine() です。
tan 正接を計算します。 逆にされた場合は逆正接を計算します。 対応するアクションプロシージャは、tangent() です。
DRG 計算器の数字ウィンドウ下部の ’DEG’、’RAD’、あるいは ’GRAD’ で示される とおりに DRG モードを変更します。 ´DEG’ モードの場合は、ディスプレイ中の数字は度数ととられます。 ´RAD’ モードでは、数字はラジアンで、 ’GRAD’ モードでは、数字は グラジアンです。 逆にされた場合、 DRG キーは度数をラジアンからグラジアンへそしてその逆に 変換するという優れた機能をもちます。
例 : 計算器を ’DEG’ モードにし、 "45 INV DRG" と入力します。 ディスプレイは ".785938" の行に沿って何かを表示します。 これは 45 度がラジアンに変換されたものです。 対応するアクションプロシージャは、degree() です。
e 定数 ’e’ (2.7182818...) です。 対応するアクションプロシージャは、e() です。
EE 指数を入力するのに使用します。たとえば、"−2.3E−4" を入力するには、 "2 . 3 +/− EE 4 +/−" と入力します。 対応するアクションプロシージャは、scientific() です。
log ディスプレイ中の数字の対数 ( 基数 10) を計算します。 逆にされた場合は、 "10.0" をディスプレイ中の数字乗します。 たとえば、 "3 INV log" と入力すると、 "1000" となります。 対応するアクションプロシージャは、logarithm() です。
ln ディスプレイ中の数字の対数 ( 基数 e) を計算します。 逆にされた場合は、 "e" をディスプレイ中の数字乗します。 たとえば、 "e ln" と入力すると、 "1" になります。 対応するアクションプロシージャは、naturalLog() です。
y^x 左側の数字を右側の数字の累乗にします。 たとえば、 "2 y^x 3 =" は、 "8" になります。 これは 2^3 にあたります。 さらに例を示すと、 "(1+2+3) y^x (1+2) =" は、 "6 y^x 3" で、 "216" となります。 対応するアクションプロシージャは、power() です。
PI 定数 ’pi’ (3.1415927....) です。 対応するアクションプロシージャは、pi() です。
x! ディスプレイ中の階乗を計算します。 ディスプレイ中の数字は、 0−500 の範囲にある整数でなければなりませんが、 数字ライブラリに応じて、それよりはるか以前にあふれるでしょう。 対応するアクションプロシージャは、factorial() です。
( 左カッコです。 対応する TI 計算器のアクションプロシージャは、leftParen() です。
) 右カッコです。 対応する TI 計算器のアクションプロシージャは、rightParen() です。
/ 割り算です。 対応するアクションプロシージャは、divide() です。
∗ かけ算です。 対応するアクションプロシージャは、multiply() です。
- 引き算です。 対応するアクションプロシージャは、substract() です。
+ 足し算です。 対応するアクションプロシージャは、add() です。
= 計算の実行です。 TI の特殊なアクションプロシージャは、equal() です。 STO ディスプレイ中の数字を記憶位置に複写します。 対応するアクションプロシージャは、store() です。
RCL 記憶位置からの数字をディスプレイに複写します。 対応するアクションプロシージャは、recall() です。
SUM ディスプレイ中の数字を記憶位置中の数字に加算します。 対応するアクションプロシージャは、sum() です。
EXC ディスプレイ中の数字と記憶位置中の数字をスワップします。 対応する TI 計算器のアクションプロシージャは、exchange() です。
+/- 符号変換です。 対応するアクションプロシージャは、negate() です。
. 小数点です。 対応するアクションプロシージャは、decimal() です。 計算器のキーの用途 (RPN モード ): 数字キー、 CHS ( 変更記号 )、+、-、∗、/ および ENTR キーはすべて それぞれが示すとおりに動作します。 これら以外のキーのほとんどは、TI モードにおけるのと同じです。 相違は以下に記述します。 ENTR キーに対応するアクションプロシージャは、enter() です。
<−
数字を入力しているときに使用できるバックスペースキーです。 これで、ディスプレイ中から数字を消去します。 対応するアクションプロシージャは、back() です。
ON ディスプレイ、状態、メモリ、などすべてをクリアします。 右側のボタンでこれを押すと、計算器を ’ オフにし、 ’ プログラムを 終了します。 たとえて言えば、計算器をゴミ箱に捨てるようなものです。 状態のクリアに対応するアクションプロシージャは、off であり、 終了に対応するアクションプロシージャは、quit() です。
INV ファンクションキーの意味を反対にします。 これは、 HP 計算器における f キーと同じですが、xcalc は各キー上に 複数の記号を表示するリゾリューションはもっていません。 詳細については個々のファンクションキーを参照してください。
10^x "10.0" をスタックの 1 番上の数字乗します。 逆にされると、ディスプレイ中の数字の対数 ( 基数 10) を計算します。 対応するアクションプロシージャは、tenpower() です。
e^x "e" をスタックの 1 番上の数字乗します。 逆にされると、表示されている数字の対数 ( 基数 e) を計算します。 対応するアクションプロシージャは、epower() です。
STO スタックの 1 番上の数字を記憶位置に複写します。 記憶位置は 10 あります。 希望する記憶位置は、このキーを押してから数字キーを押して指定します。
RCL 指定された記憶位置からの数字をスタックの上にプッシュします。
SUM スタックの 1 番上の数字を指定された記憶位置内の数字に加算します。
x:y スタックの上から 2 つの位置にある数字を交換します。 対応するアクションプロシージャは、Xexchange() です。
R v スタックを下方向にロールします。 逆にされた場合は、これはスタックを上方向にロールします。 対応するアクションプロシージャは、roll() です。
blank これらのキーは、 HP10-C 上のプログラミング機能として用いられていました。 それらの機能性については xcalc では述べません。
最後に、2 つのアクションプロシージャを付け加えます。 ベルをならす bell() と、計算器の”液晶”画面で、全体の数をカットする selection() です。
アクセラレータ
アクセラレータは、コマンドを入力する近道です。 xcalc は、いくつかのサンプルキーボードアクセラレータが用意されています。 ユーザがアクセラレータをカスタマイズすることもできます。 xcalc によって用意された数字のキーパッドアクセラレータは、 直観的に直すべきです。 xcalc によって定義されたメインキーボードのアクセラレータは、 以下のようになっています。
| TI Key | HP Key | Keyboard Accelerator | TI Function | HP Function |
| SQRT | SQRT | r | squareRoot() | squareRoot() |
| AC | ON | space | clear() | clear() |
| AC | <- | Delete | clear() | back() |
| AC | <- | Backspace | clear() | back() |
| AC | <- | Control-H | clear() | back() |
| AC | Clear | clear() | ||
| AC | ON | q | quit() | quit() |
| AC | ON | Control-C | quit() | quit() |
| INV | i | i | inverse() | inverse() |
| sin | s | s | sine() | sine() |
| cos | c | c | cosine() | cosine() |
| tan | t | t | tangent() | tangent() |
| DRG | DRG | d | degree() | degree() |
| e | e | e() | ||
| ln | ln | l | naturalLog() | naturalLog() |
| y^x | y^x | ^ | power() | power() |
| PI | PI | p | pi() | pi() |
| x! | x! | ! | factorial() | factorial() |
| ( | ( | leftParen() | ||
| ) | ) | rightParen() | ||
| / | / | / | divide() | divide() |
| ∗ | ∗ | ∗ | multiply() | multiply() |
| - | - | - | subtract() | subtract() |
| + | + | + | add() | add() |
| \= | \= | equal() | ||
| 0..9 | 0..9 | 0..9 | digit() | digit() |
| +/- | CHS | n | negate() | negate() |
| x:y | x | XexchangeY() | ||
| ENTR | Return | enter() | ||
| ENTR | Linefeed | enter() |
カスタマイゼーション
アプリケーションクラスの名前は、XCalc です。
xcalc は、位置、ラベル、計算器のキーの関数を指定する たくさんのアプリケーションデフォルトファイルがあります。 キーボードアクセラレータ これらのリソースは、ソースコードで指定されていませんから、 サイズやボタンの位置や、ボタンのラベルやボタンの関数を指定するために、 Athena コマンドやフォームウィジェットリソースを使って、 自分のアプリケーションデフォルトファイルを書くことによって、 カスタマイズされた計算器を作ることができます。
それぞれの計算器の foreground と background のカラーは、 視覚的に指定することができます。 TI 計算器のための、クラシカルなカラーリソースの指定は、次のようになります。 XCalc.ti.Command.background: gray50
XCalc.ti.Command.foreground: white For each of buttons 20, 25, 30, 35, and 40, specify:
XCalc.ti.button20.background: black
XCalc.ti.button20.foreground: white For each of buttons 22, 23, 24, 27, 28, 29, 32, 33, 34, 37, 38, and 39:
XCalc.ti.button22.background: white
XCalc.ti.button22.foreground: black
ウィジェット階層
リソースを指定するのに、xcalc を構成するウィジェットの階層を知るのは 便利です。下の表記で、インデントは階層的構造を示しています。 ウィジェットクラスの名前は、まず、続くウィジェットインスタンスの名前 によって与えられます。
XCalc xcalc
Form ti or hp (the name depends on the mode)
Form bevel
Form screen
Label M
Toggle LCD
Label INV
Label DEG
Label RAD
Label GRAD
Label P
Command button1
Command button2
Command button3
and so on, ...
Command button38
Command button39
Command button40
アプリケーションリソース
rpn (Class Rpn)
rpn モードが使われるべきであることを指定します。デフォルトは、TI モードです。
stipple (Class Stipple)
バックグラウンドは点刻にすることを示します。 デフォルトは、白黒ディスプレイの場合は “ オン ” で、 カラーディスプレイの場合は “ オフ ” です。
cursor (Class Cursor)
ポインタの表現に使われるシンボルの名前です。 デフォルトは、”hand2 ”です。 アイコンの色を指定します。
関連事項
バグ
HP モードにおいて、5, ENTR, <- という順番で、キーを押したときに表示が クリアされなければならないが、クリアされない、というバグレポートがあります。
著作権
Copyright 1988, Massachusetts Institute of Technology.
権利と許可の声明文については X(1) を参照のこと。
著者
John Bradley, University of Pennsylvania
Mark Rosenstein, MIT Project Athena
NEWS-OSRelease 4.1C