WindowsCE PocketPC ChotCalculator v0.02 数式入力タイプの電卓ソフトです。Zaurus 用「ちょっと電卓」の移植に相当します。 キー入力自体は通常のソフトウエアキーボード等を使って行います。 演算は 10進演算ではなくC言語の浮動少数演算をそのまま使用しています。この方法 では内部で 2進数変換が発生するので、普通に売られている電卓や関数電卓の10進数 演算方式にくらべて演算誤差による精度落ちが若干発生しますので注意してください。 つまり、パソコンの一般的な実数演算と同じ精度になっています。 ●機能 ・四則演算(数式通り方式) ・数式入力方式、入力バッファの編集可能(ペンタッチ編集可能) ・連続計算対応(通常の電卓に近い操作) ・ラストアンサー機能 ・プレイバック機能(直前の演算で使用した式の再利用) ・メモリー機能(ラストアンサ−の他に26本) ・2/8/10/16進数演算機能(1つの式に混在可能) ・関数演算(一部暫定実装) ・入力には標準のソフトウエアキーボードを使用(記号入力画面推奨) ●対応機種 PocketPC および PocketPC 2002 動作確認は iPAQ (PocketPC)、GENIOe550 (PocketPC2002) でのみ行っています。 ●インストール 利用機種の CPU にあわせて、必要なパッケージをダウンロードしてください。 アーカイブ内の .CAB ファイルをそれぞれ PocketPC に転送し、PocketPC 上の explorer から実行してください。 chotcalc.ARM.CAB PocketPC ARM機種(iPAQ/GENIOe)、PocketPC2002全機種 chotcalc.MIPS.CAB PocketPC MIPS機種(E700/E750/G-FORT等) chotcalc.SH3.CAB PocketPC SH3機種 ●アンストール PocketPC の場合は設定画面の「アプリケーションの削除」上から削除してください。 PocketPC2002 では設定画面の「プログラムの削除」です。 ●簡単な使い方 起動後画面の上の方にテキスト入力エリアが現れます。ここに数式を入力してリター ンキーを押すと結果が表示されます。 式の入力にはソフトウエアキーボードを使います。ソフトウエアキーボードは 「ローマ字/かな」 に切り替えたあと、左下の「記号」を押した状態がおすすめです。 例えば 1980*1.05 のように入力し、リターンキー (右側の[←┘]キーのこと) を押すと計算結果が左上 に表示されます。操作は普通の電卓と同じです。 注意: 必ず半角で入力してください。全角で入力した文字は計算できません。 ●表示の詳しい見方と操作方法 ※A ※B ┌─────────────────────────┐ |┌─────────────────┬──┬──┐| ||結果の表示 │DEC │DEG || |└─────────────────┴──┴──┘| |┌───────────────────────┐| ||式入力エリア ※C || || || |└───────────────────────┘| | [COPY][LANS][ CLR ] | └─────────────────────────┘ ※D ※E ※F ※A 演算結果の表示切替ボタン。 BIN: 2進数で表示(下位32bit分のみ) OCT: 8進数で表示(下位32bit分のみ) DEC: 10進数で表示(デフォルト) HEX: 16進数で表示(下位32bit分のみ) ※B 角度単位の切替え DEG: DEGREE RAD: RADIAN GRAD: GRAD ※C 計算する式を入力するエリア ※D [COPY] 演算結果をクリップボードにコピーします。(未実装) ※E [LANS] ラストアンサ。直前の演算結果を挿入します。 ※F [CLR] クリアキー。入力エリアをクリアします。 ●演算操作の例 リターンキー [←┘] を [RET] と表記します。 ・連続計算 キー操作 式入力エリア 結果表示 ------------------------------------------------------------- (1) 4980[*]1.05[RET] 4980*1.05 5229 (2) [+]15000[RET] 5229+15000 20229 (1) 通常の計算 (* はかけ算です) (2) (1)の結果に対して続けて計算 ・数式入力計算 キー操作 式入力エリア 結果表示 ------------------------------------------------------------- (1) 80[*]5[+]75[*]8[RET] 80*5+75*8 1000 (2) [+](67[+]99)[*]3[RET] 1000+(67+99)*3 1498 (3) [→][BS]7[RET] 1000+(67+99)*7 2162 (1) 数式通り計算 (2) 連続して括弧計算 (3) 最後の数値だけ変えて再計算 ・16進数混在計算 キー操作 式入力エリア 結果表示 ------------------------------------------------------------- (1) [#]FF[*]85[RET] #ff*85 21675 (2) [HEX] #ff*85 54AB (1) 0xFF × 15 の計算 (2) (1)の答えを 16進数で表示してみる ・ラストアンサー キー操作 式入力エリア 結果表示 ------------------------------------------------------------- (1) 2980[*]1.05[RET] 2980*1.05 3129 (2) 20000[-][LANS][RET] 20000-3129 16871 (1) 通常の計算 (2) 20000から前回の計算結果を減算 ・メモリ計算 キー操作 式入力エリア 結果表示 ------------------------------------------------------------- (1) 2980[*]1.05[RET] 2980*1.05 3129 (2) [=][:]A[RET] 3129=:A 3129 (3) 25[*]A[RET] 25*A 78225 (4) 58[*]A[RET] 58*A 181482 (5) A[RET] A 3129 (6) B[:][=]A[RET] B:=A 3129 (1) 通常の計算 (2) (1)の結果を変数Aに保存 (関数電卓の[STO]) (3) 25倍してみる (4) 58倍してみる (5) 変数A の値を読み出してみる (関数電卓の[RCL]) (6) 変数B に 変数Aの値をコピーする ・関数計算 キー操作 式入力エリア 結果表示 ----------------------------------------------------------------- (1) pi[RET] pi 3.14159265358979 (2) sqrt(2)[RET] sqrt(2) 1.41421356237309 (3) 2[!][^]6[RET] 2!^6 64 (4) cos(180)[RET] cos(180) -1 (1) piの値を表示してみる (2) √2 の表示 (3) 2の6乗を計算する (4) cos(180)の計算 ●式演算詳細 ・定数 10進数定数 実数表記 (指数記号 E 使用可能、大文字小文字区別無し) (例) 33.5*2.8e3 16進数定数 # または $H を先頭につける、大文字小文字区別無し (例) #3AFF 8進数定数 $O を先頭につける、O と o の大文字小文字区別無し (例) $o137 2進数定数 $B を先頭につける、B と b の大文字小文字区別無し (例) $b100001 ・二項演算子 + 加算 - 減算 * 乗算 / 除算 % 余り = 比較演算(条件が成り立てば1、不成立で0、以下同じ) < 比較演算 > 比較演算 >= 比較演算 <= 比較演算 != 比較演算 << シフト演算子 >> シフト演算子 & bit毎の論理積 | bit毎の論理和 ^ bit毎の排他的論理和 && 論理積 || 論理和 !^ 累乗 ・単項演算子 - 符号反転 ~ bit反転 ! 論理反転 ・代入演算子 := 変数に代入(変数は式の左に書く、左辺)。式の値は代入し た結果になります。 (例) A:=99+3*7 =: 変数に代入(変数は式の右に書く、右辺)。連続演算に便利 なので、通常こちらを使います。式の値は代入した結果に なります。 (例) 99+3*7=:B ・カンマ演算子 , 複数の式を区切ります。一番最後の式の結果を返します。 途中の式の結果は内部の演算用一時記憶スタックに保存さ れます。 ・変数 A〜Z アルファベット1文字で指定。最大26個。大文字小文字の 区別無し。 ・関数 大文字小文字区別なし、角度は radian のみ pi 定数PI sin(n), cos(n), tan(n) 三角関数 asin(n), acos(n), atan(n), atan2(n,m) 逆三角関数 log(n), ln(n), exp(n) 対数指数関数 pow(n,m) nのm乗 sqrt(n) 平方根 floor(n) n以下最大の整数 ceil(n) n以上最小の整数 hypot(n,m) 点(n,m)までの長さ sinh(n), cosh(n), tanh(n) 双曲線関数 ・その他 (〜) 括弧によって演算順序を変更可能 (例) (3+4)*5 SPACE 演算子の前後にある空白は無視します。 ・演算の優先順位 高 (〜) 括弧内の演算 ↑ - 単項演算子 | ~ ! !^ 単項演算子 | * / % 乗除余り | + - 加減算 | << >> シフト演算 | = != < > <= >= == !> !< 比較演算 | & | ^ &| bit演算 | && || 論理演算 ↓ := =: 代入演算子 低 , カンマ演算子 ・数値範囲 扱える数値範囲は 64bit 浮動少数値 1.7E-308〜1.7E+308 仮数部 15桁(53bit) 指数部308桁 になります。メモリーもすべて 64bit です。 16/8/2進数 の場合、内部演算は上記の通りですが、結果を表示 する場合だけ 32bit整数分(少数以下切り捨て) のみとなります。 置数は 32bit に制限されません。そのため、以下の演算は切り捨 てられること無くすべての値が有効です。 (例) #FFFFFFFF×10 以下の6つの整数用演算子は、演算の性質上少数以下を切り捨てた 32bit 整数に変換してから計算します。 & | ^ << >> ~ ●計算時のさまざまな技 ・代入演算子 代入も演算子なので、普通の式の途中で使えます。 (例) (A:=10)+8*A [RET] 90 ・変数を使った擬似繰り返し計算 演算後のステータスモード([RET]を押した直後)でさらに [RET] キーを押すと連続 計算ができます(プレイバック操作を省略できる)。変数と組み合わせると繰り返し 計算ができます。 (例) 操作 結果表示 --------------------------------------------- A:=A+1 [RET] 1 [RET] 2 [RET] 3 さらにカンマ演算子と組み合わせる (例) 操作 結果表示 --------------------------------------------- A:=A+1,A*10+8 [RET] 18 [RET] 28 [RET] 38 ・関数の括弧の省略 すべての引数が式を含まない単一の値であるとき、関数の括弧を省略することがで きます。ただし、式や関数名の区切りが不明確になるので、各要素はスペースで区 切る必要があります。 (例) 操作 結果表示 --------------------------------------------- cos pi [RET] -1 pow 2 8 [RET] 256 ・関数電卓タイプの入力順 式入力エリア先頭では、例外的に関数電卓タイプの入力順(先に数値を入力する)を許 容します。(スペース区切り) (例) 操作 結果表示 --------------------------------------------------- 3 sqrt*10[RET] 17.3205080756887 例えば、前回の計算結果に関数を重ねたいとき(関数電卓順のキー操作)は、次のよ うにします。スペースは、数値と関数名を区切るために必要です。 (例) 操作 結果表示 --------------------------------------------------- 3*5[RET] 15 [SPACE]sqrt[RET] 3.87298334620741 ・逆ポーランド演算 カンマはスタックを扱う演算子なので、擬似的に逆ポーランド表記の演算を行うこ とができます。([RET]の直前にはカンマを置いてはいけない) が、可能なだけで使 い道はほとんどありません。 (例) 操作 結果表示 --------------------------------------------------- 1 3 +, 8 - [RET] -1 80 4 *, B =: [RET] 320 (Bに代入) ・隠し演算子 &| BitPattern C言語表記で (a & b) == b と等価 !< Max C言語表記で (a > b) ? a : b と等価 !> Min C言語表記で (a < b) ? a : b と等価 ●未実装 ・エラー判定が甘い ・メモリのセーブ機能がない ・ソフトウエアキーボードが最初から開かない ●使用条件 プログラム、ドキュメント、付属データなど、これらソフトウエアの著作権は作者で ある小笠原博之が保有しています。このソフトウエアが原因で問題や障害が生じても、 作者は一切保証を行わず、作者に責任も無いものとします。重要なデータはあらかじ めバックアップを取り、利用者の自己責任において使用してください。内容物を改変 したものを無断で配布することを禁止します。利用に当たっては、使い方(説明書)を よく読んでからお使いください。プログラムはフリーソフトウエアです。 ●連絡その他 関数電卓が欲しかったので、Zaurus 時代に作成していた「ちょっと電卓」を移植しま した。画面自体は寂しいですが機能はそれなりに入っています。バージョンアップ等 については以下のページを参照してください。 http://www.vector.co.jp/authors/VA004474/wince/wince.html 小笠原博之 oga@art.udn.ne.jp http://www.vector.co.jp/authors/VA004474/