Casio Basic入門21
Casio Basic入門
誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
更新: 2019/05/04
更新: 2019/05/04
4. CasioBasicを使ってみる(続き)
Chapter 4
◆ Chapter 4 の目標: 換算プログラムを作る(令和対応版)
これまでに作成した「西暦・和暦換算プログラム」のプログラムコードを、以下にまとめます。
プログラム名: CH4-3
0→A:0→B:0→G
Locate 1,1,"0:AD"
Locate 10,1,"▶DMS"
Locate 11,1,"EXIT
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("
Locate 5,4," "
Locate 10,4,"6:yσn"
Locate 14,4," "
While 1
-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N
K=22⇒5→N
K=23⇒6→N
If N=0:Then
5→X:1→Y:4→D:1→E
Prog "INPI":Z→A
Else If N=1
Then
4→X:2→Y:4→D:1→E
Prog "INPI":Z→T
Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→S
Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→H
Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→R
Else If N=5
Then
If A:Then
5→X:4→Y:4→D:1→E
Prog "INPI":Z→B
IfEnd
Else If N=6
Then
If A:Then
12→X:4→Y:3→D:1→E
Prog "INPI":Z→G
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd
If N=0:Then
Prog "YRC"
Else If N=1
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"
Else If N=2
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"
Else If N=3
Then
H+1988→A
H=0⇒Isz A
Prog "YRC"
Else If N=4
Then
R+2018→A
R=0⇒Isz A
Prog "YRC"
Else If N=5
Then
If A:Then
Prog "YRC"
IfEnd
Else If N=6
Then
If A:Then
Prog "YRC"
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd
WhileEnd
プログラムの構造
[初期設定]
[表示の初期化]
While 1
WhileEnd
サブルーチン: YRC
If N=1:Then
A-1911→T
Else If N=2
Then
A-1925→S
Else If N=3
Then
A-1988→H
Else If N=4
Then
A-2018→R
Else If N=5
Then
B-A→G
Else If N=6
Then
A+G→B
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
A-1911→T
A-1925→S
A-1988→H
A-2018→R
Locate 5,1," " (スペース5個)
A>0⇒Locate 5,1,A
Locate 4,2," " (スペース6個)
T>0⇒Locate 4,2,T
Locate 13,2," " (スペース4個)
S>0⇒Locate 13,2,S
Locate 4,3," " (スペース6個)
H>0⇒Locate 4,3,H
Locate 13,3," " (スペース4個)
R>0⇒Locate 13,3,R
B-A→G
If G>999 Or G<-99:Then
Locate 12,4," yσn"
Return
IfEnd
If B Or G:Then
Locate 5,4," "
Locate 5,4,B
Locate 12,4," "
Locate 12,4,G
If Abs(G):Then
13+Int(log(Abs(G)))→D
Else 13→D:IfEnd
G<0⇒D+1→D
Locate D,4,"yσn"
Locate D+1,4," "
IfEnd
さて、今回は、上記のプログラムに各年号の始まりと終わりの年月日を表示する機能を組み込みます。
これまでに作成したプログラムの実行画面は、既に画面一杯になっており、新しい機能を呼び出すためのメニュー番号を表示させる場所がありません。

今回追加する機能は、大正、昭和、平成、令和 それぞれの始まりと終わりの年月日を表示するものです。
大正年を入力するための項目1は、[1] キーを押して入力します。そこで、[1]キーを長押しした時に大正の始まりと終わりの年月日を表示するようにできれば、新たなメニュー番号を増やす必要がありません。
そこで今回は、キー長押しによるメニュー選択機能を追加します。
キー長押しについては、CasioBasic入門6 (キーコードを調べるプログラムを作る) で長押しを適切に検出する方法を紹介していますので、今回は応用編です。
キー長押しでは、[1]、[2]、[3]、[4] キーを押した時、それぞれに対応して、大正、昭和、平成、令和 の始まりと終わりの年月日(令和は始まりだけ)を表示させるのですが、その表示内容は、、以下のようなものにします。
大正の始まりと終わり

昭和の始まりと終わり


令和の始まり

いずれの画面でも、右下に ►E の表示をしています。これは、[EXE]キーで元に戻るこを示す表示です。
これらの表示は、サブルーチン YRD を呼び出して行うことにします。
※ サブルーチン名の YRD の末尾の D は、Display (表示) の D を意味しています。
ところで、この表示から [EXE] キーを押して、元に戻るときには、以下のような表示内容を再描画する必要があります。

ところで、プログラム起動時は、以下の表示を行います。

この表示は、これまで [表示の初期化] ブロックで記述していますが、この表示も再描画する必要があるので、 サブルーチン YRD で表示するように変更します。
この表示を実行したのち、既に作っているサブルーチン YRC を実行すると、1つ上のような表示になります。
従って、[表示の初期化] ブロックは、
Prog "YRD"
Prog "YRC"
に置き換えることができます。
それでは、このような動作をするように、メインルーチンとサブルーチン YRD を作ってゆきます。
⇒ CasioBasic入門22 / 目次
応援クリックをお願いします。励みになるので...
- 関連記事
-
-
Casio Basic入門1 2019/08/31
-
Casio Basic入門22 2019/05/04
-
Casio Basic入門21 2019/05/04
-
Casio Basic入門20 2019/05/04
-
Casio Basic入門19 2019/05/04
-