ユーザ用ツール

サイト用ツール


app:chotcalc

ChotCalculator / ちょっと電卓 v3

説明書

概要

数式入力タイプの関数電卓です。

  • 数式入力方式
  • 四則演算、 関数演算
  • 連続計算
  • ラストアンサー + メモリー (26本)
  • ヒストリ (マルチラインプレイバック)
  • 2/8/10/16進数混在演算
  • 32bit/16bit 浮動少数点の RawBit 変換
  • Key repeat, 横画面(Landscape), Tablet 対応

メモリやヒストリ、入力バッファの内容は自動的に保存されます。ヒストリは [↓][↑] キーで呼び出すことができます。

以前 Zaurus や WindowsMobile (WindowsCE,PocketPC) でリリースしていた ちょっと電卓 (ChotCalculator) の Android/iOS 版です。 まだバグが含まれている可能性があります。

Android 版

関数及びメモリー一覧を ActionBar から直接呼び出すことができます。 Zaurus や WindowsCE 版同様システムのキーボードを利用できるようになっていますが、あまり必要無いかもしれません。

Android SmartWatch 版

画面サイズ 1.5 inch 前後の小さい画面に合わせて操作方法や表示を調整しています。 ボタンの長押しで別の機能になります。 右下 [SF/M] の長押しでメニューが開きます。

SmartQ ZWatch など、直接アプリケーションをインストールできる Android 搭載の Smart Watch で動作します。 Sony の SmartWatch2 SW2 では使用できませんのでご注意ください。

iOS 版

iPhone/iPod touch では関数とメモリー一覧が左右のスライドメニューに入っています。 iPad ではスライドせずに画面内に表示されます。

メモリーの長押しで直接 Last Answer の登録や加減算ができるようになっています。

更新履歴

  • v3.0.3 : アイコン変更。display の hold で表示切り替えが可能になった。少数表示形式の改良。固定少数、指数表記切り替えの追加。SmartWatch 版 ChotCalc ZW の追加。
  • v3.0.2 : 消費メモリの削減と最適化。SDK 更新。ARMv7A の hard-float 対応。Playback (History) Menu 追加。DEGRAD/Hex sign の context menu 追加。10進数(DEC) 時は mode symbol を消すようにした。
  • v3.0.1 : deg/dms 関数のバグ修正。結果 display の hold で clipboard へ copy できるようになった。

キーボードレイアウト

通常版 (Android/iOS)

SmartWatch (Android SmallScreen) SmartQ ZWatch

操作方法の例

・連続計算

        キー操作                式入力エリア            結果表示
        -------------------------------------------------------------
  (1)   [CL]4980[×]1.05[=]     4980×1.05               5229
  (2)   [+]15000[=]             5229+15000              20229

        (1) 通常の計算
        (2) (1)の結果に対して続けて計算



・数式入力計算 (+ プレイバック)

        キー操作                        式入力エリア    結果表示
        -------------------------------------------------------------
  (1)   [CL]80[×]5[+]75[×]8[=]        80×5+75×8      1000
  (2)   [+](67[+]99)[×]3[=]            1000+(67+99)×3  1498
  (3)   [<][BS]7[=]                    1000+(67+99)×7  2162

        (1) 数式通り計算
        (2) 連続して括弧計算
        (3) 最後の数値だけ変えて再計算 (プレイバック)



・16進数混在計算

        キー操作                              式入力エリア    結果表示
        ---------------------------------------------------------------
  (1)   [CL][2ndF][0x][2ndF]F[2ndF]F[×]85[=]    0xFF×85        21675
  (2)   [2ndF][HEX]                              0xFF×85        54AB
  (3)   [2ndF][HEX]                              0xFF×85        21675

        (1) 0xFF × 15 の計算
        (2) (1)の答えを 16進数で表示する
        ※ もう一度 [2ndF][HEX] で 10進数に戻ります
        ※ 'F' の文字は [2ndF][F] と入力しますが省略しています。



・ラストアンサー
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        キー操作                式入力エリア            結果表示

  (1)   [CL]2980[×]1.05[=]     2980×1.05               3129
  (2)   20000[-][Ans][=]        20000-3129              16871

        (1) 通常の計算
        (2) 20000から前回の計算結果を減算



・メモリ計算

        キー操作                     式入力エリア         結果表示
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  (1)   [CL]2980[×]1.05[=]            2980×1.05            3129
  (2)   [ST>][Mem]A[=]                 3129→A               3129
  (3)   25[×][Mem]A[=]                25×A                78225
  (4)   58[×][Mem]A[=]                58×A               181482
  (5)   [Mem]A[=]                      A                     3129
  (6)   [Mem]B[2ndF][<ST][Mem]A[=]     B←A                  3129

        (1) 通常の計算
        (2) (1)の結果をメモリーAに保存 (関数電卓の[STO])
        (3) 25倍してみる
        (4) 58倍してみる
        (5) メモリーA の値を読み出し (関数電卓の[RCL])
        (6) メモリーB に メモリーAの値をコピー



・関数計算

        キー操作                        式入力エリア    結果表示
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  (1)   [CL][π][=]                     π              3.14159265358979
  (2)   [CL][√]2)[=]                   sqrt(2)         1.4142135623731
  (3)   2[y^x]6[=]                      2^6             64
  (4)   [√][=]                         sqrt(64.0       8
  (5)   [CL][cos]180[=]                 cos(180         -1

        (1) pi の値を表示してみる
        (2) √2 の表示
        (3) 2の6乗を計算する
        (4) (3) の結果に関数を適用する (連続計算)
        (5) cos(180)の計算 ※

        ※ 後ろに式が続かない場合閉じ括弧 ')' を省略できます

応用例

・代入演算子

  C言語のように代入も演算子なので、普通の式の途中で使えます。
        (例)
                (A←10)+8×A [=]                90


・メモリーを使った擬似繰り返し計算

  演算後のステータスモード([=]を押した直後)でさらに [=] キーを押すと連続計算
  ができます(プレイバック操作を省略できる)。
  メモリーと組み合わせると効率的に繰り返し計算ができます。

        (例)
                操作                    結果表示
        - - - - - - - - - - - - - - - - - - - - - - -
                A←A+1 [=]              1
                [=]                     2
                [=]                     3

  さらにカンマ演算子と組み合わせる

        (例)
                操作                    結果表示
        - - - - - - - - - - - - - - - - - - - - - - -
                A←A+1,A×10+8 [=]      18
                [=]                     28
                [=]                     38

仕様詳細

・定数

    10進数定数 (指数記号 E 指定可能。大文字小文字の区別なし)
        例  33.5×2.8E3

    16進数定数  先頭に '#' または '0x' をつける。
        例  0x3FAA

    8進数定数   先頭に '0o' をつける。
        例  0o1337

    2進数定数   先頭に '0b' をつける。
        例  0b100001

    指数記号や接頭辞、16進数含めて大文字小文字の区別はありません。



・二項演算子

        +       加算
        -       減算
        ×      乗算  ('*' も使用可能)
        ÷      除算  ('/' も使用可能)
        %       余り  ('%' も使用可能)
        ^       累乗

        =       比較 (条件成立で 1, 不成立で 0, 以下同じ)
        !=      比較
        <       比較
        >       比較
        <=      比較
        >=      比較
        !<      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進数への切り替え (16進数←→10進数切り替えのみ)

                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進数の相互変換時に誤差が
	生じる可能性があります。


・エラー判定

        記述の自由度が高い反面、エラー判定甘いので注意してください。

問題点他

すべての関数を検証したわけではないので、結果にはまだ間違い等が含まれている可能性があります。

ソフトキーボードの Enter キーでも演算できるようになっていますが、言語設定を日本語以外に変更するとうまく動かない場合があります。

app/chotcalc.txt · 最終更新: 2014/05/08 22:45 by oga