Casio Basic - 機種間の互換性

Casio Basic - 機種別の互換性
<Casio Basic入門 - 目次>


2016/04/19
更新:2017/07/31


日本国内で正式発売されているカシオのプログラム電卓のうち、fx-5800P、fx-9860GII、fx-CG20、fx-CG50 に搭載されている Casio Basic の互換性について、まとめてみます。

Casio Basic プログラムの移植、Caso Basic 搭載の機種選定の参考になるかも知れません。今回 Casio Basic を複数の機種にわたって整理した結果、改めて fx-5800P の価値を見直し、カシオはよく考えて商品展開していることも分かりました。


ハードウェアの違い

Casio Basic のコマンドには、ハードウェアに依存するものが有るので、ハードウェアの主な違いをまとめてみました。

Graphing Calcs 
左から、fx-CG50、fx-CG20、fx-9860GII、fx-5800P


表1 ハードウェア仕様の主な違い

機種fx-5800Pfx-9860GIIfx-CG20 / fx-CG50
液晶ディスプレイ
Casio Basic Graphics 出力
Casio Basic Text 出力
表示種別
モノクロ、96 x 31 ピクセル
なし
16 桁 x 4 行
テキストのみ
モノクロ、128 x 64 ピクセル
127 x 63 ピクセル
21 桁 x 7 行
 
テキスト、グラフィックス
カラー、384 x 216 ピクセル
379 x 187 ピクセル
21 桁 x 7 行
テキスト、グラフィックス
寸法 (mm)163 x 82 x 15184 x 91.5 x 21.2188.5 x 89.5 x 20.6
重量 (g)150260220
電池 / 寿命単4電池 x1 / 1年単4電池 x4単4電池 x4
仮数+指数10桁+2桁10桁+2桁10桁+2桁
内部演算桁数15桁15桁15桁
プログラムメモリ容量最大28.5 KByte最大 62 KByte最大 61 KByte
プログラムファイル名最大12文字最大8文字最大8文字

ちなみに、最新の関数電卓、CLASSWIZ fx-JP900 / 700/ 500 の液晶はモノクロの高精細で実際に細かい表現が出来ていますが、192×63 ピクセルの液晶です。解像度でいえば fx-9860GII と fx-CG20 / CG50 の間です。

fx-5800P はテキスト出力のみ。fx-9860GII と fx-CG20 / CG50 のCasio Basic では、テキスト出力とグラフィックス出力を同時に行えず、切り替えて表示する仕様です。

[2016/10/13 追記]
fx-FD10 Pro については、持っていないので詳しく調べていませんが、カシオお客様サポートセンターによれば fx-FD10 Pro はアドインを使えない仕様とのことです。言い換えれば、Casio Basic 専用機の位置づけのようです。
 
 


互換性とは?
同じプログラムを異なる機種で使って同じ結果が得られるなら、そのプログラムは互換性があります。

一方で、コマンドレベルで言えば、グラフィックス出力やテキスト出力のコマンドは、その出力結果が同じならば、互換性があります。

例えば、以下のようなコードで円を描画する場合、

CoordOff
GridOn
AxesOn
LabelOff
ClrGraph
Circle 1,0,3


fx-9860GII と fx-CG20 / CG50 での出力は、次のように同じ結果になります。

Circle_9860GII Circle_CG20 
fx-9860GII での出力結果       fx-CG20 / CG50 での出力結果

これらのコマンドについては、コマンドレベルでの互換性があります。

円を描画するコマンド Circle を使うと、コマンドレベルでの互換性を確保するために、高い解像度のLCDで表示(fx-CG20 / CG50を使用)する時 は、線を太く表示して、出力(表示)の互換性を維持する仕様になっています。


では、以下のようなコードで直線を描画する場合、

CoordOff
GridOff
AxesOff
LabelOff
ClrGraph
For 1→A To 31
PxlOn 15+A,45+A
PxlOn 47-A,45+A

Next

fx-9860GII と fx-CG20 / CG50 での出力は、次のように違った出力結果になります。

Cross_9860GII Cross_CG20 
fx-9860GII での出力結果       fx-CG20 / CG50 での出力結果

各コマンドはエラーも無く、正常に動作します。しかし点描画コマンド PxlOn で描画するピクセルが1個分なので、fx-986oGII と fx-CG20 では、画面全体のピクセル数 (解像度) が大きく異なるので出力(表示)が異なります。PxlOn はコマンドレベルで互換性がありません。
 
 
グラフィックス・コマンドの互換性

詳細動作が異なるグラフィックス・コマンド
ClrGraph コマンドで設定されるデフォルトの論理座標系や、ViewWindow コマンドで設定する論理座標系で使うコマンドは、fx-9860GII と fx-CG20 / CG50では、出力結果がほぼ互換性があります。液晶の解像度の違いを Casio Basic で吸収していて、同じコードを書けば、同じ出力結果が得られます。

一方、物理座標系で使うコマンドは、出力結果が異なり、互換性がありません。

今のところ分かっている範囲で、詳細動作で互換性が無いコマンドを以下に紹介します。
 
 
Xdot
Xdot と Xmax や Xmin との間の次の関係は、fx-9860GII でも fx-CG20 / CG50 でも正しいのですが、

H × Xdot = Xmax -
Xmin

H の値は、Casio Basic のグラフィックス描画範囲と関係があって、fx-9860GII と fx-CG20 / CG50 では異なります。

H の値は、

・ fx-9860GII   : H=378 なので、378 × Xdot = Xmax - Xmin の関係になります。

・ fx-CG20 / CG50  : H=126 なので、126 × Xdot = Xmax - Xmin の関係になります。

例えば、
 1→Xmin
 1→Xdot

を実行すると、Xmax が変更されますが、
fx-9860GII では Xmax が 127 となり、fx-CG20 / CG50 では Xmax が 379 と、異なった値になります。
 
 
線のスタイル設定
描画コマンド LINEF-LINEVerticalHorizontalCircle  の線の太さを設定するコマンドで描画する実際の線の太さは互換性がありません。しかしそれによってコマンドレベルとプログラムレベルの両方で互換性を確保しています。

線の太さ (ピクセル)
前置コマンド / セットアップコマンドfx-9860GIIfx-CG20/CG50
SketchNormal / S-L-Normal13
SketchThick / S-L-Thick25
SketchBroken / S-L-Broken13
SketchDot / S-L-Dot13
SketchThin / S-L-Thinなし1
 
 
物理座標系のコマンド
Casio Basic の物理座標で使う以下のコマンドは、描画位置の座標が同じでも、液晶画面全体での相対的な描画位置が変わります。つまり、コマンドレベルでの互換性はあるが、画面全体でみると出力結果が異なるのでプログラムの互換性はありません。

PxlOnPxlOffPxlChgPxlTest(Text 

fx-9860GII のグラフィックス描画範囲は 127 × 63 ピクセルで、fx-CG20 / CG50 では 379 × 187 です。
例えば、fx-9860GII でこれらコマンドを使ったグラフィックス表示を、fx-CG20 / CG50 で実行すると左上に偏って表示されます。
逆に、fx-CG20 / CG50 でのグラフィックス表示コードを fx-9860GII で実行すると、より狭い fx-9860GII のグラフィックス領域の外側で描画を行うことになり、"Out of Domain" (領域外)エラーが出ます。
 
 
fx-CG20 / CG50 でしか使えないグラフィックス・コマンド

カラー設定コマンド
fx-CG20 / CG50 には以下のカラー設定コマンドがあります。

Plot/Line-Color, Black, Blue, Red, Magenta, Green, Cyan, Yellow

当然ながらモノクロ液晶の fx-9860GII ではエラーとなって使えません(互換性がありません)。
 
 
グラフ設定コマンド
fx-CG20 / CG50 では、以下のグラフ設定コマンドが追加されています。

GridLine (グリッド線), AxesScale (軸目盛り)

プログラム
ClrGraph
GridLine
AxesScale
SketchThin F-Line 3,3,0,0


fx-CG20 / CG50 でしか使えない

fx-CG20/CG50 でグリッド線と軸メモリを指定

NewGrSet
プログラム
ClrGraph
GridOn
AxesOn
SketchThin F-Line 3,3,0,0


fx-CG20 / CG50 と fx-9860GII で互換性有り

fx-CG20/CG50 でグリッドOn、軸On を指定
NewGrSet2

fx-9860GII でグリッドOn、軸On を指定
GrSet 
 
 

 
入出力コマンドの互換性

詳細動作が異なる入出力コマンド

Locate コマンド
fx-9860GII と fx-CG20 / CG50 の Casio Basic でのテキスト出力範囲は同じで、21桁 × 7行 になっています。これら2機種でテキスト出力を行う Locate コマンドは互いに完全互換です。

一方、fx-5800P にも Locate コマンドがありますが、テキスト出力範囲が 16桁 × 4行 なので、範囲を超えた座標を設定すれば領域外エラーになり、領域外エラーが出ない場合は画面内でのテキスト出力の配置が異なりプログラム互換性はありません。表示位置のパラメータを手直しすれば、バランスの良い配置になったり、エラーを回避できます。
 
 
Getkey コマンド
Caso Basic には、[AC] キー以外のキーに全てユニークなキーコードが割り当てられていて、どのキーが押されたかを返す Getkey コマンドがあります。

fx-9860GII と fx-CG20 / CG50 は、キーコードが完全互換なので、Getkey コマンドは完全互換です。

一方、fx-5800P のキーコードは、上記2機種とは全く異なるので、Getkey コマンドは上記2機種とは互換性がありません。
 
 
通信コマンド
fx-5800P の Casio Basic には通信コマンドがありません。
一方、fx-9860GII と fx-CG20 / CG50 の Casio Basic には、以下の同じシリアル通信コマンドが用意されています。

Send(Rceive(Send38KReceive38KOpenComport38KCloseComport38K
 
 


配列関連のコマンド

配列変数 Z[ ]
fx-5800P の Casio Basic では、配列変数 Z[ ] が使えます。
fx-9860GII や fx-CG20 / CG50 には、配列変数が無いので、行列やリストを使います。fx-9860GII では、リストよりも行列の方が処理速度が速いので、配列変数の代わりに行列を使う方が良いかも知れません。
 
 
行列コマンド
fx-5800P の Casio Basic では公式に行列がサポートされていませんが、使えます。
fx-9860GII と fx-CG20 / CG50 の Casio Basic では、共通の行列コマンドがあります。
 fx-9860GII / fx-CG20 / fx-CG50 の行列コマンドは fx-5800P と互換性がありません。
 
文字列処理コマンド
fx-5800P の Casio Basic には文字列処理コマンドはありません。
 fx-9860GII と fx-CG20 / fx-CG50 の Casio Basic には、以下の同じ文字列処理コマンドがあります。

StrLeft(StrRight(StrMid(Exp▶Str(Exp(StrUpr(StrLwr(StrInv(StrShift(StrRotate(StrJoin(StrLen(StrCmp(StrSrc(
 

画面入出力制御コマンド

(入力命令)
fx-5800P のみで使えて、fx-9860GII と fx-CG20 / CG50 ではエラーになる。

 
 と " " (表示命令)
全機種で使えるが、fx-9860GII / fx-CG20 /CG50 と fx-5800Pで、詳細動作が異なります。
⇒ 詳しくは fx-9860GII への移植 - 厄介な旧来の命令 参照 

 
Cls (クリアコマンド)
 fx-5800P: テキスト画面を消去します。
fx-9860GII と fx-CG20 / CG50: グラフィックス画面を消去します。
 
 


Casio Basic の互換性

機種の違いによる Casio Basic の互換性を一覧にしました(表2)。
コマンド類の互換性については、以下のように分類しました;
  • 全機種の Casio Basic で完全互換のもの: で表記
  • 全機種の Casio Basic に用意されているが、機種によって詳細動作が異なるもの: で表記
  • 特定の機種の Casio Basic だけで使えるもの: で表記
  • 特定の機種の Casio Basic には用意されていないもの: --- で表記

表2 代表的なコマンドの互換性

記 述fx-5800Pfx-9860GIIfx-CG20/50
1入力命令(基本動作) ?------
2表示命令(基本動作)" ",
3旧来の命令(基本動作) :, ?→,  →
4関係演算子=, ≠, >, ≥, <, ≤
5ジャンプGoto ~ Lbl, Dsz, Isz, ⇒
6制御構造If ~ Then ( ~ Else) ~ IfEnd
For ~ To ( ~ Step) ~ Next
While ~ WhileEnd
Do ~ LpWhile 
7サブルーチン呼び出しProg
8プログラム制御Break, Return, Stop
9論理演算1And, Or, Not
10入力制御Getkey
11画面制御Locate
12クリア1(テキスト クリア)Cls------
13クリア2(テキスト クリア)ClrText---
14配列変数Z[ ]行列行列
15行列(非公式)
16論理演算2Xor---
17クリア3(グラフィックス クリア)Cls, ClrGraph---
18文字列処理、通信---
19コメントアウト ' ---
20グラフィックス1(モノクロ、論理座標系)---
21グラフィックス2(モノクロ、論理座標系)Xmin, Xmax, Xdot,
SketchNormal, SketchThick,
SketchBroken, SketchDot,
S-L-Normal, S-L-Thick,
S-L-Broken, S-L-Dot
---
22グラフィックス2(物理座標系)PxlOn, PxlOff, PxlChg,
PxlTest( ),
Text
---
23グラフィックス3(カラー、論理座標系)Plot/Line-Color,
Black, Blue, Red, Magenta,
Green, Cyan, Yellow,
SketchThin, S-L-Thin,
GridLine, AxesScale
------
  • fx-5800P で詳細動作が異なるものは  と表記
  • fx-9860GII と fx-CG20/50 では完全互換だが fx-58000P とは詳細動作が異なるのは  と表記
  • fx-9860GII と fx-CG20/50 で詳細動作が異なるものは  と表記しています。
[2016/04/25 追記]
こうして眺めてみると、115 のコマンドを使えばテキスト出力の殆どのプログラムが書けることが一目瞭然ですね。そのうち、3 ~ 9 までのコマンドが全機種で完全互換です。

つまり、機種が異なっても、主に 115  のコマンドを使えば、どの機種でも Casio Basic 共通(ほぼ互換)のプログラムを書け、最低限の手直しでプログラムが移植できることが改めて確認できました。

逆に言えば、価格面で最も入手し易い fx-5800P でCasio Basic が使いこなせるようになれば、作成したプログラムやCasio Basicに関する知識が、他のグラフ関数電卓にもそのまま使えると言えます。つまり、fx-5800P が Casio Baisc 入門に適していることが改めて分かります。

Casio Basic は階層的なブロック構造でコードを書ける (構造化プログラミングの考え方を適用できる)ので、特にテキスト表示のプログラミングについては一般的なBasicの感覚に近い仕様です。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: fx-9860GIICasioBasic、グラフィックス, プログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ


関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-5800P【ゲーム】:もぐら叩き~まとめ~

fx-5800Pでもぐら叩き
e-Gadget


fx-5800P で作る「もぐら叩き」ゲームのまとめ
コード修正 2014/03/20
fx-FD10 proに関する記述追加 2014/09/28
コード誤記修正 2016/05/12
  fx-CG20 に関する記述修正 2017/01/04
fx-CG50 に関する記述追加 2017/07/24
追記 2017/08/06


普通のプログラム作成の記事と異なり、多少冗長な内容になっており、(1)~(8)で、徐々にプログラムを作ってゆく様子を複数の記事で紹介した。


最終的なプログラムは、本ページの一番下に掲載した。またこれを一部改善したもの、および各機種へ移植したものを プログラムライブラリに収録している。[2017/08/06 追記]

プログラムライブラリ - もぐら叩き (fx-5800P)
プログラムライブラリ - もぐら叩き (fx-9860GII)
プログラムライブラリ - もぐら叩き (fx-CG20 / fx-CG50)


以下の記事は作りながら書いているので、プログラミング本のように最終形を想定した進め方になっていない。途中でロジックの変更や、バグ対策や、変数の変更など、実際にどうやって完成させたかをそのまま書いている (fx-5800P版)。

fx-5800P【ゲーム】:もぐら叩き(1)

fx-5800P【ゲーム】:もぐら叩き(2)

fx-5800P【ゲーム】:もぐら叩き(3)

fx-5800P【ゲーム】:もぐら叩き(4)

fx-5800P【ゲーム】:もぐら叩き(5)

fx-5800P【ゲーム】:もぐら叩き(6)

fx-5800P【ゲーム】:もぐら叩き(7)

fx-5800P【ゲーム】:もぐら叩き(8)


fx-5800P に搭載されているプログラミング言語は、Casio Basic というカシオの味付けをした BASIC言語 だ。

特に、もぐら叩きのようなゲームを作る際に特に重要かつ必要なものは、以下の機能だろう。
1) 広い表示画面
2) Getkeyコマンドによる、リアルタイムキー入力監視機能
3) Locateコマンドによる、柔軟な表示機能
4) 真 (0以外) と 偽 (0) による条件判定


さらに、昔のプログラム電卓に搭載されていた BASIC と異なり、構造化プログラミングの考えでコーディング可能な点も特筆できる。昔のプログラム電卓やポケコンに搭載されていた BASIC は行番号と GOTO コマンドでプログラムの流れを作っていたが、現在の Casio Basic は Goto コマンドを使わずに制御構造を作れるので、上から下へのシンプルな直線構造のコードの中に、1まとまりの処理ブロック1本に繋げる、いわゆるブロック構造にできるので、分かりやすくバグの入りにくいコードが書けるようになっている。

これらの機能が、fx-5800P を魅力的にしている。


CASIOの電卓の中で、上記を満たすプログラミング言語を搭載されているのは、下記のように比較的限られている。

・fx-9860G: グラフ関数電卓(生産終了)
 取扱説明書

・fx-9860G II: グラフ関数電卓 - fx-9860Gシリーズ、fx-9750シリーズ(生産終了)
 メーカーサイト / 取扱説明書

・fx-CG20 / fx-CG10: カラーグラフ関数電卓(生産終了)
 メーカーサイト / 取扱説明書

・fx-FD10 pro:土木測量向けプログラム関数電卓 (現行品)
 メーカーサイト / 取扱説明書

・fx-CG50:カラーグラフ関数電卓 (現行品 - 2017/10/20 国内発売)
 メーカーサイト / 取扱説明書

・fx-5800P: プログラム関数電卓(現行品)
 メーカーサイト / 取扱説明書


fx-FD10 pro fx-FD10 pro < fx-9860GII版もぐら叩き >


fx-CG50 noce photo fx-CG50 < fx-CG50版もぐら叩きのダウンロード


fx-9860GIIfx-9860G II  fx-9860GII版もぐら叩きのダウンロード >
fx-CG20fx-CG20 fx-CG20版もぐら叩きのダウンロード >

    fx5800P_calc     fx-5800P <fx-5800P版モグラ叩き - ダウンロードも可 > 


各機種の画像の右に、対応する「もぐら叩き」プログラムのダウンロードリンクを示している。ダウンロードして転送するだけで楽しめる (fx-5800P は CcLinker を使ってダウンロードしたプログラムファイルを転送できる) ので、先ずは遊んでみてください。

完全互換でないのには理由がある。電卓の機種が異なると、ハードウェアの違いからキー配置が異なる。従って、Getkeyで得られるキーコードが異なるため、ソースレベルでの互換性は無い。これを除けば fx-5800Pのプログラムからの移植性は比較的高いと(旧来の命令の互換性については、少し注意が必要だ⇒こちらを参照)。

fx-5800P、fx-9860Gシリーズ (さらにOS載せ替えしたfx-9750Gシリーズ)、fx-CGシリーズ以外ではこのゲームは走らない。例えば、fx-72F、fx-71F 、fx-3600P、fx-3950Pなどはプログラム機能が十分でないので適用外だ。

ところで、fx-9860GII、fx-CG20、fx-CG50、fx-FD10 Pro は、1万円以上の価格だ。一方で、fx-5800P は 6千円台前半 (2017/01/01時点の Amazon価格) と格段に手軽な価格だ。この価格で、上記4つの条件を満たす言語を搭載しているのだから、改めて魅力的なマシンと言える。

※ 興味があれば、最近のCasio プログラム電卓の価格動向 をご参照。


当初は、fx-5800P のような電卓で、遊べるアクションゲームを作れるとは思っていなかった。たまたま、Goto~Lbl コマンドで、カウントタイマーを作ってみると、意外に速いことから、実際に遊べるレベルのアクションゲームを作れるかどうかを試したくなったのが、もぐら叩きを作り始めた動機だった。

パソコンで作るゲームと異なり、最初にゲーム仕様を作るのではなく、機能を追加した時にゲームとしてのスピード感を損なわないように探りつつ、様子を見ながら後付けでゲーム仕様を考えた。実際に私自身が考えたり試したりした事柄を、時系列で実況中継風に書いた結果、冗長な記事となってしまった。

できあがったゲームは、バリバリのゲーマーには物足りないのだが、普段からあまりゲームで遊ばない人間(=私)には、少しすつスキルアップして、得点が増えてゆくのが愉しい。


ご興味の有る方は、是非一度プログラムを入力して、遊んでみて欲しい。


もぐら叩きが意外にうまくいったので、最近はシューティングゲームができないものか?と、色々と動きのあるルーチンを作って遊んでみている。ひょっとしたら、何かシューティングゲームができるのかも知れない。

電卓の遅い処理速度、完全シングルタスク、広いといっても16×4 しかない画面で、動きやロジックを試しながら、遊べそうなゲームを模索してみようと思っている。


おしまい( ^o^)ノ



以下は、プログラムコード: [2016/05/15 誤記修正]

[2017/08/06 追記]
メインルーチンの3行目 Lbl 0 の下に、2行追加したものをプログラムライブラリに収録している。
追加した2行は、
While Getkey
WhileEnd


もぐら叩き: Wack -a-Mole by やす(Krtyski)

Wack-a-Mole_src 



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: fx-5800Pfx-CG20fx-9860G IIゲーム、プログラミングもぐら叩きプログラム関数電卓

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-5800Pで素因数分解

2013/11/01:追記
2015/01/25:追記
2019/07/10:追記


 CASIO の最新関数電卓:fx-995ESでは、幾つかの新しい機能が追加されている。

fx-995ES fx-5800P_1  
      fx-995ES         fx-5800P


今回発売された fx-995ES に追加された新機能のうち、あったら便利だと思うのは総積と計算結果の初期表示を小数点にする機能くらいだと思う。

他の新機能、例えば

・原子量を得る機能
・PreAns機能
・素因数分解

などのうち、素因数分解を日常的に使う人は居ないだろう。

実用性とは別に、興味を惹いたのが素因数分解だ。
そこで、fx-5800P に素因数分解を実装してみようと思った。


素因数分解

全ての自然数は、素数の積で現され、その組み合わせは1通りしかない。

と言う素数の性質があるので、任意の自然数Nの素因数を探す時の順序は関係ないわけだ。

そこで、与えられた自然数Nに対して、2から順に1つづつ大きな数で割り算をして割り切れるかどうかを繰り返す、絨毯爆撃を行えば、全ての素因数を割り出せる。

そもそも素数は奇数なので、3以上は奇数だけで調べれば良い。


fx-5800P専用
素因数分解プログラム
======================
Lbl 0
Cls
"FACTORIZING"
"INPUT INTEGER"?→A
C→0:2→D:A→X
Do
X÷D→Y
If Frac(Y)=0
Then Y→X:Isz C
Else
If C≠0
Then
D
"TO THE":C
0→C
IfEnd
If D=2
Then Isz D
Else Isz D:Isz D
IfEnd
IfEnd
LpWhile Y≧1
Cls
"COMPLETED"
""
"<->:TRY OTHERS"
"<AC>:QUIT"
While Getkey≠67
WhileEnd
Goto 0
======================



実行すると、最初にプログラムの説明を表示する。

-----------------
FATORIZING
INPUT INTEGER?
-----------------


ここで、12345 を入力して[EXE]キーを押すと、

-----------------
                3
TO THE
                1
-----------------

と表示される。3の1乗と言う意味の英語にしてある。


さらに[EXE]キーを押すと、
-----------------
               5
TO THE
               1
-----------------

と表示。5の1乗と言うことだ。


さらに[EXE]キーを押すと、少し時間がかかるが
-----------------
               823
TO THE
                1
-----------------

823の1乗と表示される。
割と大きな素数が出てきた。


さらに[EXE]キーを押すと、
-----------------
COMPLETED

<->:TRY OTHERS
<AC>:QUIT
-----------------

と表示され、続けるか終わるかを聞いてくる。


上記の 12345 の素因数分解では、素数 823 が出てくるのに23秒かかった。比較のために、fx-995ESで12345の素因数分解を行うと、2秒程度で答えが出てくる。組み込み機能は10倍速い。

一方で、fx-955ESに組込まれている素因数分解機能は、素因数が3桁まででないと計算しない仕様になっている。

方や、fx-5800Pのプログラムでは、時間をかければ、もっと大きな素因数でも答えを出してくれる。

例えば、987654321 = 3 x 17 x 379721 と、6桁の素因数が得られた。
但し、この計算には3時間もかかるので、これ以上は試していない。


いずれにせよ、電卓でプログラムを組むと遅い。

EXCELのVBAで同じロジックのプログラムを作って動作させてみると、上記の 987654321の素因数分解でも一瞬で答えが出る。

参照: VBAで素因数分解 【2013/11/1 追記】



電卓の遅い処理時間の実感を掴むために、処理速度を調べてみた。

そして、色々な自然数で素因数分解をしてみた結果から、
Do~LpWhileループが回る時間が、45m秒程度かかることが分かった。

全くの推測だが、太陽電池で動作させる程度の省電力が要求されるため、かなりクロックを落としているものと思われる。
その上、各コマンドの実行には、エラー検知やある程度余計な内部処理が含まれることも、処理速度に影響しているのだろう。

最初から機能として組み込まれている fx-955ES の処理速度が10倍程度速いことからも、プログラム実行にはかなり余分な処理を伴っていることがよく分かる。


[2019/07/10 追記]
fx-5800P で最速の素因数分解プログラムを紹介している。
 ⇒ fx-5800P 素因数分解 - 高速化

[2015/01/25 追記]
fx-5800P を使った素因数分解については、続編として以下のエントリーがある。
 ⇒ fx-5800P で素因数分解再び
 ⇒ fx-5800P 素因数分解 - バグ修正と表示変更

fx-9860GII への移植
 ⇒ fx-9860GII への移植 - 素因数分解





応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: fx-5800P素因数分解fx-995ESプログラミングプログラム関数電卓

リンク集 | ブログ内マップ

関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

楽屋裏 - 最新プログラム電卓 fx-CG50 の記事

楽 屋 裏
e-Gadget


2017/07/04


fx-CG50  2017/01/09 に Casio Ameria が グラフ関数電卓の最新機種 fx-CG50 の発売をアナウンスしたことが分かり 記事 にしました。

アナウンス通りに 2017年4月から欧米で発売されました。国内では fx-CG20が生産終了となっているのでいずれ発売されるでしょうが、その時期は未発表です。

fx-CG20 が国内で発売されたのは、欧米で発売されてから1年後だったので、fx-CG50に国内発売もかなり先になるかも知れません。私も国内発売を待ちきれずに、eBay で購入し到着を待っているところです。入手したら Casio Basic 動作の観点から評価記事を書く予定。

既に海外から fx-CG50 を取り寄せて早速記事にしている方がいらっしゃるので、それを紹介します。Google で検索して、実際に入手したという日本語の記事を調べたところ、2017/07/04 時点で以下の2つのサイトがあります。


OptoEleMechの日記 - CASIOの最新関数電卓 (fx-260 SOLAR II、fx-CG50、fx-CG500)

古い機種を集めて紹介しているサイトはよく見ますが、最新機種を積極的に収集して紹介しているサイトは珍しいと思います。複数メーカーに渡って最新機種の様子がよく分かります。
ベンチマークの結果も公開されています。⇒ 総和のベンチマーク結果
このベンチマークは、関数電卓として内蔵されている総和関数 (Σ) を使ったもので、内蔵関数機能の評価を行っていることになります。


とね日記 - 最新のグラフ電卓 CASIO fx-CG50 (2017)

カシオ初のプログラム関数電卓 fx-201P の次の機種 fx-202P から 最新の fx-CG50 までの複数機種で同じ積分計算をさせてベンチマークの結果を公開されています。このベンチマークは、三角関数を含んだ積分計算をプログラミングしたもので、プログラム機能の評価を行ったことになります。





今後、随時追加してゆきます。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: プログラム関数電卓、fx-CG50

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR