とても使いやすい「逆ポーランド記法電卓」です
WHP32は、とても使いやすい「逆ポーランド記法電卓」です。
画面に10キーのボタンはありますが、キーボードから入力しても使用できます。
このソフトウェアのオリジナル作者に敬意を表し、このソフトウェアもフリーソフトとして提供しています。
例えば、「1+2」は、次のように入力します。
4段数字が表示されるうちの、一番下の欄(X欄)に答えが出ます。
これは、
「1」「⏎」「2」「+」
の順番で入力すると答えがでます(⏎をEnterキーとする)。
もっと複雑な計算の場合はどうでしょう。
たとえば「(3×4)+(6÷2)」は、() に対応した電卓なら普通の電卓でも計算はできますが、そうでない場合は面倒です。
逆ポーランド記法でも何通りかありますが、()は必要ありません。例えば次のように入力します。
4段数字が表示されるうちの、一番下の欄(X欄)に答えが出ます。
この式はそもそも、「3と4を掛け、それに6を2で割ったものを足す」という日本語で表現できます。
これを「3」「⏎」「4」「×」「6」「⏎」「2」「÷」「+」の順に入力することで答えが得られます(⏎をEnterキーとする)。
このように、日本語の語順と同じに入力すると計算できるため、日本人にとてもよく向いています。
Windowsの32ビット版と64ビット版をご用意しております。
Windows 11で動作確認していますが、Windows 10でも動作すると思います。それより古いもので動くかどうかは分かりません。
CPUがx86ではないWindows RTや、Windows Mobileなどでは動作しません。
古い32ビット版のみ、Windows XPおよびWindows Vistaでも動作しますが、サポート切れのOSですので、ご利用は動作保証外となります。また、最新版では修正されているバグが少し残っています。
かつて、NAG様がDelphiで作成し、フリーで公開していたWin16用の逆ポーランド記法電卓「WHP」がありました。
しかし16ビットアプリケーションです。Windows XPの時代が終わり、Windows 7以降へと移行する必要が平成26年に発生しましたが、どうせXPから7に変えるなら64ビットOSにしたいところ。しかし64ビットWindowsでは16ビットアプリが動作しません。
ですが、このWHPが使用できないと生活にかなり困りますので、64ビットOSへの移行に躊躇せざるを得ない状況もあるかもしれません。
そこで、このソフトウェアを32ビットアプリケーションとして作り直すことにしました。
このソフトウェアは、Delphiで作成されていたオリジナルのWHPとはプログラムは全く異なります(C++で書かれています)が、可能な限り同じ見た目と操作性を再現しつつ、更に改良を加えたものとなっています。
画面は変更されることがあります。
WHPにはあったフォントや画面の色を変える機能は省いています。エラー時の音のON/OFFは、オプション(O)メニューから設定できます。
色の変更機能については要望があれば対応を検討しますが、フォントについては桁数に応じた自動拡縮機能があるため実装が困難です。
計算機能は元のWHP相当ですが、将来的にはWindows標準の電卓にある程度の関数は実装しようかと考えています。
最新版はWindows 11用に作られています。
Windows 10でも動作すると期待されますが、どのくらいまで古いWindowsで動くのかは不明です。
内部ではWindows Vista以降で新設されたWindows APIなどを用いていますので、それより古いWindows (Windows XPなど)では最新版は動作しません。XPでは旧版をご利用下さい。
このソフトウェアは、無保証のフリーソフトです。
可能な限り不具合がないようつとめますが、万一このソフトウェアにより重大な計算誤りが生じ、損害が発生した場合でも、一切保証は致しません。
再頒布可能パッケージが不要なように実行ファイルを生成していますので、7zの中にある実行ファイルを適当な場所に置けばすぐ使えるはずです。
プログラムはC++で書かれていますので、.NET Frameworkなども必要としません。
バージョン0.19 (beta) (R6/08/07)
開発中のβバージョンです。
ウイルス等が混入していないことをMicrosoft DefenderおよびVisusTotalでチェック済みです。
まれにMicrosoft Defenderで「Trojan:Script/Wacatac.B!ml」という警告レベル重大のトロイの木馬として検知され自動削除されることがあるようですが、Microsoft Defenderのバグによる誤検知ですのでご安心下さい。
念のためGoogle社のVisusTotalでチェックしたところ、次の結果がでています。
75セキュリティーベンダーのうち1ベンダーが誤認し、それ以外の全て74は問題なし
75セキュリティーベンダーのうち2ベンダーが誤認し、それ以外の全て73は問題なし
誤検知しているところは、いずれも誤検知で有名な信頼性が低いセキュリティーベンダーのようです。
弊社としては、現状公開しているファイルは安全であると判断しています。
参考にして下さい。
(注意)Visual Studio 2013のランタイムが必要です
あらかじめランタイムをインストールしておいて下さい。
「コンピューターに MSVCP120.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」と表示され実行できない場合は、ランタイムライブラリーがインストールされていません。
Visual Studio 2013 の Visual C++ 再頒布可能パッケージから、使用するものに応じて、以下をダウンロードしてインストールしてください。
これをインストールしますと、他のVisual Studio 2013により作成されたプログラムも実行できるようになります。
バージョン0.17 (beta) (H28/08/25)
Windows XPで動作する最終バージョンです。
このバージョンの64ビット版はWindows 11では(おそらく10でも)動作しません。最新版をご利用下さい。
7zを任意の場所で展開し、含まれている実行ファイルを任意の場所に置いてご利用下さい。
今のところ、インストーラーはありません(強い要望があれば検討します)。
「C:\Program Files」の中に適当にフォルダーを一つ作り、その中に置くのがMicrosoft的には理想のようですが、セキュリティ等で面倒な場合、C:の直下に「C:\Application」などのフォルダーを作り、その中に置くのも良いかと思います。
このソフトウェアはレジストリーは使いません。
設定は、Windows XPの場合は「C:\Documents and Settings\(ユーザー名)\Application Data\MiraiCorp\WHP\WHP.INI」、Windows 11では「C:\Users\(ユーザー名)\AppData\Roaming\MiraiCorp\WHP\WHP.INI」に、INIファイルで記録されます。
なぜレジストリーではなく.INIなどというレガシーな仕様かというと、本家WHPの仕様に合わせているためです。
実行ファイルを削除してください。
不要であれば、上に書いた場所にあるINIファイルも削除してください。
以上でアンインストールできます。
画面位置を戻したい、記録したメモリーを消したい、などの場合は、初期化が可能です。
今のところ、報告されている不具合は最新版で修正されています。
不具合があればお知らせ下さい。
バージョン0.17 → 0.19 (※0.18は欠番)
バージョン0.16 → 0.17
バージョン0.15 → 0.16
現在は開発中のバージョンです。不具合、未実装機能など、様々存在します。
不具合を発見されましたら、お気軽にMisskeyやMastodonなどFediverseなSNSから @miraicorp@misskey.ioまたは@miraicorp@fedibird.com か、または電子メール (info@mirai-ii.co.jp宛)でお知らせ下さい。
可能な限り修正をするよう努力します。
オリジナルWHPにはなかった新機能が追加されています。
Pasteは、カンマ(,)は無視できます。
先頭より、指定したBASEで有効な数字までの範囲の文字列を採用します。16進数の場合、大文字・小文字は同一視します。
Pasteは、常に上書きとなります。入力中の値はスタック等には入りません。
現時点ではロケールは考慮していないため、小数点は常にピリオド(.)、区切りはカンマ(,)に固定しています。
4段の表示欄があり、下から上に向かうスタックとなっています。
新しいものが入る順に、X、Y、Z、T、となります。
つまり、最新の入力のほか、過去3つまでが保存されることになります。
キー入力した数字は、一番下のX欄に入ります。
ここでEnterすると、その値はスタックに積まれ、Yとなります。また、過去のYはZに、過去のZはTとなり、過去のTは消滅します。
この電卓は、大きく2種類、細かくは5種類の動作モードがあります。
REALとそれ以外の整数計算で大きく分かれます。
随時変更可能で、10進数と16進数の変換もワンタッチで可能です。
整数計算は、QW(64ビット)、DW(32ビット)、W(16ビット)、B(8ビット)で切り替えられます。全て符号ありの演算となります。また現時点ではオーバーフローチェックをしていません。
例えば10進数整数で演算結果がオーバーフローした場合、突如マイナスになったります。(例: Bで、100×2→ -56 )。これが困る場合、QWなど大きめのものを使うようにしてください。
(将来的にオーバーフローのチェック処理を入れる予定です)
REALモードでは、各種の三角関数が使用できます。その際の角度について、以下の3種類から選べます。
REALモードでは、数値の表示方法を、以下の3種類から選べます。
また、各モードごとに、小数点以下の桁数を選べます。
現在の値を保存するメモリー機能に対応しています。
メモリーは、0番から9番までで、10個存在します。
メモリーは、REALモード(実数計算)と、DEC/HEX/OCT/BINモード(整数計算)とで、別に用意されています。ご注意下さい。(つまり相互にやり取りはできず、また都合、総計で20個存在することになります)
REALモードでは、数学関数が使用できます。原則としてスタックからX欄を取り出し(popし)て関数を実行し、結果をスタックに積み(pushし)ます。(つまりX欄が演算結果で置き換わります)
※ Xが0または負数の状態で対数計算(LOGまたはLN)演算を実行すると虚数解となるためエラーとなります。
※ X=Y=0でY^X演算つまり00は解なしのためエラーとなります。
※ X<0つまり負数の平方根(SQRT)演算は虚数解となるためエラーとなります。
※ X=0の逆数(1/X)演算は0除算例外のエラーとなります。
※ X<0つまり負数の階乗(X!)演算は数学で未定義のためエラーとなります。
全て2項演算であり、「Y 演算子 X」の計算を実行します。
つまり原則としてスタックからXとYを取り出し(popし)て関数を実行し、結果をスタックに積みます(X欄に入ります)。
※ X=0の状態で除算(÷)を実行すると、無条件で0除算例外のエラーとなります。
REALモード以外では、論理演算が利用できます。
原則としてスタックからXとYを取り出し(popし)て関数を実行し、結果をスタックに積みます(X欄に入ります)。
メモリーは0から9まで10箇所あります。あらかじめ選んでおいてください。
弊社は必要になったためこのアプリを作り、既に実用段階に達していますが、保守する時間がなく、なかなか改良をすることができません。
そこで、このWHP32をオープンソース化することを計画しています。
誰も参加者がいないのにオープンソース化しても意味がないため、やりたいという方が数名集まった時点で、BitbucketまたはGitHubのいずれかにリポジトリを作りたいと考えています。
弊社はBitbucketを主に用いていてGitHubにはアカウントがありませんが、参加希望者の意向に応じてどこを使うかを決定します。
いずれも、必要に応じて検索して調べられれば十分だろうと思います。
原作者のNAG様を探しています。
公開前にメールを送信しましたが、返答がありませんでした。
元近所住民の方から引っ越し前の情報提供をいただきましたが、引っ越し先が不明とのことです。
弊社としては、可能な限り原作に忠実なソフトウェアを実現すべく長い時間をかけて開発を続けてきました。今後も、原作を毀損しないよう尽力する方針ですが、原作者のご意向も一度伺いたいと考えております。
消息をご存じの方は、お知らせ下さい。