Casio Basic入門21

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
更新: 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"
  (スペース1個)
Locate 14,4,"  "    (スペース2個)
Return
IfEnd

If B Or G:Then
Locate 5,4,"     "
  (スペース5個)
Locate 5,4,B
Locate 12,4,"   "
  (スペース3個)
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,"  "
  (スペース3個)
IfEnd


さて、今回は、上記のプログラムに各年号の始まりと終わりの年月日を表示する機能を組み込みます。



Chapter 4-4
キー長押しによるメニュー選択


これまでに作成したプログラムの実行画面は、既に画面一杯になっており、新しい機能を呼び出すためのメニュー番号を表示させる場所がありません。



YearConv_7 

今回追加する機能は、大正、昭和、平成、令和 それぞれの始まりと終わりの年月日を表示するものです。

大正年を入力するための項目1は、[1] キーを押して入力します。そこで、[1]キーを長押しした時に大正の始まりと終わりの年月日を表示するようにできれば、新たなメニュー番号を増やす必要がありません。


そこで今回は、キー長押しによるメニュー選択機能を追加します。


キー長押しについては、CasioBasic入門6 (キーコードを調べるプログラムを作る) で長押しを適切に検出する方法を紹介していますので、今回は応用編です。


キー長押しでは、[1][2][3][4] キーを押した時、それぞれに対応して、大正、昭和、平成、令和 の始まりと終わりの年月日(令和は始まりだけ)を表示させるのですが、その表示内容は、、以下のようなものにします。


大正の始まりと終わり
Taisho 
 
昭和の始まりと終わり
Showa 
 
平成の始まりと終わり
Heisei 

令和の始まり
Reiwa  


いずれの画面でも、右下に ►E の表示をしています。これは、[EXE]キーで元に戻るこを示す表示です。

これらの表示は、サブルーチン YRD を呼び出して行うことにします。

※ サブルーチン名の YRD の末尾の D は、Display (表示) の D を意味しています。


ところで、この表示から [EXE] キーを押して、元に戻るときには、以下のような表示内容を再描画する必要があります。
YearConv_7  


ところで、プログラム起動時は、以下の表示を行います。
YearConv_1         
 
この表示は、これまで [表示の初期化] ブロックで記述していますが、この表示も再描画する必要があるので、 サブルーチン YRD で表示するように変更します。

この表示を実行したのち、既に作っているサブルーチン YRC を実行すると、1つ上のような表示になります。

従って、[表示の初期化] ブロックは、

Prog "YRD"
Prog "YRC"


に置き換えることができます。


それでは、このような動作をするように、メインルーチンとサブルーチン YRD を作ってゆきます。



つづく...


CasioBasic入門22 / 目次



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


 



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

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

関連記事

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR