Casio Basic入門39

Casio Basic(超)入門
<目次>

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

最終: 2015/06/12


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


Chapter 7  - 初級

前回: Casio Basic入門38


◆ Chapter 7 の目標: ゼロからのプログラム作成と機能追加

前回は、摂氏温度を入力すると華氏温度を表示するプログラムを作りました。
?(入力)命令が持つ多彩な機能により、たった2行のシンプルなプログラムとなりました。

奥の深い?命令

1)
 入力: 数値を入力させ
2) 計算: 計算して
3) 出力: 結果を表示する

といったプログラム作成には、役立つことが分かります。

今回は摂氏から華氏の換算だけでなく、逆の華氏から摂氏を換算する2つの機能を持つプログラムに改造してみます。



Chapter 7-2
同様の機能を追加する

前回作った、摂氏から華氏への換算プログラムは以下でした。

”°C"?C
(9÷5)C+32


同様にして、華氏から摂氏への換算プログラムを作ってみます。

華氏温度を入力させるには、" " (出力)命令?(入力)命令を使って、以下のようにします。

"°F"?F

ここでは、入力された華氏温度を変数 F に格納(代入)しています。

次に、華氏温度 F から摂氏温度 C を得るには、以下の計算を行います(前回最後に紹介しています)。

C = 5(F-32)÷9

従って、華氏温度を入力させ、摂氏温度を表示させるプログラムは、以下になります。

"°F"?F
5(F-32)÷9



では、この新しいプログラムを、プログラム名 TC2 として、実際に作ってゆきます。

前回を参考にして、Program Menu 画面を表示しましょう。

Program Menu 

ここで [1] (1:NEW) を選び、ファイル名入力画面に切り替えます。

File Name 1 

ここで、プログラム名 TC2 を入力します。File Name? では、最初はアルファベットモードになっています。画面上部に A アイコンが表示されているので、アルファベットモードだと分かります。ここで、[2] (T) [°’”] (C) と入力した後、[ALPHA] を押してアルファベットモードを解除し、[2] を入力します。

TC2_FileName 

確定するために、
 [EXE] を押します。

すると、File Mode 画面に切り替わります。

File Mode 

ここで、 [1] (1:COMP) を選びます。

すると、何も表示のない画面に切り替わります。画面上に PRGM と表示されていて、この画面でプログラムの入力や編集を行います。

Program Input 

プログラム編集画面で、今回のプログラムを入力してください。

"°F"?F
5(F-32)÷9


1行目を入力したら、[EXE] キーを押して改行し、2行目の入力を始めます。

ここで、" を入力するには、
[ALPHA} [√□] ("
の順に入力します。

次に、°F の ° を入力するには、

[FUNCTION] キー
[5] キーで 5:ANGLE 選択
[1] キーで 1:° 選択

の順に入力します。

[FUNCTON] キーで FUNCTIONメニューが表示され、

Functionメニュー 

ここで、[5] (5:ANGLE) を選ぶと、ANGLEメニューが現れます。

Angleメニュー 

[1] (1:°) を選ぶと、° を入力できます。


次に、F を入力するには、
[ALPHA] [tan] (F) 
の順に入力します。


を入力するには、

[FUNCTION] [3] (3:PROG) [1] (1:?)

の順に入力します。

TC2_src 

上の2行のプログラムを入力し終わったら、[EXIT] キーを押します。すると、Prog Edit 画面に切り替わります。

TC2_Prog Edit 

ここで、TC2 にカーソルがきているので、[EXE] を押せば、再びプログラム編集画面になります。Prog Edit 画面に戻り、ここでさらに [EXIT] キーを押すと、Program Menu 画面に戻ります。今どこに居るのか分からなくなったら、[EXIT] を何度か押せば、最後には Program Menu 画面に戻ります。

Program Menu 



TC2の実行

さて、今入力したプログラム TC2 を実行しましょう。

Program Menu 

Program Manu 画面で、[2] (2:RUN) を選ぶと、Prog List 画面に切り替わります。

TC2_Prog List @ ProgMode 

ここで、カーソルが TC2 に合っていると思います。カーソルは矢印キー [▼][▲] で動かせます。

実行したいプログラム (TC2) にカーソルを合わせて、[EXE] キーを押せば、そのプログラムが実行されます。

では、実行しましょう。

TC2-1 

2行目の右端に数値が表示されていますが、前回説明したように、変数 F に格納されている値が表示されています。ここで、100 と入力しましょう。

TC2-2 

この入力を確定するために [EXE] を押すと、

TC2-3 

右下に 37.77777778 と表示されました。これが摂氏温度です。

このプログラム TC2 は、°F? と表示された時に華氏温度を入力すれば、摂氏温度を表示します。?(入力)命令の仕様で、出力は行の右端に表示され、入力した数値は行の左端に表示され、分かりやすくなっています。

ここで、[EXE] を押すとプログラムが終了して、Prog List  画面に戻ります。

TC2_Prog List @ ProgMode 

プログラムを編集するには、ここで [EXIT] を押し、Progrm Menu 画面に戻ります。

Program Menu 


もう1つのプログラム実行方法

[EXIT] キーを(何度か)押して、Program Menu 画面に戻りましょう。

Program Menu 

そして、[MODE] [1] (1:COMP) の順に押して、COMPモード(普通の電卓の画面)に戻します。

Compモード 

ここで、[FILE] キーを押すと、Prog List 画面に切り替わります。

TC2_Prog List @ CompMode 

この画面は、COMPモードでの Prog List なので、画面上部に PRGM の表示がありません。

さて、Prog List 画面では、自動的にアルファベットモードになっています。画面の左上に小さな A アイコンが表示されているので、アルファベットモードであることが分かります。ここで、[2] (T) を押すと、T で始まるプログラム名の最初のプログラムが一番上に表示され、カーソルが乗っています。もし T で始まるプログラムがなければ、アルファベット順で T の次で始まるプログラムが一番上に表示されます。既に TC2 を作っているので、TC2 にカーソルを合わせてから [EXE] キーを押すと、TC2 が起動されます。

TC2-1 

ここで、華氏温度 100 を入力し、
 
TC2-2 

[EXE] で入力確定すると摂氏温度が表示されます。

TC2-3 

ここまでは、上記の PROGモード での動作と同じです。

上の表示を行ったままプログラムは終了します。今は、COMPモードで [FILE] キーで現れる Prog List  から実行しているので、プログラム終了後 [EXE] を押すと、同じプログラムが起動します。こうやって繰り返しプログラムを実行できて便利です。

TC2-1 

実は、COMPモード[FILE] キーによる Prog List からプログラムを実行する時、COMPモード

Prog "TC2"

が実行されています。プログラム呼出コマンド Prog が関数のように使えるようになっています。試しに、COMPモードで上記の1行を入力してから [EXE] キーを押してみてください。

Prog コマンドを入力するには、[SHIFT] [FILE] (Prog) とキー入力します。その後、"TC2" と、" " を含めて入力します。そして、これを実行するために [EXE] キーを押すと TC2 が起動することを確認してください。 

プログラムが終了しても、COMPモードの画面には、上記の Prog "TC2" が残っているので、[EXE] キーを押すだけで TC2 が再起動するわけです。

Casioのプログラム電卓の中で、COMPモードでプログラム呼び出しコマンド Prog を関数のように使えるのは、fx-5800P だけです(fx-FD10 Pro でも COMPモードからプログラムを呼び出せるようですが、実際に確認していませんので詳細は不明です)。



以上で、摂氏から華氏への換算と逆方向の華氏から摂氏への換算の計算部分ができました。

それでは、1つのプログラムで 1) 摂氏から華氏への換算、と 2) 華氏から摂氏への換算を選んで実行できるプログラムを作ってみます。これが今回の目標です。

既に、それぞれの換算部分は出来ているので、プログラムの最初で、
 1) 摂氏から華氏への換算
 2) 華氏から摂氏への換算
のどちらを行うのかを選択させるメニューを作り、どちらか決まったら既に作ったプログラムを走らせるようにします。

例えば、以下のようなメニュー表示を作ってみます。

TC2 new-1 

この部分のプログラムは以下のようになります。

"1:°C"
"2:°F"
"INPUT MENU N°"?→M


1行目と2行目は、単に表示を行うだけです。3行目はメニュー番号を入力させて、入力値を変数 M に代入しています。

詳細をみてゆきます。

" " は、出力命令です。" " で囲んだ文字列を表示します。
 ⇒ Casio Basic コマンドリファレンス - " " (出力)命令

" " 命令で表示される行は、内部管理されているカーソル行です。
プログラムの最初、或いは Cls コマンドの直後の " " 命令では、内部カーソル行は1行目です。
その後、" " 命令が実行されるたびに、内部カーソル行が改行されます。

従って、

"1:°C" 

は、プログラムの冒頭なので、内部カーソル行である1行目に表示され、内部カーソル行が改行され2行目になります。

次の、

"2:°F"

は、この時点での内部カーソル行である2行目に表示され、内供カーソル行が改行され、3行目になります。

Casio Basic では区切り文字 : が使えます。区切り文字は、複数のコマンドを1行に並べて記述する時に使います。

"1:°C"
"2:°F"


と記述する代わりに、区切り文字を使って、

"1:°C":"2:°F"

と書くこともできます。ここで注意して欲しいのは、区切り文字を使っても表示では改行されることです。改行は " " (入力)命令が持つ機能です。従って、区切り文字を使って1行に記述したとしても、改行されて表示されます。区切り文字は、単に1行に記述するためだけのもので、それ自体何の命令も行いません。

さて、上の2行が実行されると、カーソル行は3行目に移ります。そして、プログラム3行目は、入力命令? を付加した書式です。

"INPUT MENU N°"?→M

 ⇒ Casio Basic コマンドリファレンス - ?(入力)命令

これが実行されると、画面には

INPUT MENU N°?

と表示され、入力待ちになります。数値を入力し [EXE] で確定されると、入力値が変数 M に代入(格納)されます。
なお、?命令 を付加した書式では、入力値を代入する変数 M の値を表示しません(前回参照)。

改めて、以上をまとめると、

"1:°C"
"2:°F"
"INPUT MENU N°"?→M


を実行すると、以下の画面表示になります。

TC2 new-1 

ちなみに、 は、No. と同じ意味の表記で、日本ではあまり見かけないのですが、欧米では使われます。今回は1行に収めたいのでこのような表記を使うことにします。
INPUT MENU N° は、「メニュー番号を入力してください」と言う意味になります。

従って、ここでは [1][2] を入力することになり、メニュー番号に応じて以下の流れで処理を行います。
・メニュー番号1を選ぶと変数 M には 1 が格納され、摂氏から華氏への換算を行う。
・メニュー番号2を選ぶと変数 M には 2 が格納され、華氏から摂氏への換算を行う。

変数 M の値に応じて処理を分岐するには、If 文を用います。If 文について詳しくは、次のコマンドリファレンスを参照してください。
 ⇒ Casio Basic コマンドリファレンス - If 文


さて、メニューで選択した変数 M の値に応じて、Ifを使った分岐処理を、以下のようにします。

If M=1
Then
<摂氏から華氏への換算>
Else If M=2
Then
<華氏から摂氏への換算>
IfEnd
IfEnd


プログラムは、上から下へ順に実行されるのでした。
命令やコマンドを改行する代わりに区切り文字 を使って1行に書くこともできます。但し、:記号の前後にスペースを入れるとエラーになるので、スペースを入れてはいけません。

上のプログラムの 最初の2行最後の2行 :記号 (区切り文字) を使って以下のように書き直せます。

If M=1:Then
<摂氏から華氏への換算>
Else If M=2
Then
<華氏から摂氏への換算>
IfEnd:IfEnd


ところで、:記号を入力するには、

[SHIFT] [√□] ()

と続けて入力します。

青文字で示した各換算処理は、既に作っている内容を適用します。

摂氏から華氏への換算
既に作っている次のコードを使います。
"°C"?C
(9÷5)C+32


華氏から摂氏への換算
これも既に作っている次のコードを使います。
"°F"?F
5(F-32)÷9



※ ”コード”とは?
プログラムの具体的な記述内容をコード、あるいはプログラムコードと言います。
プログラムを書くことをコーディングなどと言うこともあります。


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

プログラム TC2
"1:°C"
"2:°F"
"INPUT MENU N°"?→M

Cls
If M=1:Then
"°C"?C
(9÷5)C+32
Else If M=2
Then
"°F"?F
5(F-32)÷9
IfEnd:IfEnd


ここで、Cls を追加しました。


メーニュー表示後、一旦 Cls コマンドで画面表示を消去し、内部カーソル行をリセットして1行目に戻します。fx-5800Pの取扱説明書には内部カーソル行に関しては、全く説明されていません。
 ⇒ Casio Basic コマンドリファレンス - Cls

Cls の効果を確認するために、上記の Cls を追加せずにプログラムを実行してみてください。表示がおかしくなることが分かると思います。


入力が終わったら、[EXIT] を2回押して、Program Menuへ戻ります。

Program Menu 

次に、[MODE] で モードメニューを表示させ、

Modeメニュー 

[1] (1:COMP) で、COMPモード(普通の電卓の画面)へ切り替え、

Compモード 

ここで、[FILE] キーを押して、COMPモードでの Prog List を表示させ、TC2 を実行します。

TC2_Prog List @ CompMode 

すると、TC2 が起動し、先ずメニューが表示されます。

TC2 new-1  

摂氏から華氏への変換を行いたい場合は、[1] を入力

TC2 new-2 

[EXE] で入力を確定すると、摂氏から華氏への変換の画面が表示されます。

TC1-1 

既に作ったプログラム通りにに動作します。摂氏温度 38 を入力し、

TC1-2 

[EXE] で確定すると、

TC1-3 

華氏温度 100.4 が表示され、そのままプログラムは終了します。

COMPモードでプログラムを実行したので、[EXE] を押せば TC2 が再起動してメニュー画面が表示されます。

TC2 new-1 

ここで、[2] を押して、華氏から摂氏への換算を選ぶと、

TC2 new-3 

[EXE] で確定すると、

TC2-1 

ここで、華氏温度 100 を入力、

TC2-2 

入力確定のために、[EXE] を押すと、

TC2-3 

換算された摂氏温度が表示されたままプログラムが終了します。

[EXE] を押すと、同じプログラムが再起動して、メニュー画面が表示されます。

TC2 new-1 

プログラムを終了するには、[AC] キーを押しでください。



今回は、2つの温度単位の間の換算プログラムを作りました。温度だけでなく、例えばcmとインチなどの長さの換算や重さの換算など、一部を変更するだけで、様々な換算プログラムを作れます。

さて、温度の単位には、摂氏と華氏以外にも絶対温度があります。絶対温度は科学技術では不可欠な温度単位で、

[絶対温度] = [摂氏温度] + 237.15 

と言う関係があります。

次回は、3つの温度単位:摂氏温度、華氏温度、絶対温度の間の換算プログラムを作ってみます。



つづく...

Casio Basic入門40 / 目次




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

人気ブログランキングへ


FC2ブログランキングへ

 


keywords: fx-5800PCasioBasic、入力ボックス, プログラミング入門プログラム関数電卓、温度換算

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



関連記事

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

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


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR