ちょっと電卓3 v3.0.3 数式入力タイプの関数電卓です。 Zaurus や WindowsMobile (WindowsCE,PocketPC) でリリースしていた ちょっと電卓 (ChotCalculator) の Android 版です。 ・四則演算 ・数式入力方式 ・プレイバック ・連続計算 ・ラストアンサー ・メモリー (26本) ・ヒストリ (マルチラインプレイバック) ・関数演算 ・2/8/10/16進数混在演算 ・32bit/16bit 浮動少数点の RawBit 変換 ・横画面対応 ・キーリピート対応 ●Keyboard (通常版) [Normal] +-----+-----+-----+-----+-----+-----+ |2ndF | sin | cos | tan | ln | log | +-----+-----+-----+-----+-----+-----+ | y^x | sqrt| , | pi | e | STO>| +-----+-----+-----+-----+-----+-----+ | up | dw | <| | |> | ( | ) | +-----+-----+-----+-----+-----+-----+ +------+------+------+------+------+ | 7 | 8 | 9 | BS | CL | +------+------+------+------+------+ | 4 | 5 | 6 | * | / | +------+------+------+------+------+ | 1 | 2 | 3 | + | - | +------+------+------+------+------+ | 0 | . | Exp | Ans | = | +------+------+------+------+------+ * 2ndF = shift * up /dw = history [2ndF Shifted] +-----+-----+-----+-----+-----+-----+ |2ndF |asin |acos |atan | exp | h | +-----+-----+-----+-----+-----+-----+ | HEX | 0x | 0o | 0b | DRG | | | < | > | +-----+-----+-----+-----+-----+-----+ +------+------+------+------+------+ | A | B | C | DEL | CL | +------+------+------+------+------+ | D | E | F | AND | mod | +------+------+------+------+------+ | X | Y | Z | OR | XOR | +------+------+------+------+------+ | W | SPC | n! | Not | = | +------+------+------+------+------+ * h = Hyperbolic function : [h][sin] => hsin( * DRG = Angluer Unit : Degree, Radian, Grad * 0x/0o/0b = Hex,Oct,Binary prefix ●Small Keyboard (Standalone SmartWatch 版 ChotCalc ZW) [Normal] +-------+-------+-------+-------+ | 7 ( | 8 ) | 9 , | BS/C | +-------+-------+-------+-------+ | 4 ST> | 5 Pi | 6 e | * / | +-------+-------+-------+-------+ | 1 SQR | 2 ^ | 3 Ans | + - | +-------+-------+-------+-------+ | 0 E | . | = | SF/M | +-------+-------+-------+-------+ * Click : 左側の文字入力 * LongClick : 右側の文字入力 * [BS/C] : Click=[BS], LongClick=[CL] * [SF/M] : Click=[Shift], LongClick=[Menu] [Shifted] +-------+-------+-------+-------+ | A 0x | B | C , | BS/C | +-------+-------+-------+-------+ | D ]A[=] 3129→A 3129 (3) 25[×]A[=] 25×A 78225 (4) 58[×]A[=] 58×A 181482 (5) A[=] A 3129 (6) B[2ndF][ 比較 <= 比較 >= 比較 !< min (値の小さい方を選択) !> max (値の大きい方を選択) && 論理積 || 論理和 & bit 毎の論理積 | bit 毎の論理和 |^ bit 毎の排他的論理和 << bit 左シフト >> bit 右シフト ・単項演算子 - 符号反転 ~ bit 反転 !! 論理反転 ! 階乗 ・三項演算子 ? : "expr ? expr1 : expr2" の形式で expr が 0でない場合 expr1 0 の場合は expr2 の値を選択。 ・代入演算子 ← メモリー(変数)に代入します。 memory ← expr メモリーは左側(左辺)に記述します。 式の値は代入した結果になります。 '←' の代わりに ':=' を使うことが出来ます。 → メモリー(変数)に代入します。 expr → memory メモリーは右側(右辺)に記述します。 式の値は代入した結果になります。 '→' の代わりに '=:' を使うことが出来ます。 ・カンマ演算子 , 複数の式を区切ります。一番最後の演算結果を返します。 途中の式の結果は内部スタックに保存します。 ・メモリー (変数) A~Z アルファベット1文字で指定します。最大26個。 大文字小文字の区別はありません。 ・関数 関数名に大文字小文字の区別はありません。 pi π e_ e 定数 pi, e ans 前回の演算結果 sin(x), cos(x), tan(x) 三角関数 asin(x), acos(x), atan(x), atan2(x,y) 逆三角関数 log(x), ln(x), exp(x), exp2(x), pow(x,y) 対数指数関数 sqrt(x), cbrt(x) 平方根,立方根 tgamma(x), lgamma(x), fact(x) ガンマ関数,階乗 floor(x), ceil(x), int(x), round(x) 整数変換 fract(x) 少数部 round2(x,y) 任意桁丸め込み abs(x), min(x,y), max(x,y) 絶対値, 最小値, 最大値 deg(x), dms(x) 60進数変換 sinh(x), cosh(x), tanh(x) 双曲線関数 asinh(x), acosh(x), atanh(x) 逆双曲線関数 hsin(x), hcos(x), htan(x) 双曲線関数 (同じ) hasin(x), hacos(x), hatan(x) 逆双曲線関数 (同じ) hypot(x,y), hypot3(x,y,z) 点までの距離 rand(x) 乱数 ftobit(x), bittof(x) 単精度浮動小数点のRawBit変換 htobit(x), bittoh(x) 半精度浮動小数点のRawBit変換 後ろに式が続かない場合は後ろの閉じ括弧を省略できます。 例 「sin(180」 関数電卓順の前置式演算も可能 例 「180 sin」 双曲線関数 sinh~ と hsin~ は同じものです。 'h' で始まる関数名は [h] ボタンを利用して入力することが出来ます。 例 [2ndF][h][sin] ==> "hsin(" ・角度単位 三角関数で使用する角度単位を変更できます。 [2ndF][DRG] またはメニューから選択します。 Degree, Radian, Grad の 3種類。 ・表示モード 結果の表示方法を 10進数(3通り), 16進数, 8進数, 2進数から選択できます。 複数の操作方法があります。 ・表示結果の長押し ・メニューを呼び出して表示モードを選択 ・[2ndF][HEX] で 16進数への切り替え 10進数 少数表記と指数表記の混在 10進数 固定少数 少数表記のみ 10進数 指数表記 指数表記のみ 16進数 0x を付けて 16進数で表示 8進数 0o を付けて 8進数で表示 2進数 0b を付けて 2進数で表示 ・RawBit 変換 32bit 単精度浮動小数点数及び、16bit 半精度浮動小数点数の メモリ上の値を調べることが出来ます。 3D プログラマのデバッグ用など。 32bit 単精度 例 ftobit(1.0) ==> 0x3F800000 例 bittof(0xC0000000) ==> -2.0 16bit 半精度 例 htobit(1.0) ==> 0x3C00 例 bittof(0xC000) ==> -2.0 ・演算の優先順位 高 (~) 括弧内の演算 ↑ ! 階乗 | - 符号反転 | ~ !! ^ 単項演算子,累乗 | × ÷ % * / % 乗除算 | + - 加減算 | << >> シフト演算 | = != < > <= >= == !< !> 比較演算 | & | |^ bit演算 | && || 論理演算 | ? : 三項演算子 ↓ ← → := =: 代入演算子 低 , カンマ演算子 ・演算子の注意点 ◎同一演算子の結合 演算子には優先順位がありますが、同じ優先度の演算子が結合する場合 左から右に評価される点に注意してください。 「-4!」は '-' よりも '!' の方が優先順位が高いために 「 -(4!) 」と評価されます。 「2^3^4」は優先順位が同位なので「(2^3)^4」と評価されます。 ◎乗算演算子 乗算演算子を省略することは出来ません。 "2*A" を "2A" のように省略できないので注意してください。 現在のパーサーでは "2A" と書いてもエラーになりません。 間違えやすいので特に注意してください。 なおこの場合 2 を無視して A の値が出力されます。 ◎短絡評価について 他の言語と異なり && || や ?: 演算子は常にすべての式を評価します。 短絡評価にならないので、どれかの演算でエラーが発生した場合 式全体がエラーを返す可能性があります。 ・演算範囲 C言語の 64bit 倍精度浮動小数点(IEEE754)をそのまま使用しています。 bit演算は 64bit で行われますが、入出力時に倍精度浮動小数点数に 変換されるため、表現可能な範囲はおよそ 51bit 前後となります。 ・演算誤差 64bit の倍精度浮動小数点数をそのまま使用しているため、演算には さまざまな誤差が生じます。 10進数のまま演算を行っている市販の関数電卓よりも劣りますので、 誤差や演算精度に関しては十分理解の上ご利用ください。 単純な演算でも、小数値では 2進数と 10進数の相互変換時に誤差が 生じる可能性があります。 ・エラー判定 記述の自由度が高い反面、エラー判定甘いので注意してください。 ●計算時のさまざまな技 ・代入演算子 C言語のように代入も演算子なので、普通の式の途中で使えます。 (例) (A←10)+8×A [=] 90 ・メモリーを使った擬似繰り返し計算 演算後のステータスモード([=]を押した直後)でさらに [=] キーを押すと連続計算 ができます(プレイバック操作を省略できる)。 メモリーと組み合わせると効率的に繰り返し計算ができます。 (例) 操作 結果表示 --------------------------------------------- A←A+1 [=] 1 [=] 2 [=] 3 さらにカンマ演算子と組み合わせる (例) 操作 結果表示 --------------------------------------------- A←A+1,A×10+8 [=] 18 [=] 28 [=] 38 ・関数の括弧の省略 すべての引数が式を含まない単一の値であるとき、関数の括弧を省略することがで きます。ただし、式や関数名の区切りが不明確になるので、各要素はスペースで 区切る必要があります。 (例) 操作 結果表示 --------------------------------------------- cos π [=] -1 pow 2 8 [=] 256 ・関数電卓タイプの入力順 関数電卓タイプの入力順(先に数値を入力する)でも演算することが出来ます。 スペースかカンマで区切ります。 (例) 操作 結果表示 --------------------------------------------------- 3 sqrt×10[=] 17.3205080756887 2,8pow[=] 256 前回の計算結果に関数を重ねたいとき(関数電卓順のキー操作)に、 次の操作も可能です。スペースは、数値と関数名を区切るために必要です。 (例) 操作 結果表示 --------------------------------------------------- 3*5[=] 15 [SPC]sqrt[=] 3.87298334620741 ・逆ポーランド演算 カンマはスタックを扱う演算子なので、擬似的に逆ポーランド表記の演算を行うこ とができます。([=]の直前にはカンマを置いてはいけない) が、可能なだけで使い道はほとんどありません。 (例) 操作 結果表示 --------------------------------------------------- 1 3 +, 8 - [=] -4 80 4 ×, B → [=] 320 (Bに代入) ●バグ まだバグが多数含まれている可能性があります。 予めご了承ください。 小笠原博之 flatlib.jp