e-Gadget Portal - いつもトップに表示します

カシオのプログラム電卓で Casio Basic を徹底的に使いこなすためのブログ
プログラム関数電卓 fx-5800P が一押しだけど、グラフ関数電卓 fx-9860GII シリーズ、fx-CG10 / fx-CG20、fx-CG50 でもほぼ互換の Casio Basic も使い倒したい! 


お知らせ:新しいコメントが上に来るように、コメントの並びを逆に変更しました [2017/10/04].


e-Gadget について
当ブログの簡単な紹介


目 次
全記事の一覧・検索
  e-Gadget 全記事の目次


e-Gadget の壁
雑談できるところを作ってみました
  掲示板


プログラム電卓に関する投票  
  あなたのプログラム電卓 


e-Gadgetで多く読まれている記事
技術計算以外のプログラムが意外に役立つ
 プログラム電卓でプログラミング
  Casio Basic入門 - 目次
 Casio Basicの勧め
  Casio Basic入門1
 ▶ Casio Basicコマンドリファレンス


Casio Basic 使いこなし
取扱説明書では絶対に分からない Casio Basic の使いこなし
  Casio Basic(超)入門
   ※ fx-5800P での始めてのプログラミング
 ▶ Casio Basic入門
   ※ 更新 2016/12/08
 ▶ Casio Basicコマンドリファレンス
   ※ 更新 2016/12/08
 ▶ Casio Basicでグラフィックス / 目次
   ※ グラフィックスコマンドの機能や仕様の詳細を探索した結果を連載しています。
    G01 - G02 - G03 - G04 - G05 - G06 - G07 - G08 - G09 - G10 - G11 - G12 - G13 - G14  ...
  逆引きCasio Basic
   ※ 更新 2015/10/12
 
 
プログラムライブラリ
Casio Basic プログラムを紹介
 プログラムライブラリ - 目次


プログラム経験者の Casio Basic 
Casio Basic プログラミング辞典 - 作成中...
※ プログラム経験者の Casio Basic
  インサイド Casio Basic - 目次
  Inside Casio Basic -Index


C.Basic - 高速アドインCasio Basic
アドイン版 - 高速・高機能 Casio Basic インタープリタ - 開発中...
C:Basic プロジェクト
 C.Basic マニュアル&コマンドリファレンス
 C.Basic Manual & Command Reference
  C.Basic 国際デビュー


チューンアップツール
グラフ関数電卓を高速化する アドイン・プログラム
  fx-9860GII (SH4A) シリーズ向け Ftune2
  fx-CG10 / fx-CG20 向け Ptune2
  fx-CG50 向け Ptune3


ご意見・ご質問
情報共有のため、各記事のコメント欄へお寄せください
※ 投稿の際には、本名でなくて、ニックネームやハンドルネームで結構です。
 ・ "公開コメント" > "非公開コメント"  の順でご検討ください.

※ 応援頂けるとうれしいです.
にほんブログ村 IT技術ブログ 開発言語へ


▋ 管理人からのメッセージ 
当ブログのメインテーマ  [更新 2017/09/29]

管理人が所有する電卓
当ブログで話題にする電卓

▋ e-Gadget Web 
e-Gadget の図書館
 ⇒ e-Gadget Web について

e-Gadget アクセス解析
当ブログのアクセス解析結果

▋ 著作権について
御願いとお約束



keywords: プログラム電卓、Casio Basic、fx-5800P、 fx-9860GII、fx-9860GII SD、fx-CG20、fx-CG50


関連記事

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

Casio Basic入門54

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

修正 2016/07/18
追記: 2017/07/02
修正: 2017/10/23

 4. CasioBasicを使ってみる(続き)

Chapter 9 - 初級

前回: Casio Basic入門53 を見る


◆ Chapter 9 の目標: 簡単な換算プログラム - 入力ボックスの活用


Chapter 9-4 
fx-5800P での3桁区切り表示を改良する

前々回(Casio Basic入門52 - Chapter 9-2)で作ったものは、3桁区切りがパラパラと表示されます。


前回(Casio Basic入門53 - Chapter 9-3)で改良したものは、3桁区切り表示が高速化しました。

ところが、いずれも表示する桁数が1行以内に収まらない時はエラーが発生します。これを放置していたのですが、ここでエラーが出ないように手を入れてから、fx-9860GII へ移植することにします。

fx-5800P用パラパラ表示版

・サブルーチン: 3DIGIT
・メインルーチン: COMPINT2

ファイル名: 3DIGIT

Z=0⇒Retuen
Int(log(Z))+1→D
D-3Int(D÷3)→F

For 1→I To D
Int(Z÷10^(D-I))→C
Locate X+I-1,Y,C
Z-C10^(D-I)→Z
If I-3Int(I÷3)=F
Then Isz X
I<D⇒Locate X+I-1,Y,","
IfEnd
Next



ファイル名: COMPINT2
Locate 1,1,"1-C:"
Locate 1,2,"2-R:"
Locate 10,2,"3-Y:"
Locate 1,3,"TOTAL"
Locate 1,4,"MONTH"


0→B:0→R:0→N:0→T:0→M

Do

0→K:Do
Getkey→K
LpWhile K=0
K=73⇒Break

If K=35
Then
5→X:1→Y:8→D:1→E
Locate X,Y,"      " (スペース11個)
Prog "INP":Z→B
Prog "3DIGIT"
Else If K=36
Then
5→X:2→Y:4→D:1→E
Prog "INP":Z→R
Else If K=37
Then
14→X:2→Y:3→D:1→E
Prog "INP":Z→N
IfEnd:IfEnd
IfEnd

If BRN:Then
Int(B(1+R÷100)^(N))→T
Locate 7,3,"     " (スペース10個)
T→Z:7→X:3→Y
Prog "3DIGIT"
Int(T÷N÷12)→M
Locate 7,4,"     " (スペース10個)
M→Z:7→X:4→Y
Prog "3DIGIT"
IfEnd

LpWhile
 1
Cls
Locate 7,2,"BYE!"



fx-5800P用高速表示版

・サブルーチン: 3DIGIT2
・メインルーチン: COMPINT3

ファイル名: 3DIGIT2

Z=0⇒Return
Int(log(Z))+1→K
(K≥4)+(K≥7)+(K≥10)→I

1x103Frac(Z÷1
x103)→U
Int(1x103Frac(Z÷1x106))→V
Int(1x103Frac(Z÷1x109))→W
Int(Z÷1x109)→D

If K≤8:Than
Locate X,Y,1x108W+1x104V+U
I≥1⇒Locate X+K-2-(I=1),Y,","
I≥2⇒Locate X+K-6,Y,","
Else
Locate X+K-6(I≥3),Y,1x107+1x104V+U
Locate X,Y,1x104D+W
Locate X+K-2+(I≥3),Y,","
Locate X+K-6+(I≥3),Y,","
I≥3⇒Locate X+K,Y,","
IfEnd



変数の説明
入力値: Z
X座標: X
Y座標: Y


ワーク変数 U:下3桁
ワーク変数 V:中3桁
ワーク変数 W:上3桁
ワーク変数 D:最上位1桁
ワーク変数 K:数値の桁数
ワーク変数 I:三桁区切り文字の数


ファイル名: COMPINT3
Locate 1,1,"1-C:"
Locate 1,2,"2-R:"
Locate 10,2,"3-Y:"
Locate 1,3,"TOTAL"
Locate 1,4,"MONTH"


0→B:0→R:0→N:0→T:0→M

Do

0→K:Do
Getkey→K
LpWhile K=0
K=73⇒Break

If K=35
Then
5→X:1→Y:8→D:1→E
Locate X,Y,"      " (スペース11個)
Prog "INP":Z→B
Prog "3DIGIT2"
Else If K=36
Then
5→X:2→Y:4→D:1→E
Prog "INP":Z→R
Else If K=37
Then
14→X:2→Y:3→D:1→E
Prog "INP":Z→N
IfEnd:IfEnd
IfEnd

If BRN:Then
Int(B(1+R÷100)^(N))→T
Locate 7,3,"     " (スペース10個)
T→Z:7→X:3→Y
Prog "3DIGIT2"
Int(T÷N÷12)→M
Locate 7,4,"     " (スペース10個)
M→Z:7→X:4→Y
Prog "3DIGIT2"
IfEnd

LpWhile
 1
Cls
Locate 7,2,"BYE!"





1行の桁数を超えた表示の際のエラーを抑制

このエラーは、3桁区切りを行うと ,(コンマ)が追加されるから発生します。そこで、3桁区切りの桁数を調べ、それが1行の桁数を超える時は、3桁区切り無しで表示させるようにします。

元の桁数と3桁区切り表示の桁数は以下のようになります。

表1 桁数の一覧
元の数値例元の桁数3桁区切り表示コンマの数3桁区切り表示の桁数
11101
1221202
123312303
123441,23415
12345512,34516
1234566123,45617
123456771,234,56729
12345678812,345,678210
1234567899123,456,789211
1234567890101,234,567,890313
123456789011112,345,678,901314
12345678901212123,456,789,012315
1234567890123131,234,567,890,123417
123456789012341412,345,678,901,234418

これを見れば、

[3桁区切り表示の桁数] = [元の桁数] + [コンマの数]

だと分かります。

元の数値は、変数Z に格納してから、サブルーチン 3DIGIT3DIGIT2 が起動されるので、このサブルーチンの中で、

3DIGIT
Int(log(Z))+1→D [元の桁数]


3DIGIT2
Int(logZ))+1→K [元の桁数]

のように、求められています。

=====

次に、[コンマの数] を求めると、[3桁区切り表示の桁数] を計算できます。

上の表1を見ると、[元の桁数] を3で割った時の商 が [コンマの数] になることが分かります。

[コンマの数] = Int([元の数] ÷ 3) 

従って、

[3桁区切り表示の桁数] = [元の数] + Int([元の数] ÷ 3])

となります。


あるいは、もう一つ [コンマの数] を求める面白い方法があります。これは、既に sentaro様が提案された 3DIGIT2 で使われています。

Int(log(Z))+1→K [L: 元の桁数]
(K≥4)+(K≥7)+(K≥10)→I 
[I: コンマの数]


[2017/07/02 追記]
2行目が何故コンマの数を示すのか、説明を加えます。
最初の (K≥4) をみてみます。Kが4以上の時 K≥4 の値が 1 になる性質を利用しています。
詳しく見てゆきます。 は論理演算を行い、K≥4 が正しければ(つまり真ならば)1を返します。正しくなければ(偽ならば)0を返します。これは Casio Basic を含む多くの高級言語で採用されている仕様です。
(K≥4) 自体が値を持つわけです。
Kが5ならば、(K≥4)(K≥7)(K≥10)0 になるので、I1 となり、コンマの数になります。
Kが8ならば、(K≥4)(K≥7)1 になり、(K≥10)0 になるので、I2 となり、コンマお数になります。
=== 追記おわり ===

従って、

[3桁区切り表示の桁数] = [元の数] + I

となります。

=====

3桁区切り表示を始める桁は、変数 X に入れた直後にサブルーチン 3DIGIT あるいは 3DIGIT2 が呼び出されるので、このサブルーチンが起動した時、変数 X が表示を始める桁数になっています。

すると、3桁区切り表示を行う行に [表示される全ての桁数] は、

[表示される全ての桁数] = X + [3桁区切り表示の桁数] - 1

となります。

fx-5800P では、Locate コマンドで [表示される全ての桁数] は16桁で、これを超えるとエラーになります。このエラーが発生する条件は、

[表示される全ての桁数] > 16

つまり、

X + [3桁区切り表示の桁数] - 1 > 16

この式を整理すると、

X + [3桁区切り表示の桁数] > 17

となります。

====

この条件を満たすとき、どうするかを決めます。

1) 何もしないで、サブルーチンを終了させる

2) エラーにならない換わりに、例えば -------- を表示をする

3) 3桁区切り表示ではなくて、元の数を表示する

といった処理を行えば良いですね。

今回は、「3) 3桁区切り表示ではなくて、元の数を表示する」 を採用することにします。

====

以上をまとめると、

If X+[3桁区切りの桁数]>17
Then
Locate X,Y,Z
Retuen
IfEnd


とすれば、表示が1桁に収まらない時のエラーを回避でき、3桁区切り無しで見づらいが数値が表示されます。

具体的に、3DIGIT と 3DIGIT2 に追加するプログラムコードは以下のようになります。

3DIGITへの追加分
Int(log(Z))+1→D [既にあるコード]

If X+D+Int(D÷3)>17
Then
Locate X,Y,Z
Return
IfEnd



3DIGIT2への追加分
Int(log(Z))+1→K [既にあるコード]
(L≥4)+(L≥7)+(L≥10)→I [既にあるコード]

If X+K+I>17
Then
Locate X,Y,Z
Return
IfEnd




fx-5800P用パラパラ表示版

・サブルーチン: 3DIGIT
・メインルーチン: COMPINT2

ファイル名: 3DIGIT

Z=0⇒Retuen
Int(log(Z))+1→D
D-3Int(D÷3)→F
If X+D+Int(D÷3)>17
Then
Locate X,Y,Z
Return
IfEnd


For 1→I To D
Int(Z÷10^(D-I))→C
Locate X+I-1,Y,C
Z-C10^(D-I)→Z
If I-3Int(I÷3)=F
Then Isz X
I<D⇒Locate X+I-1,Y,","
IfEnd
Next



ファイル名: COMPINT2 (変更なし)
Locate 1,1,"1-C:"
Locate 1,2,"2-R:"
Locate 10,2,"3-Y:"
Locate 1,3,"TOTAL"
Locate 1,4,"MONTH"


0→B:0→R:0→N:0→T:0→M

Do

0→K:Do
Getkey→K
LpWhile K=0
K=73⇒Break

If K=35
Then
5→X:1→Y:8→D:1→E
Locate X,Y,"      " (スペース11個)
Prog "INP":Z→B
Prog "3DIGIT"
Else If K=36
Then
5→X:2→Y:4→D:1→E
Prog "INP":Z→R
Else If K=37
Then
14→X:2→Y:3→D:1→E
Prog "INP":Z→N
IfEnd:IfEnd
IfEnd

If BRN:Then
Int(B(1+R÷100)^(N))→T
Locate 7,3,"     " (スペース10個)
T→Z:7→X:3→Y
Prog "3DIGIT"
Int(T÷N÷12)→M
Locate 7,4,"     " (スペース10個)
M→Z:7→X:4→Y
Prog "3DIGIT"
IfEnd

LpWhile
 1
Cls
Locate 7,2,"BYE!"




fx-5800P用高速表示版

・サブルーチン: 3DIGIT2
・メインルーチン: COMPINT3

ファイル名: 3DIGIT2

Z=0⇒Return
Int(log(Z))+1→K
(K≥4)+(K≥7)+(K≥10)→I

If X+K+I>17
Then
Locate X,Y,Z
Return
IfEnd


Frac(Z÷1x103)×1x103→U
Int(Frac(Z÷1x106)×1x103)→V
Int(Frac(Z÷1x109)×1x103)→W
Int(Z÷1x109)→D

If K≤8:Than
Locate X,Y,1x108×W+1x104V+U
I≥1⇒Locate X+K-2-(I=1),Y,","
I≥2⇒Locate X+K-6,Y,","
Else
Locate X+K-6+(I≥3),Y,1x107+1x104V+W
Locate X,Y,1x104D+W
Locate X+K-2+(I≥3),Y,","
Locate X+K-6+(I≥3),Y,","
I≥3⇒Locate X+K,Y,","
IfEnd



ファイル名: COMPINT3 (変更なし)
Locate 1,1,"1-C:"
Locate 1,2,"2-R:"
Locate 10,2,"3-Y:"
Locate 1,3,"TOTAL"
Locate 1,4,"MONTH"


0→B:0→R:0→N:0→T:0→M

Do

0→K:Do
Getkey→K
LpWhile K=0
K=73⇒Break

If K=35
Then
5→X:1→Y:8→D:1→E
Locate X,Y,"      " (スペース11個)
Prog "INP":Z→B
Locate X,Y,"      " (スペース11個)
Prog "3DIGIT2"
Else If K=36
Then
5→X:2→Y:4→D:1→E
Prog "INP":Z→R
Else If K=37
Then
14→X:2→Y:3→D:1→E
Prog "INP":Z→N
IfEnd:IfEnd
IfEnd

If BRN:Then
Int(B(1+R÷100)^(N))→T
Locate 7,3,"     " (スペース10個)
T→Z:7→X:3→Y
Prog "3DIGIT2"
Int(T÷N÷12)→M
Locate 7,4,"     " (スペース10個)
M→Z:7→X:4→Y
Prog "3DIGIT2"
IfEnd

LpWhile
 1
Cls
Locate 7,2,"BYE!"




fx-5800P 用の2つのバージョン、パラパラ表示版と高速表示版を、ここで完成とします。



つづく...

⇒ Casio Basic入門55 / Casio Basic入門G01 / 目次




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




  



keywords: fx-5800PCasioBasic、入力ボックス, プログラミング入門プログラム関数電卓

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




関連記事

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

Casio Basic入門53

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

追記修正 2017/10/23


 4. CasioBasicを使ってみる(続き)

Chapter 9 - 初級

前回: Casio Basic入門52 を見る


◆ Chapter 9 の目標: 簡単な換算プログラム - 入力ボックスの活用


Chapter 9-3 
fx-5800P での3桁区切り表示を高速化する

前回、3桁区切りできる複利計算プログラムを再掲します。

・サブルーチン: 3DIGIT
・メインルーチン: COMPINT2

ファイル名: 3DIGIT

Z=0⇒Retuen
Int(log(Z))+1→D
D-3Int(D÷3)→F

For 1→I To D
Int(Z÷10^(D-I))→C
Locate X+I-1,Y,C
Z-C10^(D-I)→Z
If I-3Int(I÷3)=F
Then Isz X
I<D⇒Locate X+I-1,Y,","
IfEnd
Next



ファイル名: COMPINT2
Locate 1,1,"1-C:"
Locate 1,2,"2-R:"
Locate 10,2,"3-Y:"
Locate 1,3,"TOTAL"
Locate 1,4,"MONTH"


0→B:0→R:0→N:0→T:0→M

Do

0→K:Do
Getkey→K
LpWhile K=0
K=73⇒Break

If K=35
Then
5→X:1→Y:8→D:1→E
Locate X,Y,"      " (スペース11個)
Prog "INP":Z→B
Prog "3DIGIT"
Else If K=36
Then
5→X:2→Y:4→D:1→E
Prog "INP":Z→R
Else If K=37
Then
14→X:2→Y:3→D:1→E
Prog "INP":Z→N
IfEnd:IfEnd
IfEnd

If BRN:Then
Int(B(1+R÷100)^(N))→T
Locate 7,3,"     " (スペース10個)
T→Z:7→X:3→Y
Prog "3DIGIT"
Int(T÷N÷12)→M
Locate 7,4,"     " (スペース10個)
M→Z:7→X:4→Y
Prog "3DIGIT"

IfEnd

LpWhile
 1
Cls
Locate 7,2,"BYE!"





前回のプログラムと高速化の試み

以下のように、3桁区切りで表示ができましたが、

8digit_input 

左から右へ、パラパラと表示されて時間がかかります。

今回のプログラムで一番動作時間がかかるのは、Locate コマンドです。そして、For ループで Locate が何度も実行されているので、表示に時間がかかると考えています。このプログラムでは、例えば 12345678 を表示するには Locate を10回実行しています。

そこで、表示を高速化するには、Locate が実行される回数を減らせば良いことになります。

私が最初に考えたのは、例えば 1234567812,345,678 として表示するために Locate を使って、

1) 12 を表示
2) ,(コンマ)を表示
3) 345 を表示
4) ,(コンマ)を表示
5) 678 を表示


つまり、Locate 実行の回数が10回から5回へ半減しますので、良さそうです。実際に作ってみると、問題がありました。

それは、例えば 139096 を3桁区切りにすると 139,096 となるべきところ、そうはならないバグです。このバグはコーデイングのバグではなくて、fx-5800P Casio Basic の限定的な機能が関係した本質的な問題でした。

上の考え方だと

1) 139 を表示⇒問題なし
2) ,(コンマ)を表示⇒問題なし
3) 096 を表示⇒
問題発生


Locate コマンドで 数値 096 を表示すると 96 になってしまいます。
つまり、3桁区切りの表示が 139,96 と妙なことになります。

fx-5800P Casio Basic では文字列を扱うコマンドが無いので、096 を一旦文字列に変換して Locate で表示することができません。
ただし、この問題は簡単に解決できます。096 は、3桁でなくて2桁なので、3桁未満の時は文字 "0" を先に表示してから3桁未満の数値を表示すれば良いだけです。

あるいは、先に文字列 "000" を表示した上に 必要な桁から2桁か2桁の数値を上書きする方法もあります。 
過去の Casio Basic 入門でも、この方法は使っています。

但しこれらの方法では、ある所定の数値の場合に Locate の実行回数を減らすことができずい、本質的な解決策とはならない中途半端な方法だと考えました。

そんなわけで、表示に時間がかかるものの、ロジックとしては素直でコンパクトな前回のプログラムを紹介したわけです。




3桁表示の高速化

sentaro 様から面白いロジックをご提案頂き、それを紹介したいと思います。これは、3桁区切りをチョット巧妙に実現するものです。そのロジックやプログラムの実装方法は初級というよりも中級に入るかも知れません。

例えば 12345678 を表示する前に、コンマが入るところに 0 を入れた数値を作って、

1203450678

として、一旦この数値を Locate で表示します。

次に、コンマが入るところの 0,(コンマ)で上書きして(Locate コマンド使用)、

12,345,678

とすれば良い...といった考え方です。私には思いつかなかった面白いものです。

この8桁の数値を3桁区切り表示する時の Locate 実行回数は3回になって、激減します(前回のプログラムだと10回実行)。

このロジックだと、上で問題が発生した 139096 の場合は、一旦 1390096 に変換して、この数値を Locate で表示。続いてコンマが入るべき 0 の位置に Locate, (コンマ)を上書きするので、

139,096

と正しく表示されます。

なかなかよく考えられたロジックですね。

前回作ったプログラムでは、Locate を7回実行するところ、2回で済むので、表示が大いに高速化されます。




新ロジックの実装

そこで、3桁区切り表示を行うサブルーチン 3DIGIT3DIGIT2 とします。
メインルーチンは、COMPINT2COMPINT3 にします。


プログラムを以下に示します。

・サブルーチン: 3DIGIT2
・メインルーチン: COMPINT3

ファイル名: 3DIGIT2

Z=0⇒Retuen
Int(log(Z))+1→K
(K≥4)+(K≥7)+(K≥10)→I
Frac(Z÷1
x103)×1x103→U
Int(Frac(Z÷1x106)×1x103)→V
Int(Frac(Z÷1x109)×1x103)→W
Int(Z÷1x109)→D

If K≤8:Than
Locate X,Y,1x108×W+1x104×V+U
I≥1⇒Locate X+K-2-(I=1),Y,","
I≥2⇒Locate X+K-6,Y,","
Else
Locate X+3+2×(I≥3),Y,1x107+1x104×V+W
Locate X+0,Y,1x104×D+W
Locate X+K-2+(I≥3),Y,","
Locate X+K-6+(I≥3),Y,","
I≥3⇒Locate X+K,Y,","
IfEnd



変数の説明

入力値: Z
X座標: X
Y座標: Y


ワーク変数 U:下3桁
ワーク変数 V:中3桁
ワーク変数 W:上3桁
ワーク変数 D:最上位1桁
ワーク変数 K数値の桁数
ワーク変数 I:三桁区切り文字の数



ここで、解説を2つだけ...


青文字の( ) の部分

この ( ) は、0か1かの値になります。( ) の中が正しいなら(真ならば)1、正しくなければ(偽ならば)0になります。この性質をうまく使って計算式に中で利用しています。


赤文字 x104 の表記

これは [x10x] キーを押して入力します。


メインルーチンは、呼び出すサブルーチン名を変更するだけ...

ファイル名: COMPINT3
Locate 1,1,"1-C:"
Locate 1,2,"2-R:"
Locate 10,2,"3-Y:"
Locate 1,3,"TOTAL"
Locate 1,4,"MONTH"


0→B:0→R:0→N:0→T:0→M

Do

0→K:Do
Getkey→K
LpWhile K=0
K=73⇒Break

If K=35
Then
5→X:1→Y:8→D:1→E
Locate X,Y,"      " (スペース11個)
Prog "INP":Z→B
Prog "3DIGIT2"
Else If K=36
Then
5→X:2→Y:4→D:1→E
Prog "INP":Z→R
Else If K=37
Then
14→X:2→Y:3→D:1→E
Prog "INP":Z→N
IfEnd:IfEnd
IfEnd

If BRN:Then
Int(B(1+R÷100)^(N))→T
Locate 7,3,"     " (スペース10個)
T→Z:7→X:3→Y
Prog "3DIGIT2"
Int(T÷N÷12)→M
Locate 7,4,"     " (スペース10個)
M→Z:7→X:4→Y
Prog "3DIGIT2"
IfEnd

LpWhile
 1
Cls
Locate 7,2,"BYE!"



3桁区切りでの表示が劇的に速くなりました。
コードを眺めて、プログラムの巧妙さを楽しんでください。



fx-5800P の Casio Basic には文字列処理の機能がありませんが、工夫次第で色々と実現できるわけで、逆に言えば Casio Basic がそれだけ高機能だとも言えますね。



つづく...

Casio Basic入門54Casio Basic入門G01 / 目次




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ



 



keywords: fx-5800PCasioBasic、入力ボックス, プログラミング入門プログラム関数電卓

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




関連記事

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

プログラムライブラリ - マスターマインド Ver. 4 カラー版

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2017/10/23

MASIOV4C (マスターマインド カラー版) - fx-CG20 / fx-CG50

著作権者

ツル
[当ブログ読者]



対応機種

カラーグラフ関数電卓: fx-CG20 / fx-CG50



MASIOV4C について

Master Mind for Casio Calculator ⇒ Master Mind + Casio ⇒ MASIO と作者により銘々
既に公開している Ver. 3 をより本来の マスターマインドに近づける感じにした最終版 

Ver. 4 でカラー版なので、MASIO + V4C ⇒ MASIOV4C

Ver. 3 については、ゲーム ~ マスターマインド (fx-CG20 / fx-CG50) 参照



ゲームの遊び方

(Ver3からの変更点)
  • 左下から入力始め、右上へ進行
  • 判定を、白丸・黒丸以外にも、HBの下に数字を表示
  • Normal ModeとEasy Modoとを追加。SHIFTキーで切替え
  • Normal Modeでは、(ー)で回答表示すると、そのゲームでの♢獲得はなし。 次のゲームへ進む。
  • Normal Modeでは、6トライ以内に正解の場合、♢2個獲得。10トライ以内に正解の場合、♢1個獲得。
  • ♢の合計が10個になると、祝画面表示が見られる。
  • Easy Modeでは、正解で♢10個獲得でき、祝画面が見られる。
  • メイン画面左上に、現時点で獲得できる♢数を表示。
  • メイン画面に、Normal ModeではN。Eazy ModeではE を表示 (現在のモードがわかる)
  • いつでも、EXITキーにて終了可能。
  • p・表示は、[・] キーで現時点の獲得♢(prize)数を左上に表示


プログラムファイル

※ プログラムファイル: g3m ファイル (fx-CG20 / fx-CG50) のダウンロード





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


 

keywords: CasioBasicプログラム電卓、圧力換算、fx-5800P、fx-9860GII、fx-CG20fx-CG50

関連記事

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

プログラムライブラリ - マスターマインド Ver. 4 - モノクロ版

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2017/10/23

MASIOV4M (マスターマインド) モノクロ版- fx-9860GII、fx-CG20 / fx-CG50

著作権者

ツル
[当ブログ読者]



対応機種

Casio fx-9860GII、fx-CG20 / fx-CG50 (fx-FD10 Pro でも使えると思われます)



MASIOV4M について

Master Mind for Casio Calculator ⇒ Master Mind + Casio ⇒ MASIO と作者により銘々
既に公開している Ver. 3 をより本来の マスターマインドに近づける感じにした最終版 

Ver. 4 でモノクロ版なので、MASIO + V4M ⇒ MASIOV4M

Ver. 3 については、ゲーム ~ マスターマインド (fx-9860GII) 参照



ゲームの遊び方

(Ver3からの変更点)
  • 左下から入力始め、右上へ進行
  • 判定を、白丸・黒丸以外にも、HBの下に数字を表示
  • Normal ModeとEasy Modoとを追加。SHIFTキーで切替え
  • Normal Modeでは、(ー)で回答表示すると、そのゲームでの♢獲得はなし。 次のゲームへ進む。
  • Normal Modeでは、6トライ以内に正解の場合、♢2個獲得。10トライ以内に正解の場合、♢1個獲得。
  • ♢の合計が10個になると、祝画面表示が見られる。
  • Easy Modeでは、正解で♢10個獲得でき、祝画面が見られる。
  • メイン画面左上に、現時点で獲得できる♢数を表示。
  • メイン画面に、Normal ModeではN。Eazy ModeではE を表示 (現在のモードがわかる)
  • いつでも、EXITキーにて終了可能。
  • p・表示は、[・] キーで現時点の獲得♢(prize)数を左上に表示


プログラムファイル

※ プログラムファイル: g1m ファイル (fx-9860GII) のダウンロード





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


 

keywords: CasioBasicプログラム電卓、圧力換算、fx-5800P、fx-9860GII、fx-CG20、fx-CG50

関連記事

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

Casio Basic: Cls

Casio Basic
コマンドリファレンス

Casio fx-5800P、fx-9860GII、fx-CG20、fx-CG50 で確認をとっています。Casio fx-FD10 Pro では互換性はあると考えられますが、実機で確認していないので「可能性」としてご覧ください。
訂正 2017/10/22



fx-5800P / fx-9860GII / fx-CG20 / fx-CG50
Cls / ClrText

◆ 概 要: テキスト画面を消去する。

◆ 書 式: Cls (fx-5800P) / ClrText (fx-9860GII, fx-CG20/CG50)

◆ 引 数:なし

◆ 戻り値:なし


fx-5800P と fx-9860GII や fx-CG20/50 では Cls コマンドの機能が異なる。

<fx-5800P >
Cls は画面全体 (テキスト画面全体) を消去する。同時に内部カーソル行を1行目にリセットする。

<fx-9860GII / fx-CG20/50>
  • fx-9860GII や fx-CG20/CG50 の Cls は、グラフィックス画面の消去を行う。
  • fx-9860GII や fx-CG20/CG50 は、出力先にグラフィックス画面とテキスト画面の2つを持つ。
テキスト画面の消去には ClrText を使う。fx-5800P の Cls と同様に、テキスト画面の消去と同時に、内部カーソル行を1行目にリセットする。
グラフィックス画面の消去には、Cls  と ClrGraph が用意されていて、これらは動作の詳細が異なる。ClrGraph は単にグラフィックス画面の消去するだけでなく、座標系をデフォルトの論理座標に設定し、さらに目盛間隔を 1 に設定する。Cls は座標系や目盛間隔の設定変更を行わず、単にグラフィックス画面を消去する。



< fx-5800P の Cls と fx-9860GII や fx-CG20/50 の ClrText の動作 >
内部カーソル行リセットは、以下のプログラムから確認できる。

""
"LINE"◢
Cls
"LINE"◢


これを実行すると、"" により内部カーソル行は2行目になるので、2行目に

LINE

と表示され、プログラムが一時停止する。[EXE] キーでプログラムを再開すると、Cls が実行される際に内部カーソル行が1行目にリセットされる。従って、次は1行目に

LINE

と表示される。


< fx-9860GII や fx-CG20/50 の Cls の動作 >
以下のプログラムで、テキスト画面での Cls と ClrText のテスト、そしてグラフィックス画面での Cls のテストを行います。

Locate 1,2,"bra-bra-bra"
Locate 1,3,"Cls Test"
"Hit any number key"?→A
Cls
"Cls does NOT delete text."
"Press [EXE] key"◢
""
""
"Try ClrText test"
""
"bra-bra-bra"
"Hit [EXE] key"◢
ClrText
"It works!"
""
"Internal cursor reset back to the 1st line."
"Hit [EXE] key"◢

ViewWindow 0,126,0,0,62,0
PlotOn 10,10
Text 1,1,"Dot drawn by PlotOn 10,10"
Text 7,1,"Cls test"
Text 13,1,"Press [EXE]"◢
Cls
Text 1,1,"It works!"
Text 7,1,"Try again"◢
PlotOn 10,10
Text 13,1,"Dot drawn again at same position!"


テキスト画面では、Cls で消去できないこと、ClrText は消去と同時に内部カーソルが1行目にリセットされることが分かります。
さらに、グラフィックス画面で、Cls を実行すると、画面消去されますが、座標系設定の変更は行われないことが分かります。




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ


keywords: fx-5800PCasioBasicClsプログラミング入門プログラム関数電卓

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

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

Casio Basicコマンドリファレンス

Casio Basic
コマンドリファレンス

Casio fx-5800P と fx-9860GII、fx-CG20、fx-CG50 で確認をとっています。Casio fx-FD10 Pro では互換性はあると考えられますが、実機で確認していないので「可能性」としてご覧ください。
※随時拡充してゆきます
最終:2017/10/20


目 次


◆ 入力
      ? 
      Getkey

◆ 出力
     
      "  "

◆ 代入
     

◆ 画面表示
      Locate
      Cls
      ClrText



◆ 条件分岐
      If文: If ~ Then (~ Else) ~ IfEnd

◆ ジャンプ
      Goto / Lbl
      Dsz命令
      Isz命令
      ⇒命令

◆ ループ(繰り返し)
      Lbl / Goto
      Do文 (Do ~ LpWhile)
      While文 (While ~ WhileEnd)
      For文 (For ~ To (~ Step) ~ Next)

◆ 関係演算
  = / ≠ / > / ≧ / < / ≦

◆ 論理演算
  Or / And / Not (/Xor)

配列変数 (fx-5800Pのみ)

◆ リスト
  List [  ]

◆ 行列計算 

◆ 実行制御
  Prog
  Break
  Return
  Stop

◆ 各種関数
  Int / Frac
  
log()

◆ 計算結果の出力設定 
  EngOn / EngOff / Eng
  Norm 

グラフィックスコマンド [fx-9860GII / fx-CG20 / fx-CG50]
  ※ 探索集のグラフィックスコマンドをまとめたもの
  ※ コマンドリファレンス作成中





応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ

  

商品詳細を見る

keywords: fx-5800PCasioBasicプログラミング入門プログラム関数電卓

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

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

Casio fx-CG50 の概要

 
初版: 2017/07/23
訂正・カタログ機能追記 2017/07/23
追記 2017/07/24
追記 2017/07/28
追記 2017/08/06
更新 2017/08/07
更新 2017/09/23
追記修正 2017/09/26
追記 2017/10/20


Casio fx-CG50

画像と文章が重なっている場合は、ページの再読込を行ってください(最近この問題が発生しています)。

fx-CG50 noce photofx-CG50 が欧米で発売されたので、国内発売前に入手して調べてみました。本気で欲しいと思える製品です。

fx-JP900 のデザインを踏襲しています。角に丸みのある四角い形状と高級感のあるフロントパネル、黒・白・シルバーを基調とした色使い。カシオの新しい形。所有する喜びを感じるデザインではないでしょうか?

fx-CG50 は、fx-CG10 PRIZM (北米モデル) や fx-CG2 の後継機で、欧米で 2017年3月末に発売されました。ほぼ7年ぶりの後継機種投入です。

fx-CG50 紹介 (英語のサイト)

日本未発売前に、eBay USA で購入しました。この記事を書いている時点では、eBay USA での実売価格は、新品で100ドルを下回る程度です。国際輸送費を考えてもアメリカからの入手は現実的だと思います。但し配送に時間がかかります(最低でも2週間程度)。

[2017/10/20 追記] ついに 2017年10月20日に fx-CG50 が国内発売!
カラーグラフ関数電卓 fx-CG50 
fx-CG50

既にカシオの国内サイトでは fx-CG50 (OS 3.10) の日本語マニュアルが公開されていることから、国内販売は現行の Ver 3.00 でなくて、Ver 3.10 になると思われます。
 
[2017/09/23 追記] fx-CG50 日本語マニュアル
fx-CG50 の日本語マニュアルがカシオ日本語サイトの 取扱説明書ダウンロードサイト からダウンロードできるようになりました。ハードウェアマニュアルとソフトウェアマニュアルの両方の日本語アニュアルです。ソフトウェアマニュアルが OS Ver 3.10 用になっています。国内販売前のバーションは 3.00 です。現時点では OS アップデートファイルはまだ公開されていませんが、国内おカシオサイトや Casio World Education Website で近々ダウンロード可能になると思われます。恐らく同時に fx-CG20 を OS 3.10 にアップデートできるようになるようです (OS 3.10 ソフトウェアマニュアルは fx-CCG20 OS 3.10 と共用のため)。

[2018/09/26 追記] OS 3.1 へのアップデートファイル公開
Casio World Education Website のサポートページ ([Accept] をクリックして先に進む) から OS3.10 へのアップデート用アプリとアップデート方法の説明書 (PDF) をダウンロードし、説明書に従って作業を進めます。アップデートアプリの指示があるまで電卓とPCを接続してはダメと書かれていますので要注意。

OS 3.1 へのアップデート
ダウンロードしたアップデート用アプリ (fx-CG50 Sries OS Ver.3.10 Update.exe) をPCで実行すると、私の場合は 日本語 Windows 10 Home ですが、自動的に日本語表示でアプリが起動しました。注意深く表示に従って作業を行うと、アドイン 3D-Grph もアップデートするように聞いてくるので一緒にアップデートしました。 [MENU] - System - [F4] (Version) で確認すると OS は 3.10.0202 に、3D Graph は 01.01 になりました。


なお、fx-CG50 は言語を選択できますが、OSアップデートしても日本語は選べません。言語の選択肢に中文も含まれているので日本語対応も容易だと思います。スタンダード関数電卓 fx-JP900 は表示が日本語化されているので、このデザインコンセプトを引き継いだ fx-CG50 もいずれ日本語表示に対応することを期待します。

 
 
はじめに

Casio Basic の機能に着目すると、以下に列挙した機種が同じカテゴリに含まれるプログラム電卓です。

 - 2006年発売 fx-5800P 
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2011年発売 fx-CG10 PRIZM (北米のみ)、fx-CG20とほぼ同じ
 - 2012年発売 fx-CG20 (fx-CG10 PRIZM の約1年後)
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50 (欧米のみ、2017/10/20国内発売予定)

fx-CG50 は fx-CG10 PRIZM / fx-CG20 の後継機種です。1つ前に発売されている fx-FD10 Pro は、fx-9860GII のハードウェアを利用しながらアドインが使えず Casio Basic 専用機である点で異質な存在です。
 
 
fx-CG50 の位置づけ [2017/08/07 更新]
Casio Basic に着目すると、fx-CG50 の位置づけが明確に見えてきます。
  • fx-9860GII:モノクロ液晶搭載の最上位機。
  • fx-CG10 PRIZM / fx-CG20:fx-9860GII のディスプレイを高精細&カラー化したもの。しかし Casio Basic では テキスト、グラフィックずれも画面出力処理が極めて遅く、fx-9860GII の方が遙かに速い。カラーだが出力が遅い fx-CG10 / CG20 が良いのか、モノクロだが出力が速い fx-9860GII が良いのか、2機種の甲乙を付けられない状況だった。言い換えれば、fx-CG10 / 20 は必ずしも fx-9860GII の後継機種とは言えないのだ。
  • fx-CG50:高精細カラー液晶へ出力が大幅に高速化したのが最大の改善点で、fx-9860GII と同レベルになった。
fx-CG50 の Casio Basic は、カラーと高精細に関係するコマンドを除けば fx-9860GII と互換です。fx-9860GII で作った Casio Basic は、fx-CG50 でほぼ同じ出力速度で動作します。

互換性の無いコマンド:
※ パラメータ見直しが必要なコマンド:PxlOn、PxlOff、PxlChg、PxlTest(
※ 転送時に自動的にパラメータが変更されるコマンド: Text

fx-CG50 は、fx-9860GII をカラー化した後継機種、現時点での最上位機と位置づけられます。
 
 
ハードウェア機能
fx-CG50 は、fx-CG20 から内部のハードウェアが変更されています。CPU は同じものを使いながら、処理速度を向上させ、一方で消費電力が抑えられ、バッテリー駆動時間が延びました。RAM (ストレージメモリ) は、fx-CG20 の SRAM から fx-CG50 では SDRAM に変更されています。

fx-CG50 の省電力化 (fx-CG20 との比較) ※2
動作モードfx-CG50fx-CG20省電力化の傾向 ※3
電源OFF 0.1 mA 以下 0.1 mA 以下---
電源ON
 RUN-MAT待機状態、輝度1※1 2.5 mA (10.0 mA) 3.0 mA (14.3 mA)16.7% (30.0%)
 RUN-MAT待機状態、輝度3 ※1 5.5 mA (13.0 mA) 8.3 mA (21.0 mA)33.7% (38.1%)
 RUN-MAT待機状態、輝度5 ※1 9.5 mA (18.0 mA) 16.4 mA (30.8 mA)42.1% (41.6%)
 Casio Basic実行、輝度1 ※1 21.1 mA (22.2 mA) 23 mA (30.3 mA)8.3% (26.7%)
 アドイン実行、輝度1 ※1 39.8 mA (40.4 mA) 38.0 mA (50.0 mA)-4.7% (19.2%)
※1: カッコ内は USB接続状態、※2: sentaro様ご提供の測定値 を使用
※3: 省電力化の傾向 (%) = ( CG20の値 - CG50の値 ) / G20の値 × 100

同じ CPU を使っているので、電流値の変化が消費電力の変化と見なします。
処理速度については、関数や Casio Basic の処理内容に応じた比較測定の結果を以下で紹介します。
 
 
ソフトウェア
 fx-CG50 のソフトウェアは、ハードウェアの違いを吸収する OS が Ver 3 にバージョンアップしています。表に出てくる関数機能や Casio Basic の機能面では違いが見られません。アドインについては、ROM や RAMに直接アクセスしたり、SRAM からSDRAM に変更された RAM の違いの影響が現れるようなコードが使われていない場合は、fx-CG20 と fx-CG50 では同じアドインプログラムが動作します。fx-CG50 になってもアドインの拡張子が g3a と変わっていないことも互換性の高さを裏付けています。

fx-9860G と fx-9860GII にはアドイン作成用のカシオ公式SDKが公開されていますが、fx-CG20 以降は公式なSDKがありません。従って、カシオ純正あるいは公認の アドイン (g3a) ファイルなら fx-CG20 と fx-CG50 での互換性は保たれると考えても良さそうですが、サードパーティや個人が作成したアドイン (g3a) ファイルは、使用に際して fx-CG50 での動作確認がされているかに注意が必要です。 

さて Casio Basic については、fx-CG20 とfx-CG50 は完全互換です。違いを探していますが、未だに見つかっていません。プログラムファイルの拡張子も同じで g3m のままです。
 
 
キー入力の問題
CG50 Ten Keys 

写真に写っている大きなキートップのテンキーなどは、キーの右側を軽く押すときに入力を受け付けないことがあります。キーの左側を押す時は問題ありません。他の所有者の fx-CG50 でも同じ問題があることが分かりました。

慣れれば問題ないかも知れません。しかしチャッチャッとキーを速く軽く叩く使い方は特殊でないでしょうし、そのような使い方では入力を受け付けないことが確実にあります。もぐら叩きゲームのようなテンキーの早押しが必要な場合は、慣れの問題ではなくて避けられない問題となるかも知れません。そこで特に必要性は無いけれど面白そうなので、もぐら叩きゲーム fx-5800P 版を移植して fx-CG50 版を作り 遊んでみました。急いでキーを叩く際、どうしてもキー入力の不備からゲーム進行が不利になります。

この不具合は、キーのバネ機構と接点パネルに関する設計や組み付け工程の問題、或いはこれらの複合的問題によると推察しています。この不具合をカシオが認識して、国内発売までに改善するのかどうかに興味があります。

fx-5800P のカバーヒンジの問題、fx-JP900 のハードカバーの問題 (問題は既に指摘、整形の問題のないロットの存在については今後記事にするかも...) に続いて、今回 fx-CG50 テンキー問題も出てきました。とても残念です。
 

 
目 次

1. 海外から直接購入


2. 到着したパッケージ

3. 外 観

4. 他機種との比較
 4.1 地味な改善 - バーコード & シリアルのラベル

5. ダウンロード
 5.1 OSアップデート
 5.2 取扱説明書
 5.3 アドインプログラム
 5.4 サポートソフトウェア

6. データ転送
 6.1 PCとのリンク
 6.2. 電卓同士のデータ転送

7. バックアップ

8. ハードウェア
 8.1 キー入力
 8.2 液晶表示

9. 関数電卓としての機能
 9.1 ユーザデータのバックアップ機能
 9.2 3桁区切り表示
 9.3 複素指数関数
 9.4 積分関数の処理速度
 9.5 周期関数の積分

10. Casio Basic の互換性

11. カタログ機能

12. Casio Bsic の処理速度
 12.1 計算主体
 12.2 動きのあるテキスト出力
 12.3 動きのあるグラフィック出力

13. さらなる高速化
 13.1 オーバークロック
 13.2 アドイン版Casio Basic (C.Basic)
 

 
海外から直接購入

[2017/07/28 追記]
Amazon USA で日本への輸出が可能な fx-CG50 の取り扱いが始まっています。sentaro様が ここから購入したところ、驚くほど短時間で入手したとの情報がありました。Amazon USA での購入が、推奨可能な候補として浮かび上がりました。注文から配達までの概要は以下の通り(この場合は僅か3日で配達!);
場所日付・現地時間状況
某所2017/07/27配達完了
大阪2017/07/26 20:20最終配達の手配

2017/07/26 11:10輸入通関

2017/07/26 10:19空港到着
アンカレッジ、アラスカ州2017/07/25 9:05空港出発

2017/07/25 7:03輸出通関

2017/07/25 5:55空港到着

2017/07/25 2:16空港出発
オンタリオ、カリフォルニア州2017/07/24 22:47空港到着
シアトル、ワシントン州2017/07/24 20:18空港出発
ケント、ワシントン州2017/07/24 15:19現地営業所スキャン
セラー (出荷)2017/07/24 18:31 (ET)UPSへの引き渡し

※ これはかなり理想的なケースだと思われ、Amazon USA で購入しても必ずこんなに速く配達されるわけでは無さそうです。というのも、Amazon USA でポチッとしたのが月曜(平日)で、即日セラーから出荷されたこと、東海岸のセラーから日本向け飛行機が飛ぶ西海岸までの輸送が陸送だけでなく航空便が使われたこと、さらにアメリカの東海岸から西海岸までの3時間の時差に助けられて見かけ上時間が短縮されていること、そして日本向け飛行機での配送が即日行われたこと(一旦貨物が集まるまで滞留させなかったこと)、日本到着時が平日で即日通関されたこと、など全ての良い要因が重なっているからです。
  • 概要: 国内のショッピングサイトでは fx-CG50 の並行輸入品の扱いが見つからなかったので、今回はアメリカの eBay で直接購入しました。海外品を買うには、セカイモンeBay などで購入して国際貨物で送って貰うことになります。このような個人輸入の場合、国際貨物の扱いや輸入手続きは業者が全てやってくれるので、個人輸入という実感はあまりありません。セカイモンは手数料を取って国際貨物や輸入通関まで全て面倒をみてくれ、さらに日本語で注文できるので、かなり楽です。eBay の場合は国際配送を引き受けるセラー(Seller、業者)が出品している場合は購入者は何もしなくて良いのですが、国際配送をやっていないセラーから買う場合は、国際配送業者を別途利用する必要があります。
  • eBay での商品選び: eBay の場合は、実績と評判のあるセラーから購入した方が良いと思います。Top-rated Seller (高評価のセラー) といった表示があるので、そのセラーのページで確認して自分なりに納得してから決められます。新品 (new in box) といった表示で新品が確認できない時は中古の可能性もあるので、確認しましょう。fx-CG50 の場合でも、安いものの中には注意深くみてゆかないと中古品であるケースがあり、紛らわしいと感じるものがあったので、新品が欲しい場合は要注意です。
私の場合は、fx-CG50 新品の本体価格が¥10,915、輸送費が ¥2,316 でした。輸送費用の傾向として、ヨーロッパの方が北米よりもかなり高いので、北米のセラーから購入する方がお得のようです。
  • セカイモンと eBay のコストの違い: セカイモンは、 eBayと提携しているので eBay と同じセラーからの同じ商品が同じ本体価格で購入できます。違いは、ページでの提示期間と配送手数料です。セカイモンの方が早く締め切る傾向があり、購入する場合は即決に近い判断が必要なケースが多いようです。日本語で買える安心感、国際配送と通関手続きがお任せのセカイモンは、手数料分の価値はあると思います。英語でも良いなら eBay の方が商品提示期間が長く多少でも余計な手数料を取られないので、費用面でもお得です。
  • セカイモンと eBay の配送期間の違い: いずれにしても配送時間は最低2週間と普通の国際便よりは時間を要します。今回 eBay USA を初めて使って、とにかく時間がかかることがよく分かりました。アメリカ国内のセラーから国際発送を行うセンターまで陸送で一旦貨物が集められ(カリフォルニアから日本とは逆方向のケンタッキー)、そこでスグ日本へ送ることはなく、1週間程度滞留させるので、ここで余計な時間がかかります。国際便のコストを下げるためにある程度貨物をまとめる必要があるのだと理解しています。ポチッとしたから手元に届くまでの時間については、セラーの場所と国際配送センターの場所に依存するようで、どちらが速いかについては、なんとも言えないと思います。アメリカと日本の祝祭日の影響もありますので、ポチッとした日にも依存します。国際配送センターで多くの日本向け貨物がまとまれば滞留日数が短くなる可能性もあるでしょう。
私の場合は、
- 7/2 (日): ポチッとし決済
- 7/3 - 7/4 (月~火): 7/4が独立記念日で 7/3 も休みで連休、セラーはお休み
- 7/5 (水):セラーが出荷、UPS サンフランシスコセンターが受け取る
- 7/6 (木):UPS コネチカットセンターを通過 (アメリカ国内はトラック輸送と思われる)
- 7/7 (金):ケンタッキー州アーランガーにある国際配送センターに到着
- 7/13 (木):国際配送の FedEx に引き渡し。センターに6日も滞留していた
      ※ eBayに問い合わせたら、通常センターに1週間は留め置くと回答あり
- 7/14 (金):一旦テネシー州のメンフィスに寄り道 (おそらくここまでは陸送と思われる)
- 7/15 (土):メンフィスで輸出通関
- 7/16 (日):成田到着
- 7/17 (月):輸入通関、FedEx横浜営業所に到着
- 7/18 (火):横浜営業所で、何故だか丸一日滞留
- 7/19 (水):配達完了

  • 決済について:セカイモンは eBay と提携しており、eBay と PayPal は同じ傘下の会社なので、セカイモンでも eBay でも PayPal での決済ができます。PayPal での決済は、事前登録が必要ですが、決済手続きは日本語で可能、決済の記録も日本語で確認できるのが利点です。私は eBay で商品を探して、そのまま PayPal で決済しました。
  • eBay USA のカスタマーサポート:7/2に決済が済んでいるのに 3日たってもトラッキングの状況に変化がないことの問い合わせ、それから国際配送センターからの配送が6日間も留め置かれている状況の問い合わせを行いました。eBayのページからフォームを使って質問を送ったところ、いずれも12時間以内に返信があり、考えられる次の問い合わせを行うための細かい案内も付されていて、レベルは高いと思います。
 
<目次に戻る>
到着したパッケージ

fx-CG50 Package 1  fx-CG50 Package 2 

ブリスタパッケージは、分厚いプラスチックがガッチリと融着されているので、楽には開けられません。しっかりしたハサミで周囲をカット。

items inside package 

fx-CG50 本体、Quick Start Guide、単四アルカリ電池4本 (試供品)、PCリンク用のUSBケーブル、ダウンロードや登録(アメリカのみ) の説明、保証書が入っています。CD や 3Pinケーブルは同梱されていません
 
 
<目次に戻る>
外 観

CG50 & JP900 1  

fx-JP900 (右) とそっくりです。
四角いオーソドックスな形状は落ち着きを与え、長く使っても飽きが来ない感じで、好きなデザインです。

キーの上の印刷された文字ですが、老眼の始まった私には、fx-JP900 の印刷はとても見づらいのですが、fx-CG50 ではフォントが大きく色のコントラストも向上して、見やすくなっています。

CG50 & JP900 2 

fx-CG50 に fx-JP900 を重ねてみます。fx-CG50 の大きさを感じます。

CG50 & JP900 3  CG50 & JP900 4 

fx-CG50 と fx-JP900 をカバー付き (左) とカバー無し (右) で重ねてみたところ。厚みが3倍くらい違うことが分かります。

写真では分かりにくいですが、筐体やカバーの表面は、fx-JP900 はツルツルのテカテカですが、一方 fx-CG50 は細かい凹凸があります。使っているウチに表目に細かい擦り傷が付いても、あまり目立たないのではないかと思います。

液晶部が一段低くなっていますが、保護ウィンドウが傷つきにくい感じなのは良いです。
というのも、fx-CG20 の透明な上部パネルは、まともに表面処理をしておらず簡単に傷つきます。私の fx-CG20 は新品購入時に既に細かい傷が多く付いていましたが、不良とは認めて貰えず製造上に発生するもので、こういうものだとの説明でした。この点が改善されたと思います。

foot  rubber foot 
fx-JP900 は成形で作った出っ張りで4カ所の足にしています。一方、fx-CG50 はゴム足です。但し fx-9860GII や fx-CG20 の黒いゴム足ではなくて、半透明になっています。黒いゴム足は、使い込んでくるとテーブルやノートにくっついて、黒い跡が残ることがあるのですが、その問題が無くなりそうです。

所有したくなるデザインの電卓だと思います。
 
 
<目次に戻る>
他機種との比較

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

 fx-CG50fx-CG20fx-9860GIIfx-5800P
 電池 単四 x 4 単四 x 4 単四 x 4  単四 x 1
 電池寿命 (メーカー測定基準) 170 時間 140 時間 200 時間 1年
 サイズ (mm) 18.6x89.0x188.5 20.6x89.5x188.521.2x91.5x184 15x82x163
 重さ (g) 230 230 225 150
 液晶ディスプレイ解像度
 ・Casio Basic グラフィック
 ・Casio Basic テキスト
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
 96 x 31 pixel
・---
・4 x 16 文字
 仮数 + 指数 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁
 内部演算桁数 15桁 15桁 15桁 15桁
 プログラムメモリ容量 最大 ~61 KB 最大 ~61 KB 最大 ~62 KB 最大 ~28.5 KB
 メインメモリ (利用可能) ~61 KB ROM ~61KB ROM ~64 KB ROM ~26.5 KB
 ストレージメモリ  ~16 MB SDRAM ~16 MB SRAM ~15 MB SRAM ---
 プログラムファイル名 最大8文字 最大 8文字 最大 8文字 最大 12文字
 CPU SH4A (SH7305) SH4A (SH7305) SH4A (SH7305)
  クロック ~118 MHz ~59 MHz ~29 MHz ? MHz
 - FLL:  14,75 MHz x900 14.75 MHz x900 14.75 MHz x900 ---
 - PLL:  FLLx16, 235.93MHz FLLx16, 235.93 MHz FLLx16, 235.93 MHz ---
 - IFC: CPUコアクロック 1/2 PLL, 117.96MHz 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz ---
 - SFC: SuperHywayバスクロック 1/4 PLL, 58.98MHz 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz ---
 - BFC: メモリバスクロック 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz 1.8 PLL, 29.49 MHz
 - PFC: I/Oクロック 1/8, 29.49MHz 1/16, 14.75 MHz 1/16, 14.75 MHz ---
sentaro様作成の カシオグラフ関数電卓用チューンアップツールを使用した結果、マニュアル記載の内容によります。


地味な改善 - バーコード &  シリアル のラベル [2017/08/06 追記]
fx-9860GII や fx-CG20 は、電卓裏側に バーコードとシリアルのラベルが貼り付けられています。当然ながら長らく使っているとラベルの印刷が摺り切れて読めなくなります。fx-CG50 では電池ケースの内部にラベルを貼っているので、摺り切れることはありません。地味だが大切な改善だと思います。

fx-9860GII Barcode & Serial Label fx-CG50 Barcode & Serial Label 
左の fx-9860GII のラベルは印刷が見えなくなっている。右の fx-CG50 のラベルは電池ケースの仲に貼ってある。
 
 
<目次に戻る>
ソフトウェア ダウンロード

PCリンクソフト、出荷時に無いアドインは、CASIO Worldwide Education Website (WEW) からダウンロードできます。このページから
  • 上のメニューで Support をクリック、
  • 言語として English を選び (日本語が無い)、
  • Graphic Model を選び、
  • SOFTWARE LICENSE AGREEMENT で Accept をクリックする
これで、fx-CG50 Series のリソースダウンロードのページに行けます。
 
 
OSアップデート [2017/09/26 更新]
fx-CG50 本体で、[MENU] - [System] - [F4] (Version) で確認すると、OSバージョンは 03.00.0202 となっていました。
fx-CG50 のOS が 3.10 にアップデートできます。Casio World Education Website の Download Resoureces のページからダウンロードアプリと作業説明(PDF) がダウンロードできます。
 
 
<目次に戻る>
取扱説明書 [2018/09/23 更新]
日本語取扱説明書は、カシオ取扱説明書ダウンロードのページ から入手できます。

英語等多国語版は、Casio World Education Website の Download Resources のページから、User's Guide for fx-CG Series Handheld をクリックすると、各国語のハードウェアマニュアルとソフトウェアマニュアルがあるので、そこから入手できます。日本語版取扱説明書がまだ無かった時は、English 版をダウンロードしました。
- [PDF File] User's Guide Version 3.0 -Hardware- (English)
- [PDF File] User's Guide Version 3.0 -Software- (English)
 
 
<目次に戻る>
アドインプログラム
fx-CG50 のリソースダウンロードのページで、Add-in Software をクリックし、各種アドインプログラムをダウンロードできます。ダウンロードできるアドインの中で、私の fx-CG50 に購入時にインストールされていなかったのは、Probability Simulation だけです。
アドインのインストールマニュアル - 日本語版
Add-in Software の下の User's Guide for fx-CG Sries Handheld のさらに下に  [PDF File] Installation Guide をダウンロードしてみると、各国語別のガイドがありますが、ナント日本語版が含まれていました。
 
 
<目次に戻る>
サポートソフトウェア
Screen Receiver - 電卓画面をPCで表示するソフト
fx-CG50 のリソースダウンロードのページで、Support Software をクリックし、Screen Receiver がダウンロードできます。バージョンは 3.02 で、fx-CG20 /10 用と同じバージョンで、共通して使えます。
 
  
<目次に戻る>
データ転送
 
PCとのリンク


標準添付の USBケーブルを使います。
USBケーブルで fx-CG50 と PC を繋ぐと、fx-CG50 の液晶での表示が接続モード (Connection Mode) になります。
ここで、[F1] (USB Flash :[F1]) を押すと、ポップアップウィンドウで Preparing USB と表示され、少し待つと接続完了です。

後は、エクスプローラで fx-CG50 がドライブとして表示されるので、PC上と同じ操作でファイルのやりとりができます。 

PCLink_PCDisp 
fx-CG50 内のフォルダ / ファイル はこのように表示されます。ここで、System Volume Information フォルダがありますが、fx-CG50 ドライブに名前を付けたことで作成されたものです (日付けを見れば後から作成されたことが分かりますね)。

fx-CG50 を接続した時のドライブには最初は名前が無いので、FX-CG50 と名前を付けました。ドライブを右クリックしてプロパティを選び、そこで名前を入力できます。

CG50 PCLink Drive Name 

さてPCと接続中の fx-CG50 の液晶画面には、fx-CG20 には無かった新しい === Caution === 画面 が Tips 画面 (fx-CG20と同じ) と交互に表示されます。ここでは、「ケーブルを抜く前にPCのUSB接続を終わらせてください」と書かれています。Windows PCの通知領域 (タスクトレイ) で「ハードウェアを安全に取り外してメディアを取り出す」で [CASIO MassStrage Device の取り出し] をクリックします。外付け USBハードディスクや USBメモリの取り出しと同じ操作です。
 
 
<目次に戻る>
電卓同士のデータ転送

3Pinコネクタの接続ケーブル (SB-62) を使って2つの電卓を繋ぎ、接続する両方の電卓で CABLE (ケーブルの選定) で [F2] (F2:3Pin cable) を設定後、一方で TRANSMIT (送信)、他方で RECV (受信) に設定すれば、データのやりとりができます。このケーブルは、fx-9860GII には標準添付されていましたが、fx-5800P、fx-CG20 そして fx-CG50 には標準添付されていません。以前 SB-62 のみを購入した時は ¥2,700 でした。

プログラムを含むデータのやりとりができるのは、fx-9860G、fx-9860GII、fx-CG20/10、fx-CG50 (および fx-9860G あたり以降のグラフ関数電卓) で、Menu に Link 項目があって、3Pin コネクタが付いている機種です。なお、fx-5800P 同士なら、このケーブルを使ってデータ転送可能ですが、fx-5800P と グラフ関数電卓とのデータ転送はできません。

詳しくは、Sofware Manual に書かれているので確認できますが、使ってみれば分かると思います。

[2017/07/28 追記]
fx-CG50 から fx-9860GII へ転送すると、ファイル形式は g3m から g1m へ自動変換され、カラーや細線設定など、fx-9860GII で未対応のコマンドは @ に自動的に置き換えられます。
 
 
<目次に戻る>
バックアップ

万一に備えて、電卓内部のデータをバックアップしておくことを勧めます。PCに保存フォルダを作り、PCとのリンク機能を使って電卓内のデータをPCの保存フォルダに丸ごとコピーしておきます。
PCLink_PCDisp 
購入時のバックアップ、そして適宜バックアップをすると良いと思います。特にオーバークロックを行う場合は、エラー発生時に電卓のリセットが必要になりプログラム、データやプログラムが失われることもあるので、バックアップしてあればこれらを簡単に戻せます。
 
 
<目次に戻る>
ハードウェア

CG50 & CG20 
主に fx-CG50 と fx--CG20 を比較します。
 
 
キー入力
キー配置や各キーに割り当てられている機能は、fx-CG20 と全く同じ。
 
 
<目次に戻る>
液晶表示
液晶のサイズや精細度も fx-CG20 と同じ。
手持ちの fx-CG20 と fx-CG50 を比べる限りでは、明るさや色合いが少し異なっています。

LCD CG50 & CG20 
左が fx-CG20、右が fx-CG50

同じ明るさ設定で比較して気がつくのは、右の fx-CG50 は黄色みがかって少し暗く見えます。fx-CG50 で明るさ設定を 3/5 から 4/5 に変えると明るさは同等になりますが、それでも黄色みがかっています。消費電力低減への寄与もありそうです。

[2017/07/23 追記]
このカラー液晶の輝度と色については、バラツキがあるようです。sentaro様所有の個体は逆の傾向だとコメントを頂きました。
 
 
<目次に戻る>
関数電卓としての機能

fx-CG50 のキーの種類と数、および配置は、fx-CG20 と同一です。fx-9860GII には [SHIFT] [5] (FORMAT) が有りませんが、それ以外は同じです。関数機能も同じです。計算の内部桁が15桁と同じで、各関数の精度範囲も同じなので、fx-CG50 の関数電卓としての使い勝手は fx-CG20 や fx-9860GII と同じです。
 
 
<目次に戻る>
ユーザーデータのバックアップ機能
カシオのスタンダード関数電卓は電源をオフにすると、作業内容やユーザーデータが消えますが、fx-CG50 は各モードでのユーザーデータは一旦電源を切ってもバックアップされます。他のプログラム電卓 fx-5800P、fx-9860GII、fx-CG20 もバックアップされます。

資格試験で使えると称しているスタンダード関数電卓は、数式などが保存できると都合が悪いからバックアップできない仕様になっていると思われます。バックアップ機能だけでも、プログラム電卓を関数電卓として使う価値があると思って、私は日常的にプログラム電卓を関数電卓として使っています。
 
 
<目次に戻る>
3桁区切り表示
カシオの最新のスタンダード関数電卓 fx-JP900 / 700 / 500 では、関数電卓として3桁区切りが登場しました。一般電卓には3桁区切りは普通に搭載されている使い勝手の良い機能なので、登場が遅すぎるようにも思います。

これまでのプログラム電卓には3桁区切り機能は無く、fx-CG50 に3桁区切り機能の登場を期待しましたが、残念ながら対応していません。fx-CG50 のソフトウェアが fx-CG20 から殆ど変わっていない結果とも言えます。デザインは fx-JP500/700/900 を踏襲したので、3桁区切りについても踏襲して欲しいわけで、OSアップデートによる追加対応という現実的な方法もあります。カシオには是非対応して頂きたいと思います。
 
 
<目次に戻る>
複素指数関数
複素数を表示するように設定して、計算させてみると、fx-5800P はエラー、fx-9860GII と fx-CG20 は正しく計算結果を表示します。fx-CG50 でも同様に複素指数関数を正しく計算します。

 CompCalc1 CompCalc2 
 
 
<目次に戻る>
積分関数の処理速度
 
積分計算速度の比較をしてみます (Rad モード)。
機種積分1積分2
fx-JP9005.5秒48.7秒
fx-5800P10.1秒56.7秒
fx-9860GII (SH4A)1.5秒8.4秒
fx-CG201.0秒5.8秒
fx-CG500.7秒3.2秒

積分計算は fx-CG50 で高速化しています。三角関数の計算が特に高速化していることが分かります。
 
 
<目次に戻る>
周期関数の積分
積分計算にガウス・クロンロッド法が使われていることから、このアルゴリズムが苦手な多項式で表せない関数の代表選手として周期関数の積分を行って、タイムアウトする限界を比較してみます (Rad モード)。

積分3
機種計算できる nタイムアウトする n
fx-JP900
fx-5800P
fx-9860GII6061
fx-CG206061
fx-CG506061

fx-CG50 での結果は、fx-CG20 や fx-9860GII と同じなので、積分計算の内部ロジックは大きく変わっていないようです。
 
 
<目次に戻る>
Casio Basic の互換性

当ブログは Casio Basic がメインテーマなので、少し詳しく解説します。

fx-CG50 に搭載されている Casio Basic は、2006年に発売された fx-5800P とそれ以降に発売されたグラフ関数電卓が同じカテゴリに属します。これらに搭載された Casio Basic は、構造化プログラミング可能で意外に高機能です。当ブログでは、このカテゴリを新世代 Casio Basic と呼んでいます。

< 新世代Casio Basic搭載機 >
 - 2006年発売 fx-5800P
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2010年発売 PRIZM fx-CG10 (北米のみ)、fx-CG20と同じ
 - 2012年発売 fx-CG20
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50 (欧米のみ)

新世代 Casio Basic については、Casio Basic の勧め を参考にしてください。

fx-CG50 搭載の Casio Basic は、機能面で fx-CG20 と異なる点が見つかりません。現時点では完全互換と言って良いと思います。そこで、fx-CG20 について、fx-9860GII や fx-5800P との比較を行った記事がそのまま fx-CG50 に該当します。

 ⇒ fx-CG20 の概要
 ⇒ fx-9860GII への移植 - 厄介な旧来の命令

当ブログで公開している Casio Basic入門逆引きCasio BasicCasio Basicコマンドリファレンスプログラムライブラリ は、fx-CG20 に関するものは、そのまま fx-CG50 に適用できます。
 
 
<目次に戻る>
カタログ機能

fx-CG50 には fx-CG20 と同様に使えるコマンドの一覧を検索して入力できるカタログ機能が備わっています。コマンド入力ができるモードで [SHIFT] [4] (GATALOG) を押すと、カタログ画面が現れます。

Catalog 1 CG20 Catalog 1 

左が fx-CG50 で、右が fx-CG20 です。

左の画面には、HISTORY というメニューと 表記 "Catalog" の右に検索入力欄が増えています。過去に検索して入力したコマンドを再入力するためには HISTORY 機能は大変便利です。 検索入力に1文字入れると絞り込み検索が行われるので、コマンドがうろ覚えの時に便利です。

CATメニューを選ぶとジャンル別一覧が現れます。

atalog Graph 1 

例えば 4: Graph でジャンルを選ぶと以下の画面になりますが、ここで fx-CG50 と fx-CG20 で違いがあります。

Catalog Graph 2 CG20 Catalog Graph 2 

左が fx-CG50、右が fx-CG20 です。

右の fx-CG20 では、コマンドのリストが表示されます。
左の fx-CG50 で表示されるリストは、コマンドではなくて説明です。この下のレベルでさらに説明のリストが現れることもあります。かなり分かり易く改善されています。

なお、CAT メニューから 1:All を選ぶと、全てのコマンドがアルファベット順に表示されます。このリストを fx-CG50 と fx-CG20 で比較した結果、同一でした。Casio Basic 使えるコマンドの種類が全く同じだと分かります。 
 
 
<目次に戻る>
Casio Basic の処理速度

fx-CG20 向けの作成したプログラムが そのまま fx-CG50 で動作するのは、ユーザーとしては助かります。fx-CG50 では処理速度の向上が見らるので、具体的に調べてみます。

 計算主体

PRIME - 素因数分解

ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - 素因数分解 参照

プログラムを起動すると...

Prime1 
数値を入力して [EXE] で素因数分解を始め、[EXE] を押しながら結果を1行ずつ表示させる。

Prime2 Prime3 
表示が出たら、最後の行を示すので、これで素因数分解の全結果となります。

このプログラムの実行中は、ビジーマーカー以外に表示の更新が無いので、計算速度の比較に向いています。今回は、以下の10桁の数の素因数分解の計算時間を比較します。

計算する数値: 7,849,516,203 = 32 x 9811 x 88897

fx-CG50 の画面は以下のようになります。

   Prime4 Prime5 

機種別処理時間の比較
fx-CG50fx-CG20fx-9860GIIfx-5800P
46秒63秒89秒444秒
11.361.939.65
0.7312.677.05
0.520.7118.73

fx-CG50 の計算処理は、fx-CG20 より 30% 程度速くなっています。
  
<目次に戻る>
動きのあるテキスト出力

PYTHA - ピタゴラス数探索

ダウンロード

- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - ピタゴラス数 を参照。

このプログラムを起動すると1つめのピタゴラス数を表示して一旦停止します (左の画面)。
2行目の EXE:Next (-):Stop に変化するまで [EXE] キーを長押しすると、連続的に次々とピタゴラス数が表示し続けます。
そして、右の画面のように500個のピタゴラス数を探索して表示するまでの時間を計って比較します。
    Pytha 1 Pytha 500

[EXE] キーを長押しすると連続モードになって、A、B、C 1組のピタゴラス数が、次々に変化します。つまり、このピタゴラス数探索プログラムは、テキスト表示が常に更新し続けます。
そこで、500個のピタゴラス数が見つかるまでの時間を、機種別に比較してみました。

機種別処理時間の比較
fx-CG50
fx-CG20
fx-9860GII
fx-5800P
87秒
185秒93秒
441秒
12.121.075.07
0.4710.5024,0
0.941.9914.74
0.200.420.211

fx-CG50 は、fx-CG20 の2倍程度の処理速度、fx-9860GII とほぼ同等の処理時間。
fx-CG20 は、動きの有るテキスト表示が重すぎて、実用プログラムを走らせるには向かなかったが、その問題が解決されています。

液晶画面の右上にビジーマーカーが表示されますが、fx-CG20 では常に表示し続けているのに対して、fx-CG50 では表示されていない時間が長い点に気付きました。fx-CG50 ではビジーマーカー表示を間欠的に行うことで全体の処理速度向上を図っている可能性もありそうです。
 
<目次に戻る>
動きのあるグラフィック出力

MONTECAR - モンテカルロ法による円周率計算

ダウンロード
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII グラフィックス - モンテカルロ法 を参照。この記事では、実際の画面の変化を動画で見られます。

 Montecar_1 Montecar_2 

 Montecar_3 Montecar_4 

[EXE]
キーを押すと、ランダムに点を打ち始め、それが円内にある割合から円周率を求める、モンテカルロシミュレーションプログラムです。このプログラムは、動きのあるテキスト表示と動きのあるグラフィックス描画を同時に行います。

そこでランダムに500回点を打つまでの時間を、機種別に調べて比較してみました。
機種別処理時間の比較 
fx-CG50
fx-CG20
fx-9860GII
174秒
429秒
135秒
12.470.78
0.4110.31
1.23.181

fx-CG50 は、fx-CG20 の 2.5倍の処理速度を達成。しかし fx-9860GII の 80% 程度の処理速度しかありません。

グラフィック表示の処理時間は fx-CG50 でかなり改善されているとは言え、あまり得意な処理ではないことが分かります。
カシオのグラフ関数電卓は、数学教育目的でグラフを表示することが主眼で、速い動きで変化示す処理は重視していないんでしょう。
 
<目次に戻る>
さらなる高速化

fx-CG50 は、fx-CG20 の極めて遅い出力処理を改善していることが分かったのですが、それでもゲームなどのピクセル単位での描画が多いプログラムでは全く不十分です。Casio Basic をより高速化するには、現在のところ2つの可能性があります。1つはチューンアップ (オーバークロック) による高速化、もう一つはアドイン版 Casio Basic (C.Basic) の利用です。

チューンアップ
これまで、fx-9860G、fx-9860GII そして fx-CG10 PRIZM / fx-CG20 それぞれの専用オーバークロックツールが、sentaro様により提供されてきています。いずれも比較的安全性が確保されており、私も愛用しています。但しオーバークロックは、ROM 内容が異常になったり、いずれかのチップが損傷をうける可能性があり、これらの結果電卓が正常動作しなくなった場合でもメーカー保証を受けられないので、自己責任で利用しましょう。

Casio グラフ関数電卓を限界までチューンアップ

本ブログでは、作者の sentaro様へ直接質問できるように、以下のエントリーがあります。このエントリ-では、fx-CG20 用の Ptune2 の紹介もしており、サポートも受けられます。
 ⇒ fx-9860GII のオーバークロック - Ftune2 -

fx-CG50 用のオーバークロックツール Ptune3 の開発も始まっていますが、まだα バージョン段階で、今後一定の安全性を確保しつつさらに高速化できる可能性があります。そこで安定版リリースまでは、以下のエントリ-で情報交換を行います。
 ⇒ fx-CG50 のチューンアップ

ちなみに、各機種をチューンアップして上で紹介した モンテカルロ法による円周率計算の処理時間を比較します。

チューンアップした機種別処理時間の比較 
fx-CG50 tuned by Ptun3
fx-CG20 tuned by Ptune2
fx-9860GII tuned by Ftune2
97秒 (174秒)
108秒 (429秒)
23秒 (135秒)
1.8倍高速化4倍高速化5.9倍高速化
11.110.24
0.9010.21
4.214.701
カッコ内は標準での処理時間

チューンアップは、CPUコアクロックだけでなく、メモリバスクロック、I/Oバスクロック、ウェイトなどを機種に応じて調整します。ここでは、チューンアップの潜在能力を示すだけなので、個別のチューンアップ設定は割愛します。

fx-9860GII の標準での処理時間が 135秒なので、fx-CG50 も fx-CG20 もそれ以上に高速化できています。fx-9860GII はかなりチューンアップ可能で桁違いに速くなっています。fx-CG50 用の Ptune3 の今後の進展が楽しみです。
 
アドイン版 Casio Basic (C.Basic)
C.Basic は、現在のところ fx-9860GII 専用版のみの開発が続いています。開発者はチューンアップツールと同じ sentaro様です。

C.Basic は、純正Casio Basic のソースをほぼそのまま実行可能で、特にグラフィック描画の高速化は目を見張るものがあります。
どのくらい凄いのかは、ここ にある動画を見れば一目瞭然です。現在は、主に海外からの要望に応えつつ、バージョンアップが進んでいます。

fx-CG50 向けの開発がいつか始まること期待したいところです。
 



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


 

keywords: CasioBasicプログラム電卓、fx-CG50
関連記事

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

楽屋裏 - カシオ グラフ関数電卓 fx-CG50 が2017年春登場

楽 屋 裏
e-Gadget


2017/01/16
続報 (1) 2017/01/21
続報 (2) 2017/07/02
続報 (3) 2017/07/03
追記 2017/08/08
追記 2017/09/26
追記 2017/10/20


[2017/08/08 追記]:fx-CG50 を入手して調べました ⇒ fx-CG50 の概要

[2017/09/26 追記]:2017年10月20日、fx-CG50 が国内発売 ⇒ 楽屋裏 - fx-CG50 ついに国内発売 


2017年春に、カシオから北米向けにグラフ関数電卓 PRIZM fx-CG50 が発売予定とのアナウンスがあったと、sentaro様 から情報を頂きました

カシオアメリカの発表

・学生の数学教育向けを強調
・3Dグラフ機能の強化
・カタログ機能の進化
・教科書スタイルのディスプレイ
・より直線的 (tapered) な筐体デザイン
・メーカー希望小売価格 99.99 ドル (実売はもっと安いだろう)

なんだか詳細はさっぱり分からない表現が多いですね。

これを受けて、カシオフリーク達はアドイン機能が無くなるのではないかと、おおいに心配しています。
そして、Casio Basic は相変わらず遅いまま、との推測もあります。

CHEMETECH の記事
 Universal Casio Forum の記事
 cordwalr US の記事

但し、アドインが無くなるとは公式には発表されていません。カタログ機能との言及がありますが、fx-9860GII や fx-CG10/20 では、Casio Basic のコマンドを一覧する機能なので、Casio Basic は搭載されるでしょうが、アドインが無くなるという話では無いかも知れません...

海外のコミュニティーで、アドイン無くすな!とこれだけ声が大きいのを、カシオ殿は是非冷静にくみ取って頂きたいと思います。アドインがあるから、これだけ普及したという考えもあります。

一方で、今後の携帯プログラミングは、ニンテンドー3DS  の一人勝ちとなるのでしょうか?
強力で高速な BASIC (プチコン) が使えるので、プログラム電卓でのプログラミング が出来なくなれば、これからは 3DS へ民族の大移動があるかも知れませんね。

いずれにせよ、しばらくは注目です!



=== 続報 (1) [2017/01/21] ===

その後、CHEMETECH で外観や画面の画像が出てきました。

CHEMETECH の記事

元ネタは CASIO の学校向け計算機のページ のようです。
fx-JP900 と似た外装で、角の丸い長方形です。これが Tapered (直線的) と言われたものなんですね。

画面のサンプルもありました

残念ながら、メニュー画面がありません。Add-In があるかどうかすぐ分かるんですけど...

但し、上の画面のサンプル のコメントに以下の記述がありました。
Those new main menu icons tell me (real) add-in support is most likely gone.
(それらの新しいアイコンメニューアイコンから、(本当の)アドインサポートは、ほぼ無くなったようだ。)

う~む、そうなんだろうか?


=== 続報 (2) [2017/07/02] ===

fx-CG50 はアドインプログラムを扱えることが判明しました (sentaro様からの情報)
TI Planet の情報

国内発売の情報はまだないが、欧米での発売が始まり品薄状態です。
このような中、ブログ友達の とね様 がアメリカ在住のご友人経由で早速 fx-CG50 を入手されたとのことです。

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

私も海外の知人経由での入手を検討中。sentaro様は セカイモン (eBay) で注文されたとのこと。今のところ並行輸入で入手するしかありません。


=== 続報 (3) [2017/07/03] ===

eBay の日本語サイトでは fx-CG50 が無く、英語のサイト (eBay.com) で送料込みで割合安い新品の fx-CG50 が有ったので注文しました。以前から利用していた PayPal を支払いに使うと安全なので 今回も PayPal を利用しました。届いたら、Casio Basic プログラミングの視点から評価記事を書こうと思います。

評価記事はこちら ⇒ Casio fx-CG50 の概要 [2017/1020 追記]


=== 続報 (4) [2017/07/03] ===

日本のカシオのサイトを見ると fx-CG20 が生産終了 となっています。fx-CG50 の国内投入がいつになるかの問題のようです。

カシオの fx-CG20 のサイト

[2017/10/20 追記]
fx-CG50 は、欧米発売から約6ヶ月半後の 2017/10/20 に国内発売となったわけです。以前 fx-CG10 の北米発売から fx-CG20 の国内発売まで1年近く時間差があったのに比べて早い投入になりました。
なお、fx-CG20 はしばらく流通在庫があるでしょうが、fx-CG20 は余程安くなければ、購入するメリットは無いと言えます。




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



  


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

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

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

アドイン Casio Basic - トップページ

C:Basic - アドイン Casio Basic
<Top Page>

内容の更新や修正を随時行います.

初版 2015/12/18
C.Basic アップデート 2017/10/20


[2017/10/20] Ver 1.64 beta マイナーアップデート。

<目 次>
 - C:Basicとは?
 - 最新バージョン
 - オーバークロック・アドイン
 - C.BasicC:Basic の潜在能力
 - C.Basicの使い方とコマンドリファレンス
 - C.Basic 英語版Webマニュアル



C:Basic とは?


C:Basic は Casio Basic の上位互換で、Casio fx-9860GII USB POWER GRAPHIC 2 (SH4A CPU model) のアドインとして開発しているものです。C:Basic は 最終的には高速インタープリタとコンパイラを提供する予定ですが、今のところインタープリタのアルファ版(テスト版) を開発中です。インタープリター版を C.Basic (ドットが1個) と呼んでいます。

CasioオリジナルのCasio Basic は限られたハードウェアの電卓で動作するプログラミング言語で、「構造化プログラミング」が可能な実用的なものです。Casio Basic は簡単に使えて、電卓のみでプログラムを作成したり編集ができ、パソコンが不要です。なお、Casio Basic以外には、パソコン上でC言語でアドインプログラムを開発して、fx-9860GII に転送して使うこともできます。

Casio Basic は楽に開発できるものの、計算量の大きな複雑な処理を行ったり、ビットマップをグラフィックスで描くのは非常に時間がかかります。このような 純正Casio Basic の弱点を補う目的で開発が始まった C.Basic (インタープリタ版) は、Casio Basicとソースレベルで互換でありながら、10~20倍のスピードがあり、今のところ C:Basic (コンパイラ版) はさらに C.Basic (インタープリタ) の10倍の程度の処理速度になりそうなことが確認できています。

この C:Basic プロジェクトを進めているのは、sentaro21 氏(本アドインの作者), Krtyski (当ブログの管理人、テスト実施、サンプルプログラム作成、ユーザーズガイドとコマンドリファレンス作成)、さらに有志のユーザーの方です。

C:Basic プロジェクト



▋ C.Basic 最新バージョン
注意: 万一に備えて、電卓内のプログラムやデータをバックアップしておくことを勧めます。

C.Basicのインストール
ダウンロードしたZIPファイルに含まれている CBASIC.g1a を fx-9860GII シリーズのストレージメモリに転送します。

C.Basicの使い方とコマンドリファレンス
ダウンロードしたZIPファイルに含まれている、Manual_J.txtReadme_j.txtCommand_List.txt を参照してください。

C.Basicの独自拡張機能とCasio Basic互換コマンド
Manual_J.txt にまとめられているので、参照してください。


 チューンアップツール - アドイン: Ftune2

電卓の内部動作をオーバークロックするチューンアップツール Ftuen2 を C.Basic と一緒に使うと、さらに高速化が可能です。
このプログラムの評判については、下記参照ください;
- @ Unversal Casio Forum
- @ CEMETECH
- @ TI-Planet

私は1年以上使っていますが、今のところ問題は起きていません。Ftuen2 は安全対策がよく考えられていて、おそらく電卓を壊すことは無いでしょう。但し、念のため電卓のデータバックアップは行って下さい。

Ftune2 は、Casio fx-9860GII POWER GRAPHIC 2 (SH4A model),用をダウンロードし、他の機種用をダウンロードしないでください。



C.Basic と C:Basic の潜在能力

サンプルプログラムを使って、C.BasicC:Basic の潜在能力を見てみましょう。.

 ライフゲーム (Conway's Game of Life)

C.Basic は純正 Casio Basic の上位互換であり、拡張コマンドや言語機能があります。

高速なビットマッププログラムを純正Casio Basic で作ろうと考えるのは無謀なことだと言えます。しかし C.Basic を使えば、例えばライフゲームを楽しめます。



- ダウンロード: ライフゲーム Ver 0.74

これには、C.Basic Ver 0.63 以降のバージョンが必要です。.


以下の動画では、Ftune2 を使って クロックを 236MHz にチューンしています。

- ダウンロード: Ftune2
   Casio fx-9860GII USB POWER GRAPHIC 2 (SH4 model) 用をダウンロードしてください。
.
=====

コンパイラ版の C:Basic をシミュレートするため、ライフゲーム の繰り返し処理部分を、ネイティブコードの特別なコマンド "DotLife" に置き換えて実行したのが以下の動画です。 

・ダウンロード: ライフゲーム Ver 0.84



ご覧のように非常に高速で、517世代までの時間を測ると約10倍高速化しています。将来のコンパイラ版 C:Basic では、これよりも速くなるはずです。

ライフゲームの詳しい説明


2D迷路

以下のような画面全体のグラフィックス描画は、純正Casio Basicではとても時間がかかります。これを C.Basic で走らせると極めて短時間で描画が完了します。

Maze1 

2D迷路プログラムの詳しい説明


3D迷路ゲーム

3D_Maze 

左側の迷路マップの描画は、C.Basic を使うことで極めて高速化できます。右側の3D表示はポリライン処理により純正Casio Basic でも3D描画が軽くなるよう工夫されています。このプログラムでは、C.Basic の独自拡張機能を使いながら 純正 Casio Basicでも動作可能なようになっているのが特徴です。

3D迷路ゲームの詳しい説明


アクションゲーム - DRAGON



これは、C.Basic 独自拡張機能を活用したサンプルプログラムで、高速で多彩なビットマップ処理機能をうまく活用しています。
ゲームとしても飽きないチューニングがされています。このプログラムのソースは、C.Basic 独自拡張機能の理解に役立ちます。

アクションゲーム - DRAGON の詳しい説明



C.Basic の使い方とコマンドリファレンス

  C.Basic のインストール

  C.Basicマニュアルとコマンドリファレンス - Manual_J.txt

  C.Basic の紹介と更新履歴 - Readme_J.txt







Top に戻る



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



  


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

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



関連記事

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

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

やす (Krtyski)

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


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

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

おもしろい・役に立つならクリックしてください。励みになります。
にほんブログ村 IT技術ブログ 開発言語へ
にほんブログ村


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR