Casio Basic入門21

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
最終: 2015/01/18

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

Chapter 4

◆ Chapter 4 の目標: 換算プログラムを作る


まず最初に、前回の サブルーチン YRC で、必要なコードを書き忘れていましたので、前回の記事を修正しました。
修正箇所は、以下にも明記します。申し訳ありません。


これまでに作成した「西暦・和暦換算プログラム」のプログラムコードを、以下にまとめます。


プログラム名: CH4-3

0→A:0→B:0→G

Locate 1,1,"0:AD"
Locate 11,1,"<AC>
"
Locate 1,2,"1:M"
Locate 10,2,"2:T"
Locate 1,3,"3:S"
Locate 10,3,"4:H"
Locate 1,4,"5:At"
Locate 10,4,"6:yσn"
  ([FUNCTION] [7] [2] [6])
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→M
Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→T
Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→S
Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→H
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
M+1867→A
M=0⇒Isz A
Prog "YRC"
Else If N=2
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"
Else If N=3
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"
Else If N=4
Then
H+1988→A
H=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-1867→M
Else If N=2
Then
A-1911→T
Else If N=3
Then
A-1925→S
Else If N=4
Then
A-1988→H
Else If N=5
Then
B-A→G
Else If N=6
Then
A+G→B
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd

A-1867→M
A-1911→T
A-1925→S
A-1988→H
Locate 5,1,"     "
   (スペース5個)
A>0⇒Locate 5,1,A
Locate 4,2,"      "
  (スペース6個)
M>0⇒Locate 4,2,M
Locate 13,2,"    "
  (スペース4個)
T>0⇒Locate 13,2,T
Locate 4,3,"      "
  (スペース6個)
S>0⇒Locate 4,3,S
Locate 13,3,"    "
  (スペース4個)
H>0⇒Locate 13,3,H


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


上記の赤色で示した部分が前回抜けていました。この1行の下で変数Gに基づいた処理をしているのに、この部分が抜けていては、おかしなことになります。


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



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


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

YrConv9 

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

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


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


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


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


明治の始まりと終わり

大正 

大正の始まりと終わり

明治 

昭和の始まりと終わり
昭和

平成の始まり
平成 


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

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

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


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

YrConv9 


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

こでは、[表示の初期化] ブロックで記述していますが、この表示も再描画する必要がありますので、 サブルーチン YRD で行うように変更することにします。

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

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

Prog "YRD"
Prog "YRC"


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


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



つづく...


CasioBasic入門22 / 目次




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

人気ブログランキングへ


FC2ブログランキングへ



カシオプログラム関数電卓 FX-5800P-N カシオプログラム関数電卓 FX-5800P-N
(2006/09/22)
CASIO(カシオ)

商品詳細を見る



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

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

関連記事

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

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


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR