Casio Basic入門48

Casio Basic入門
<目次>

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

2015/04/10
修正 2017/08/16

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

Chapter 8 - 初級

前回: Casio Basic入門47 を見る


◆ Chapter 8 の目標: Basic コマンドを使ってみる

fx-5800P 用に 温度換算プログラムを作りました。

fx-5800P:温度換算プログラム TEMP CONV
0→A
While 1


Cls
"1:      °C" (スペース11個)
"2:      °F" (スペース11個)
"3:      K"  (スペース12個)
If A:Then
Locate 4,1,C
Locate 4,2,F
Locate 4,3,K
IfEnd
Locate 13,1,"°C"
Locate 13,2,"°F"
Locate 13,3," K"
Locate 1,4,"<EXIT>"
Locate 11,4,"<FMLA>"

-1→M
Do
Getkey→L
LpWhile L=0
L=35⇒1→M
L=36⇒2→M
L=37⇒3→M
L=74⇒4→M
K=73⇒Break

Locate 1,4,"        " (スペース16個)
If M=1:Then
4→X:1→Y:9→D:2→E
Prog "IN":Z→C
C(9÷5)+32→F
C+273.15→K
1→A
Else If M=2
Then
4→X:2→Y:9→D:2→E
Prog "IN":Z→F
5(F-32)÷9→C
C+273.15→K
1→A
Else If M=3
Then
4→X:3→Y:9→D:2→E
Prog "IN":Z→K
K-273.15→C
C(9÷5)+32→F
1→A
Else If M=4
Then
Cls
Locate 2,1,"C = 5(F-32)÷9"

Locate 2,2,"F = (9÷5)C+32"
Locate 2,3,"K = C+273.15"

Locate 11,4,"<EXIT>"
While Getkey≠73
WhileEnd
While Getkey
WileEnd
IfEnd:IfEnd
IfEnd:IfEnd

WhileEnd
Cls
Locate 7,2,"BYE!"


fx-9860GII への移植で変更するところを赤文字で示しています。



Chapter 8-7
fx-9860GII 用入力ボックスを準備する

新世代 Casio Basic は fx-5800P だけでなく、他のグラフ関数電卓にも搭載されています。そこで、fx-5800P 用に作った温度換算プログラムを fx-9860GII に移植してみます。

新世代 Casio Basic は、機種間の互換性は高いのですが、移植するにあたって、幾つかの制限があります。

fx-5800P から fx-9860GII への移植時に互換性の無いもの

出力" "(出力命令詳細動作がかなり異なる
(出力)命令fx-9860GII では -DISP- 表示にブロックされる
Cls コマンドfx-9860GII では ClrText コマンドに置き換える
入力(入力)命令fx-9860GII では ?A と言う記法が使えない
Getkey コマンドキーコードが全く異なる
変数配列変数fx-9860GII では 配列変数が無い
行列記法が異なる
その他キー同じキーが必ずしも無い
関数記法が異なることがある
プログラム名fx-9860GII では 8文字以下

" " (出力)命令は、表示行の全てを上書きします。同じ行に 先に Locate コマンドで表示してあると、それを上書き消去してしまいます。表示行を " " 命令だけで表示する場合のみ、互換性があります。

(出力)命令
-DISPー と言う表示で1行占有れ、Locate コマンドによる画面設計を潰されます。

?(入力)命令
?A と言う記法が使えず、?→A のみが使えます。

Cls
fx-9860GII では ClrText と書き換えます。機能は全く同じなので書き換えるだけで使えます。
[2017/08/16 修正] fx-9860GII での Cls はグラフィックス画面の消去のみを行います。ちなみに ClrGraph もグラフィック画面の消去ですが、画面消去と同時に座標系を デフォルトに論理座標系に戻します。これに対して Cls は座標系は変更せずグラフィックス画面の消去のみを実行します。

Getkey
キーコードが全く異なるので、キーコードを変更します。Getkeyコマンド自体の動作は全く同じです。

配列変数
fx-9860GII には無いので、行列に置き換えれば使えます。

行列
扱う際の書式が一部異なるので、そこを修正すれば使えます。

キー
同じキーが無いことがあります。

関数
関数の記法が一部異なります。

ファイル名
fx-5800P は12文字以内、fx-9860GII は 8文字以内。


旧来の命令は、互換性が低く、移植時に思わぬ仕様違いから混乱するかも知れません。旧来の命令を使う限り、どうしても fx-5800P と同じ動作を実現できないこともあります。詳しくは、下記を参照してください。
 ⇒ fx-9860GIi への移植 - 厄介な旧来の命令
 ⇒ fx-9860GII への移植 - 素因数分解
 ⇒ fx-9860GII への移植 - ピタゴラス数

一方、Basic コマンドは、適切な変更を行えば、100%の移植が可能です。

さて、温度換算プログラム TEMP CONV では、e-Gadget オリジナルの入力ボックスを利用しています。先ずは、fx-5800P 用の入力ボックスではなくて、fx-9860GII を利用する必要がありまず。

今回は、その準備をします。



fx-5800P から fx-9860GII への入力ボックスの移植は、以下で紹介しています。
 ⇒ Casio Basic入門37

また、プログラムライブラリにも収録しています。
 ⇒ fx-9860GII プログラムライブラリ - 入力ボックス
 
fx-9860GII は、パソコンとのリンクができる点が、fx-5800P よりも便利な利点です。fx-9860GII をパソコンと繋ぎ、Casio Basic プログラムを 拡張子 g1m のファイルとして、パソコンに転送できますし、その逆もできます。

上記のプログラムライブラリから、入力ボックスをパソコンにダウンロードしてから、fx-9860GII へ転送できるので、自分で入力する必要はなく、入力間違いの危険性もありません。

今回の温度換算プログラムでは、IN 2.1G for fx-9860GII を使います。これをダウンロードしてください。プログラム名 IN です。

プログラム名は、fx-5800P と同じなので、入力ボックスが fx-9860GII に有れば、温度変換プログラムで 入力ボックスを使う部分は、変更なしで動作します。

念のために、以下のテストプログラムを入力して、転送した入力ボックス IN 2.1G for fx-9860GII の動作確認をしてみてください。

プログラム TEST
0→Z
"1:"
"2:"

While 1

-1→M
Do
Getkey→K
LpWhile K=0
L=72⇒1→M
L=62⇒2→M

Locate 1,4,"           " 
(スペース21個)

If M=1:Then
3→X:1→Y:10→D:2→E
Prog "IN"
Else If M=2
Then
3→X:2→Y:9→D:1→E
IfEnd:IfEnd

Locate 1,4,"Z="
Locate 3,4,Z

WhileEnd


==========

正しく動作しますか?

fx-9860GII はCPUが速いので、より快適に入力ボックスを使えます。



さて、冒頭に記載したプログラムで、赤文字で示した部分が、fx-9860GII への移植の際に変更が必要なところです。

 ・ Getkey使用に際して、キーコードを変更する。
 ・ ClsClrText に変更する。
 ・[FMLA] キーが無いので、他のキーに変更する。
 ・ ファイル名 TEMP CONV を8文字以内に変更する。

これだけで、同じ動作を行うプログラムとして移植できます。

次回までに、移植を試してみてください。それほど難しくないと思います。




つづく...

Casio Basic入門49 / 目次




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

人気ブログランキングへ


FC2ブログランキングへ



 



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

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




関連記事

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

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


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR