関数電卓コラム

07/10/09 関数電卓のバグ(メモリRCLとラストアンサーの競合)

07/11/13補筆
11/07/04補筆

先日,宇都宮大学の井本先生より実に興味深いメッセージを頂いた.許可を得たので転載しよう.

遠藤先生

 宇都宮大学工学部応用化学科の井本と申します。

 そちらの電卓のホームページをたまたま訪れ,私と同じような苦労をしておられる
先生がおられるのを見て,こちらの情報もお伝えしようと思った次第です。

 「数式通り入力電卓の『ALPHA』キーに関する考察」で,カシオ・キャノン方式で
は,行頭で「RCL」「A」とすると,次に演算キーを押すと同時に,「A」がラストア
ンサーに置き換わる問題点を指摘しておられますが,この方式は次のような危険な問
題を引き起こします。たとえば,メモリーAに2がストアされているとします。ここで,
次のようなキー操作を行うと,予期せぬ結果をもたらします。

[RCL][A][+][3][=][STO][B]

こうすると,Bには,5がストアされることが期待されるのですが,実際には,8がストアされます。

 これについてキャノンのお客様相談口に伝えてみましたが,仕様であって,STOを
押すことにより,[=]を押すプロセスが走り,アンサーメモリーがリセットされるの
だというような説明でした。どうしてもそのような計算をしたければ,[RCL][A][←]
[+][3][=][STO][B]とやればよいという,ほとんど実用的とは思えない弁明でした。
この仕様はぜひ改良してほしいとは頼みましたが。したがって,最近は,カシオ・キ
ャノンの機種を使うときは,RCLを使わず,ALPHAを使うようにしています。(この問
題は,natural display型のカシオでは回避されています。)

 こちらで学生に配布している文書を添付いたします。マニアックな内容も少し含ん
でいて,興味を持たれる部分があると思います。なお,個人的には学生には簡単なプ
ログラマブル関数電卓を持たせてもよいと思うのですが,教員の中に,試験の時に,
他人に入力してもらったプログラムを使って解答する者が出てくるのではないかとい
うことで反対される先生がおられ,私の学科ではプログラマブル電卓は試験時は禁止
となっています。


------------------------
        井本 英夫
         宇都宮大学工学部応用化学科
         
------------------------


なるほど,CASIOのfx-991MSで,指摘されたとおりに打鍵すると確かにメモリBには8がストアされ,論理的に期待される動作とは違う.しかし,『これはかなり特殊な操作だから仕方ないんじゃないの?』と仰る方もいるかも知れない.では以下の例はどうだろう.

[1][+][1][=]     答え:2
[STO][A]        2がAに代入される
[2][×][3][=]     答え:6
[RCL][A][+][1][=] 答え:本来は3

ここで,答が7になる電卓がある.つまり,一部の電卓は,メモリの値を[RCL]で呼び出してそれをそのまま計算に使うことが出来ない,ということになる.なぜこのようなことが起こるかというと,4行目の計算を電卓がどう解釈するかを順を追っていけばわかる.

[RCL][A]でメモリAの内容を呼び出す.

ここで,表示はメモリAの内容を示す.続いて[+][1]を打鍵すると,表示はこうなる.

ここでAnsにはメモリAの内容でなく,直前の計算の答え,6が入っているというオソマツだ.上のような計算を行う状況は自然に起こりうる.従ってこれを「バグ」と言わず何と言おう.

井本先生によると,このバグは最近の機種では直っているという.では,バグがある機種はどれか.手持ちの電卓で調べてみた.

関数電卓の[RCL]機能のバグについての調査結果

メーカー     備考
CASIO fx-991s VPAM
  fx-4800P プログラム電卓
  fx-991W × SVPAM
  fx-350TL × SVPAM
  fx-991MS × SVPAM
  fx-912ES Natural Display
Canon F-720i  
F-788dx 脚注※※参照
  F-715S  
SHARP EL-509E  
  EL-520E  
BLT fx-350TL × CASIO fx-350TL
のコピー
HP 35s  

 

※◎の機種は,先日のコラムで述べたように[RCL]キーと[ALPHA]キーが完全互換なのでこの問題は原理的に発生しない.
※※井本先生の例題は不合格だが,私の例題はクリアする珍しい機種.

調査の結果,このバグがあるのはCASIOのSVPAM(第二世代の数式通り入力方式)電卓のみ,ということが分かった.それ以前のVPAM機も,Natural Display機も問題ないというのが興味深い.

07/11/13追記:Canon F-788dxを購入した動機は以下のような投書.

実は、客先でやって赤面したことがありますので、
CANON F-788dxについて報告いたします。

F-788dxでは、遠藤先生の
[1][+][1][=]     答え:2
[STO][A]        2がAに代入される
[2][×][3][=]     答え:6
[RCL][A][+][1][=] 答え:本来は3

確かにfx-570MSは7になり
F-788dxでは、問題なく3になるものの

井本先生の[RCL][A][+][3][=][STO][B]

では、F-788dxでも8になってしまいます。新機種は直っているのでしょうか。
実は、この仕様はSTOだけではなくM+にも影響されます。
このとき、何もここまでカシオをまねしなくても良いのに
変な仕様だなと感じたことを思い出しました。

購入してテストしたところ,やはり井本先生の例題はクリアできないことを確認.Canonの現行機種にもメモリRCLバグが存在する,と訂正する必要がある.

11/06/04追記:この点について,ある方から指摘を受けた(参照:「箱から文具をひとつかみ」).「F-788dxの場合,RCLのステップは正常に動作しているのだから,『[STO]機能のバグ』と言うべきではないか」と言うことだ.仰るとおりで,井本先生の問題と私の問題は同じようで全く異なるテストを行っているのだ.本件についての詳しい考察は最新のコラム「CASIO/Canonの[RCL],[STO]機能の歴史に関する考察」に記載されている.

と言うわけで,井本先生のテストを[RCL]機能テスト,私のテストを[STO]機能テストと再定義しよう.Canon F-788dxは,[RCL]機能のバグのみが修正され,[STO]機能のバグが修正されていない過渡的なモデルと言うことになる.

さて,手持ちのCanonの3機種は全て発売時期が異なるが,内部ソフトウェアはその都度更新されているようだ.F-720iはCASIOともSHARPとも違う独特の癖を持ったソフトウェアだ.お世辞にも使いやすいとは言えなかったが,F-788dxで大きく改善された.ところがこの操作性はメモリRCLの仕様角度入力の仕様数値積分操作など全てCASIOに準拠.ご丁寧にバグまで再現している.従ってF-788dxにはCASIOの血が入っていると考えるのが妥当だろう.ただし,CASIOのSVPAM機には無いアンドゥ機能が付いていたり,RCLのバグも半分は解消していたりと,Canonのオリジナリティが加えられていることがわかる.そして最新機種,F-715Sでは残ったバグも消滅している.

井本先生のお叱りの言葉が効いたのかな?

三大メーカーの現行機種のうち,メモリRCLのバグがあるのはF-788dxのみ.それも私の例題の様な,よくある場合では発現しないのでそれほど心配することはない,ということを強調しておこう.