矢印キーで項目選択(1) - 逆引き Casio Basic

逆引き Casio Basic
<目次>

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

更新 2015/04/29

[fx-5800P/ fx-9860GII / fx-CG20]

矢印キーを使って、項目を選択する。



fx-5800P の矢印キー(下図の右上の4つのキー)
Keys-2 

fx-9860GII の矢印キー(下図右下の丸いキー)
TC10-9860GII 

fx-CG20 の矢印キー(下図右下の丸いキー)
fx-CG20_Func_Keys 


矢印キーのキーコード

キーfx-5800Pfx-9860GII / fx-CG20
[▲]8428
[▼]8537
[▶]8627
[◀]8338



項目選択

以下のように矢印キーの [▲] か [▼] を押して、⇒ マークを移動させ、4行目に ⇒マークのある項目番号を表示する。

menu_1 
menu_2 
menu_3 

[▼][▲] キーを押した時、⇒マークを移動させ、項目番号を表示する。

項目番号は1~3で、[▼] を押した時は⇒マークを下へ1つ移動する。項目3からは、項目1へ戻す。
[▲] を押した時は、逆方向、つまり⇒マークを上へ1つ移動する。項目1からは、項目3へ戻す。


⇒マークの移動は、
 ・移動する前に、⇒マークをスペースで上書きして消去: Locate コマンド利用
 ・移動先の位置で ⇒マークを表示: Locate コマンド利用

⇒マークの消去および表示位置は、項目番号 M を使って 1桁目、M 行目とすると
 ・消去: Locate 1,M," "
 ・表示: Locate 1,M,"⇒"

但し、消去時の M と 表示時の M の値は異なることに注意!


⇒マークの移動前と移動後を表で示す;

[▼] キーを押したとき
移動前の項目番号 M移動後の項目番号 M求め方
31移動前が3の時は 1→M とする
23移動前が3以外の時は M+1→M とする
12

[▲] キーを押したとき
移動前の項目番号 M移動後の項目番号 M求め方
13移動前が1の時は 3→M とする
21移動前が1以外の時は M-1→M とする
32

なお、⇒マークが移動後の項目番号の表示は、 Locate 4,1,M で良い。


以上をまとめると、プログラムは以下のようになる。

サンプルプログラム
[▼] [▲] キーで項目選択 (fx-5800P)
Locate 1,1,"⇒1:"
Locate 2,2,"2:"
Locate 2,3,"3:"
1→M

While 1

Do
Getkey→K
LpWhile K=0

Locate 1,M," "
If K=85
Then
If M=3
Then 1→M
Else M+1→M
IfEnd

Else If K=84
Then
If M=1
Then 3→M
Else M-1→M
IfEnd
IfEnd:IfEnd
Locate 1,M,"⇒"
Locate 1,4,M


WhileEnd

青文字は項目番号の更新、赤文字は表示と、それぞれまとまって記述できたので、さらにプログラムが分かりやすくなる。


fx-9860GII では、キーコードが異なるだけで、他は同じで良い。

サンプルプログラム
[▼] [▲] で項目選択 (fx-9860GII / fx-CG20)
Locate 1,1,"⇒1:"
Locate 2,2,"2:"
Locate 2,3,"3:"
1→M

While 1

Do
Getkey→K
LpWhile K=0

Locate 1,M," "
If K=37
Then
If M=3
Then 1→M
Else M+1→M
IfEnd

Else If K=28
Then
If M=1
Then 3→M
Else M-1→M
IfEnd
IfEnd:IfEnd
Locate 1,M,"⇒"
Locate 1,4,M


WhileEnd


 ⇒ Casio Basic コマンドリファレンス - Do ループ
 ⇒ Casio Basic コマンドリファレンス - While ループ
 ⇒ Casio Basic コマンドリファレンス - Getkey



上のサンプルプログラムは、処理内容がシンプルなため、矢印キーを軽く押しても複数回押したようなキーリピートが発生する。そこで、以下の茶色文字で示した2行(※)を追加してキーリピートを抑制する。

サンプルプログラム
[▼] [▲] キーで項目選択 (fx-5800P)
Locate 1,1,"⇒1:"
Locate 2,2,"2:"
Locate 2,3,"3:"
1→M

While 1

While Getkey
  (※)
WhileEnd
     (※)
Do
Getkey→K
LpWhile K=0

Locate 1,M," "
If K=85
Then
If M=3
Then 1→M
Else M+1→M
IfEnd

Else If K=84
Then
If M=1
Then 3→M
Else M-1→M
IfEnd
IfEnd:IfEnd
Locate 1,M,"⇒"
Locate 1,4,M


WhileEnd



サンプルプログラム
[▼] [▲] で項目選択 (fx-9860GII / fx-CG20)
Locate 1,1,"⇒1:"
Locate 2,2,"2:"
Locate 2,3,"3:"
1→M

While 1

While Getkey
  (※)
WhileEnd
     (※)
Do
Getkey→K
LpWhile K=0

Locate 1,M," "
If K=37
Then
If M=3
Then 1→M
Else M+1→M
IfEnd

Else If K=28
Then
If M=1
Then 3→M
Else M-1→M
IfEnd
IfEnd:IfEnd
Locate 1,M,"⇒"
Locate 1,4,M


WhileEnd



fx-5800P は処理速度が遅いため、処理内容が複雑になればキーリポート抑制が不要なこともある。一方 fx-9860GIIは処理速度が速いので、キーリピート抑制はほぼ必要だろう。

 ⇒ キーリピート抑制 - 逆引き Casio Basic



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

人気ブログランキングへ


FC2ブログランキングへ



   



keywords: CasioBasic、プログラミング入門プログラム関数電卓

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



関連記事

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

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


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR