その他のグラフ関数電卓は、プログラム実行のためにはプログラムモードに入る必要がある。プログラムを強制終了させると、プログラム編集画面になることから、知らずにプログラムを変更してしまう事故の可能性がつきまとう。(およびその他のグラフ関数電卓)では、細かい動作仕様が異なっている。グラフ関数電卓に搭載されている旧来の命令の仕様は、非常に使いづらく、旧来の命令をこれ以上使うなと言っているようである。使い勝手の良い仕様にチューニングされている。バランスがよく考えられている。最初から用意されている変数は、電卓内の保存されている全てのプログラムで共有される。究極のグローバル変数仕様と言える。一般にグローバル変数は弊害多いように言われるが、電卓プログラムに関して言えば、異なるプログラムで変数を共有できるメリットも有る。▍文字列処理fx-5800Pは、文字列変数が用意されていないので、文字や文字列の処理ができない。数値計算用の関数電卓の延長線にあるための割り切った仕様なのだろう。最近のCASIOの関数電卓全般に言えることだが、3桁区切りの表記ができない。桁数の大きな数字をパッと認識しづらいのはとても不便だ。安い金融電卓などには搭載されている機能なので、ハイエンドと言える関数電卓で3桁区切りが無いのは理解しがたい。いった指数表示を使うしかない。3桁区切り記号が戻ってきた。後継機種でも3桁区切り記号の実装が期待される。追記]プログラム上で3桁区切り出力を行うための汎用サブルーチンを公開している。3桁区切り出力(汎用サブルーチン)・記録(データ保存)記録(データ保存)の機能は、ほとんど無い。パソコンなどにソースコードを保存することは出来ない。ソースコードをバックアップするには、専用ケーブル(別売り)を用いてfx-5800P同志をリンクして、プログラム単位でコピーするのことは出来る。究極のスタンドアローン仕様だ。この仕様はなんとかして欲しい。私は、ソースコードと色々な説明を書き込んでエクセルファイルに保存している。PCリンクするツールを公開なさった。遙かに役立つようになった。使うと、変数の数は実質無制限になる。プログラム中で変数領域の確保と解放ができる。変数領域は最大28500バイトのプログラム領域から切り出す仕様だ。電卓のプログラムでそれほど多くの変数を使うことは、あまり無いだろう。]といった使い方のできる配列は、異なる処理の記述を共通化できるので、ソースコードの記述量の節約に役立つ。配列変数へのアクセスは通常変数の4倍程度と遅い。配列変数へのアクセス速度があまりに遅いので、高速化が必要なプログラムでは、配列変数へのアクセスの回数を極力減らすような工夫を行っている。▍良いユーザーインターフェースを作れる可能性fx-5800Pは16桁x4行の液晶ディスプレイが搭載されている。GetkeyコマンドとLocateコマンドにより、電卓としては広い画面を活かして、使いやすいユーザーインターフェースを実現できる点が、最大の特徴だと思う。仕様が不可欠でもある。フリップタイプのハードカバーは、ヒンジが容易に壊れるという明らかに設計上の欠点がある。カシオは一度も対応していない。良い製品なのにとてもこの欠点は非常に残念だ。その後、以外に安価に修理対応できることを確認している。ヒンジの修理だけでなく、ほぼ新品の外観にリニューアルできる。3Pケーブルでデータ転送するしかない。この欠点に対して有志の方がPCリンクのハードウェアとソフトウェアを開発され、希望者に頒布されている。最大の欠点が解消された。PCリンク可能になった以下、言語使用をみてゆく。1.入力fx-5800Pでは、入力の方法が2種類準備されている。Getkeyは、非常に有用だと思う。・入力を待つ・[EXE]キーが押されることで入力が確定されると言う動作を行う。[EXE]キーで確定されるまでは、関数電卓として搭載されている殆どすべての計算を行えることは、入力命令の最大の特徴だと思う。(Σ)....などなど、1行で記述できる計算ならは何でも使える。[EXE]キーを押すと、その計算結果が確定され、入力が終了する。プログラムの用途によっては、非常に強力な機能を何の苦労もなく使えるわけだ。入力命令は、[EXE]キーによる確定が必要なので、逆に確定キーを押すのが煩わしい時には、Getkeyを使う。細かい動作が異なり、非常に使いにくいことがある。他のグラフ関数電卓よりも優れている。プログラム実行中にどのキーが押されたかを知るためのコマンドだ。電卓の付いている全てのキー(但し[AC]キーは除く)を区別して、それが押されたことが分かる。Then<何かの処理>IfEndと書くと、「キーコード34のキーが押されたら、(直ちに)<何かの処理>を実行しろ」という処理を意味する。[EXE]キーによる確定は不要だ。[DEL]キーには、キーコード34が割り振られているわけだ。[AC]キーを除き、全てのキー、例えば矢印キーなどが押されたことを検出できる。メニューから項目を選択させるような処理には、メニュー番号を押せばスグにその処理へ移行して欲しい。矢印キーの上下左右のキーを押して表示を変えるような目的では、なおさら直ちに反応しなければ意味がない。コマンドが実行される必要がある。繰り返し実行されるようにプログラムを記述すれば良い。2.データ処理データ処理と言う言葉は非常に漠然としているが、ここでは、入力されたデータを元に望む出力を得るための処理とする。データ処理はプログラムの核となる部分だ。必要最低限な機能が揃っている。当ブログでは、実用的なプログラムやちょっとしたアクションゲームを作れる事を紹介している。その程度の機能はあると言うことだ。具体的な機能の一部を紹介する。IfEnd二者択一で、処理内容を変える時に使う。条件判定に変数を使う時、変数がゼロの時は偽(FALSE)で、それ以外は真(TRUE)となる。いう記法が可能なので、可読性を確保できる。[処理]:IfEndと同等の処理を行う際、[条件]⇒[処理]と記述できる。この命令の最大の利点は、その処理速度にある。