Casio Basic: Getkey

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

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

fx-5800P / fx-9860GII / fx-CG20
Getkey

◆概 要:
押されたキーのキーコードを取得する。[AC]キー以外の全てのキーにはそれぞれ異なるキーコードが割り当てられている。

◆書 式: Getkey

◆引 数:なし

◆戻り値:
押されたキーのキーコードを返す。キーが押されていない場合は0を返す。

※ 互換性: キーコードはハードウェア(機種)に依存し、fx-5800P と fx-9860GII / fx-CG20ではキーコードが異なります。一方で、fx-9860GII と fxCG20 は全く同じです。

キーコードを知るには、取扱説明書を見るか、キーコード取得プログラムを実行してください。

取扱説明書キーコード取得プログラム
fx-5800P99 ページプログラムライブラリ - キーコード取得
fx-9860GII8-17 ページ
fx-CG208-20 ページ



Getkey を使うと[AC]キー以外のキーが押された時に、そのキーの判別ができます。

Getkeyはプログラムの実行を止めて、キー入力を待つ機能は備わっていません。Getkey はキーが押される時に実行されなければなりません。従って、キー入力を待ち受けるために、繰返し処理(ループ)の中に Getkey を記述する必要があります。

例えば、Do~LpWhile ループを使い、

Do
Getkey→K
[必要な処理]
LpWhile K=0

[押されたキーに応じた処理]


とします。このプログラム例は、Getkey0を返す時(キーが押されていない時)は繰返し処理が継続され、0以外を返す時(何かキーが押された時)は、繰り返し処理を終える動作をします。

入力命令?を使うと、入力確定のために [EXE] キーを押す必要がありますが、Getkey を使えば [EXE] キーを押さずに、リアルタイムでキー入力に反応するプログラムを作れます。

fx-5800Pでは、キーが押された瞬間から所定の時間の範囲なら、Getkey でキーコードを取得できるようです。つまり、キーが押された、まさにその瞬間に Getkey が実行されていなくても、一定の時間的猶予が与えられます。

Lbl 0
0→C
Do
Getkey→K
LpWhile K=0
Locate 1,1," "
Locate 1,1,K
Goto 0


これを実行すると、最初に表示されるキーコードKの値は、プログラム実行開始で押さなければならない [EXE] キーの47となります。つまり、[EXE] が押された瞬間ではなくて、押されてから一定時間内で(短い時間ですが...)キーコードを取得していることがわかります。

次に、上のコードの冒頭のLbl 0 の上に、次のように赤文字で示した4行のコード(1000回ループ)を追加して、一定の待ち時間がかかるようにします。

1000→A
Lbl 1
Dsz A
Goto 1

Lbl 0
0→C
Do
Getkey→K
LpWhile K=0
Locate 1,1," "
Locate 1,1,K
Goto 0


すると、プログラム実行開始で押された [EXE] のキーコードを取得できないまま、キー入力待ちになります。つまり、キーが押されてから所定時間を経過すると Getkey はキーコードを取得できないことがわかります。

非常に長いループ(多くの処理が記述されていて、ループ1回がまわるのに時間がかかるループ)の内で Getkey でキー入力を監視すると、キーの取りこぼしが起こり得ます。キー入力監視は極力短めのループを使うようにすると良いでしょう。

fx-9860GII ではプログラムの実行が速いので、上記のような現象の違いを確認できません。むしろ実行速度が速いために、プログラムによっては、キーリピートを抑制するコード(赤文字部分)が必要になります。

While Getkey
WhileEnd

Do
Getkey→K
LpWhile K=0


赤文字の2行が、キーリピート抑制の働きをします。Getkey の戻り値が 0 でない限り、つまりキーがが押されている限り、このループが継続します。そして、キーが離れたら Getkey は 0 を返すのでループを脱出して次のキーコード取得が行われます。




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

人気ブログランキングへ


FC2ブログランキングへ


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

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

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR