in pocket : ポッケの中のおもちゃ

ポッケの中のおもちゃ

ポッケの中のおもちゃ…

Pythonが動くグラフ関数電卓 CASIO fx-CG50

Micro Pythonが動作する関数電卓 CASIO fx-CG50 を購入しました。
今までは関数電卓代わりに 学生時代に使ってた学習用ポケコン SHARP PC-G811 を使っていましたが、さすがに計算の桁数や使い勝手に限界を感じたので最近の関数電卓に乗り換えしたわけです。

と言っても、関数電卓になじみのない方が多いと思いますので、何が面白いの? という感じですよね。

CASIO fx-CG50 グラフ関数電卓

CASIO fx-CG50 が、グラフィック表示も出来る関数電卓です。

内容 項目
メーカー CASIO
型名 fx-CG50
種別 グラフ電卓 (CASの搭載なし)
寸法 奥行 188.5mm × 幅 89mm × 厚さ 18.6mm
重量 230g
入力方式 自然表示方式(教科書表示方式),ライン表示方式
画面 フルドットマトリックス 384×216画素(16bitカラー。65,536色)
CPU SH-4A
RAM 2MB
ROM/Flash 16MB
OS バージョン 3.60.0202
電源 単4形アルカリ乾電池×4本 あるいは 単4形ニッケル水素充電池×4本
プログラミング言語 CASIO独特言語 ならびに Micro Python カスタマイズ版
公式ページ https://web.casio.jp/dentaku/fxcg50/ https://www.casio.com/jp/scientific-calculators/product.FX-CG50/

単純な計算機として使うのはオススメしません
家電量販店で 12桁表示くらいの電卓を買ってきた方が良いです。
さらに CAS 使う人も、fx-CG50 はCASがありませんのでご注意ください。私はCASを使うことはないので問題にしませんでした。

ついでに、メニューや言語選択に 「日本語はありません」
関数電卓ですので、メニューが日本語である必要はないので、私は「英語」で使用しています。

後述する Python やファイル名などでも日本語は使用できません。
ASCIIのみ使うことが出来ます。

fx-CG50 のモード

fx-CG50には、色々な計算をするためのモードがあります。


モード (英語モード表記) 内容
Run-Matrix 通常の計算モード
Statistics 統計計算
eActivity 電子教材
Spreadsheet 表計算。CSV読み書き可能
Graph グラフ描画
Dyna Graph アニメーションするグラフの描画
Table 関数から数表を作成
Recursion 漸化式計算
Conic Graphs 円錐曲線
Equation 方程式計算
Program プログラミング機能
Financial 財務計算
E-CON4 データアナライザーEA-200 もしくは CMA CLABを使用
Link 他の電卓あるいはPCと接続する(USBケーブルを挿すとPCとは自動接続)
Memory メインメモリーと保存メモリーの管理
System 各種システム設定
Python Micro Python をベースとしたプログラミング環境
Distribution 分布
Geometry 図形描画
Picture Plot 画像の上に複数の点を設置して点の座標を表示したり回帰曲線を描く
3D Graph 3Dグラフを描画
Conversion 単位換算機能がインストールされているかどうかを示すモード
Physium 化学の周期表と物理化学定数一覧

正直、私は財務計算とかは使わない機能ですが、さまざまな計算ができるモードがあります。
fx-CG50 の汎用性の高さはスゴイのですが、全部の計算モードを使う人っているんですかね…

使わないモードも多いので、正直なところ使わないモードは非表示とかにできるとスッキリするのですが。設定方法あるのかな…

fx-CG50 の Python

CASIO fx-CG50 を購入する動機となった Python。
fx-CG50 に搭載されている Python は、Micro Python をベースとして 最低限のモジュールを搭載して、fx-CG50 のグラフ表示などの独自モジュール(casioplot)が追加された Micro Python 環境です。
Python の機能もかなり制限されていますので、本格的なプログラミングというよりは簡単な計算ツールを作成することに向いています。

Micro Python (fx-CG50) の注意点

fx-CG50 の ファイルシステムの関係で、ファイル名には次のような制限があります。
最大8文字とかは DOS を思い出すファイルシステムになっています。

  • ファイル名は最大8文字まで
  • ファイル名は半角英数のみが使用可能(A-Z,a-z,0-9)
  • 大文字と小文字は同じ文字として扱われます
  • 数字から始まるファイル名やPythonの予約語を使うと実行できません

さらにPythonのコード(スクリプト)のサイズもかなり小さいモノに制限されます。

  • 1行辺り 255文字
  • 最大 300行

この制限は、fx-CG50 の編集画面の制限ですが、表示確認やデバッグを考えると、かなりコンパクトなコードにする必要があります。
300行を超えたときに、実行できなくなるのか 表示・編集が出来なくなるのかは未検証です。

ただ、コード中で他の Pythonファイルを import することができます。
1ファイルを巨大にしなければ上手くやりくりできるかもしれません。

特殊変数 __main__ は動かない?

MicroPythonの制限と思われますが(未確認)、Pythonでよく使用する次のようなコードは使用できません。


if __name__ == "__main__":
  hogehoge()

この記述をしていたためコードの実行が出来ませんでした。
メインの処理は、インデント無しの状態で書き始める必要があります。
def を使用しないで、ベタ書きする場合には気にしなくても良いですが、注意が必要です。

使用できるビルトインとモジュール

fx-CG50 でPythonのコードを書くときに、搭載されている関数が分からなく最初は苦労しました。
搭載されているビルトイン関数やモジュールは、コードを表示しているときに [SHIFT] – [4] (カタログ)で表示することができます。
ソフトウェア取扱説明書などでも、一覧できる情報が無いので戸惑うと思います。

この辺りは、これから調査して 使えるビルトインなどを整理していこうと思っています。

プログラミングの方法

fx-CG50 の電卓キーと オプションキーを駆使すれば、fx-CG50 だけでもプログラミングできますが、正直 本筋を忘れそうなくらいな苦行です。

fx-CG50 にコードのショートカット入力はあるのですが、それでもかなり入力はツライです。

現実的には Windows や macOS などの環境で、コードを書いて USBケーブルで fx-CG50 にファイルをコピー。コピーした Pythonコードを実行という流れが良いでしょう。

仕事で活躍してくれそうな fx-CG50

最近ではスマホやWEBサイトで様々な計算ページなどもありますので、関数電卓なんて使わないということも多いと思います。

ただ、私の仕事の関係上 特殊な計算が多く そのためのEXCELシートでの計算などもあるのですが、わざわざパソコンをひらいてというのも面倒。
そして、関数電卓なので物理キーがあるのがスマホでは代替できない機能です。

ちょっとした計算するときに、手元の端末で「仕事でよく使う計算がすぐにできる」

今まではポケコンを使っていましたが、これからは CASIO fx-CG50 に機能を置き換えていこうと思います。

早速つくったツールを紹介。

IPアドレスとネットマスクから、ビット数やマスク幅、最大ノードの台数を計算してくれるツールです。
CIDRや判りやすいサブネットマスクなら暗算で出来るのですが、切りの良くないサブネットマスクの時に、ネットワークアドレスを間違ったりすると事故につながるので使っています。

Translate »