Casio Basic入門38

Casio Basic(超)入門
<目次>

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

最終: 2015/02/11


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

前回: Casio Basic入門37 - Chapter 6 を見る


Chapter 7  - 初級

今回は、初めて fx-58800P でプログラムを作ってみる想定で、プログラミングに必要な fx-5800P の操作方法を具体的に説明し、シンプルなプログラムを作り、それを徐々に改造してゆくことにします。

プログラミング経験が少ない場合は、先ずCasio Basic入門1の 2. プログラミングとは? から Chapter 0 までに目を通してください。
 ⇒ Caso Basic入門1 - 2. プログラミングとは?: プログラムの基本的な考え方
 ⇒ Caso Basic入門2 - Chapter 0: プログラム作成・実行のポイント


Chapter 7 の流れとポイント

以下の流れで、初めて作る最もシンプルな電卓プログラムを徐々に改造してゆきます。
 1) 最もシンプルなプログラム1: 入力計算出力
 2) 最もシンプルなプログラム2: 同じプログラム構成で別のプログラム作成
 3) メニューでプログラムの切替え: メニューで最もシンプルなプログラム1と2を選択して実行する
 4) メニュを3つに増やす: 最もシンプルなプログラム3つを切り替える
 5) メニュー選択の改良: 想定外の使用方法への対策
 6) メニュー表示の改良: メニュー画面と出力画面の統一によるプログラム効率化


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

fx-5800P のようなプログラム電卓で作る代表的なプログラムは、次のようなものでしょう;

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

そこで、今回は温度換算プログラムを題材にして、Caso Basic 入門レベルから始めて、徐々に改造してグレードアップし、最後は入力ボックスを活用してみます。



温度換算プログラムを作る前に - 摂氏と華氏

温度が30度と言う時、普通の日本人では、セッシ(摂氏)温度、°C を暗黙の了解で使っています。

一方、アメリカでは違った温度の単位を使っています。夏の気温が 90 度、などと言うので、アメリカに旅行したことのある方は、一度は驚いた経験があると思います。この 90 度は、おおよそ日本の 32 度と同じです。つまり、使っている単位が違っているのです。アメリカでは、カシ(華氏)温度を使っていて、°F と言う単位を使っています。但し暗黙の了解があるので、F を省いて 90° とだけ表示することもあります。

ちなみに、摂氏温度の °C は、セルシウス (Celsius) の C が由来です。華氏温度の °F は、ファーレンハイト (Fahrenheit) の F が由来です。摂氏や華氏と言う日本語は、これらの温度単位を提唱した人の名前の音読みを中国語で表現して、最初の漢字に人物を意味する氏を付けたもので、それが輸入されて日本でも使っているようです。

アメリカ旅行中に突然熱がでて、とりあえず病院に行って、熱が38度あります、と言うと、アメリカ人看護師や医師は一瞬??と思うでしょう。アメリカで38度は、華氏38度で、これは摂氏3.3度ですから...(^^;)

熱で朦朧としているのに、計算なんかできません。そこで電卓プログラムの登場...ちょっと苦しいこじつけですが、摂氏温度を華氏温度に換算するプログラムを作ってみましょう。



Chapter 7-1
摂氏から華氏への換算プログラム


プログラム作成の準備

Chapter 0 を参考にして、fx-5800P で、プログラム名 TC1 で新規プログラムを作ります。

まず、[AC] で fx-5800P の電源を入れましょう。普通の電卓の画面が表示されます。COMPモードと言います。

Compモード 

ここで、[MODE] キーを押すと、モード選択メニューが表示されます。

Modeメニュー 

[1] 1:COMP を選ぶと、普通の電卓画面(COMPモード)に戻ります。

ここで、[5] 5:PROG を選ぶと、プログラムモード(PROGモード)に進み、Program Menu が表示されます。

Program Menu 


電源を入れた時、普通の電卓の画面以外が表示された場合は、[MODE] キーでモード選択メニューに切り替え、[5] (5:PROG)でProgram Menu に切り替えます。

Program Menu 

これで、プログラム入力の準備ができました。



プログラムファイル作成

Program Menu 

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

File Name 1 

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

File Name 2 

そして、 [EXE] で確定します。


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

File Mode 

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

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

Program Input 


プログラムの入力

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

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


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

このプログラムでは、1行目にあるがポイントです。はたった1文字ですが多彩な機能を持った「入力命令」です。
詳しくは後で説明しますが、数値をキー入力させそれを変数に代入することができます。?(入力)命令には、主に以下の機能が含まれています。
 ・代入する変数に格納されている値を入力前に表示
 ・数値の入力
 ・入力数値の編集
 ・入力確定
 ・確定入力値の表示
 ・確定入力値の変数への代入

?(入力)命令は、シンプルな1文字ですが、機能が満載です。

注) fx-9860GII や fx-CG20 でこのプログラムを入力する場合は、? が使えないので、代わりに ?→ を使ってください。fx-5800P の入力命令には、 ??→ の2つが用意されています。一方で、fx-9860GII / fx-CG20 では、入力命令 ? は使えず、?→ のみが用意されています。但し、??→ では動作が少し異なります(その違いは後で説明しています)。


なお、(入力)命令の前に、"°C" があります。出力命令 " " を使っています。" で挟まれた文字列を表示する動作をします。

さて、実際のプログラム入力について、簡単な説明をします。

先ず最初に、" を入力するには、
[ALPHA} [√□] ("
の順に入力します。

次に、°C° を入力するには、

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

の順に入力します。

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

Functionメニュー 

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

Angleメニュー 

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


次に、C を入力するには、
[ALPHA] [°’”] (C) 
の順に入力します。


?命令を入力するには、

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

の順に入力します。


アルファベットを入力する時は、[ALPHA] に続いて 赤い印字のアルファベットのキーを押します。

TC1_Source 

1行目の最後に改行マーク が入っています。

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

Prog Edit 

ここで、TC1 にカーソルがきているので、[EXE] を押せば、再びプログラム編集画面になります。

プログラム編集画面で、[EXIT] キーを押して、Progra Edit 画面に戻ります。

Prog Edit でさらに [EXIT] キーを押すと、Program Menu 画面に戻ります。今どこに居るのか分からなくなったら、[EXIT] を何度か押せば、最後には Program Menu 画面に戻ります。

Program Menu 


作ったプログラムの実行

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

Program Menu 

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

ProgList2 

ここで、実行したいプログラム TC1 を矢印キー [▼][▲] で選んで、[EXE] キーを押せば、そのプログラムが実行されます。

では、実行しましょう。

TC1-1 

2行目の右端に何か数字が表示されていると思います(後で説明します)。ここで、38 と入力しましょう。

TC1-2 

この入力を確定するために [EXE] を押すと、右下に 100.4 と表示されました。これが華氏温度です。

TC1-3 

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

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

ProgList3 

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

Program Menu 


プログラム動作が異常のとき

プログラムの動作が期待された通りでない場合は、プログラムの入力ミスやバグの可能性が殆どです。

入力ミスやバグのために、エラー表示が現れることがあります。例えば、Syntax ERROR は文法上の誤りを意味します。

 SyntaxERROR 

エラーの種類については、fx-5800P 取扱説明書の111ページにある一覧表が示すように、様々ななものがあり、エラーの原因を推定できます。エラー表示が現れた時、[EXIT] を押すと、プログラム編集画面に戻り、エラーの原因となった部分の直後にカーソルが表示されます。以下は Syntax ERROR が起こるプログラムの一例です。

Bug 2 

この場合、一行目を本来 "°C"?C とすべきところ、最後の C の入力時に、[ALPHA] キーを押さずに [°’”] を押してしまったケースです。変数でない記号が入力されているので、?命令による代入が正しく行われないのが問題です。エラーの原因となる記号の直後にカーソルがきています。これを修正し、[EXIT]Prog Edit 画面に戻ります。

Prog List (PROG MODE) 3 


プログラム実行中に強制終了させて、プログラムを編集しなおすこともできます。プログラムを強制終了するには、[AC] キーを押します。すると、AC でプログラムが中断されたと言う AC Break 画面に切り替わります。

AC Break 

ここで、表示に従って [EXIT] を押すと、プログラム編集画面に戻ります。

TC1_Source 

プログラム編集画面で、もう一度 [EXIT] を押すと、Program Menu 画面に戻ります。


もう1つのプログラム実行方法 - COMPモードからのプログラム実行

[EXIT] キーを連打して、Program Menu 画面に戻りましょう。

Program Menu 

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

Compモード 

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

Prog List 

COMPモード(普通の電卓の画面)から、[FILE] 一発で Prog List  を表示できるのは、fx-5800P と fx-FD10 Pro のみです。他のグラフ関数電卓では、この便利な機能がありません。

この画面をよく見てみると、画面上部に PRGM の表示がありません。つまり PROGモード ではなく、COMPモード であることを示しています。

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

TC1-1 

ここで、摂氏温度 38 を入力し、
 
TC1-2 

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

TC1-3 

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

再度 [EXE] を押すとプログラムが終了しますが、今回は Prog List が表示されずに、プログラム TC1 が再度起動します。

TC1-4 

これが、COMPモード[FILE] キーによる Prog List 利用の面白いところで、実用上の利便性が考慮されています。

プログラムが終わっても同じプログラムが再起動するので、何度でも温度換算を繰り返せますね。プログラムを終了させるには [AC] キーを押します。[FILE] キーからのプログラム起動のメリットが、ここにもあります。fx-5800P では、このような利便性が考えられているのです。

実は、COMPモードProg List からプログラムを実行するのは、COMPモード

Prog "TC1"

と入力して [EXE] を押すのと全く同等です。fx-5800P では、COMPモードから Prog コマンドを使ってプログラムを実行できるようになっていて、それを補助するのが [FILE] キーによる Prog List 表示機能なのです。

たった2行で実用的なプログラムができました。これは、Casio Basic で作る最もシンプルなプログラムだと思います。


2つのプログラム実行方法の使い分け

以上みてきたように、fx-5800P では、プログラムを実行するために2つの方法が提供されています。プログラムを編集したり変更する際は、Program Menu から実行するのが良いのですが、一旦完成したプログラムを実行するには、COMPモードから [FILE] キーを使って実行する方が良いでしょう。と言うのも、COMPモードから実行すると、プログラムをうっかり変更してしまう危険性が無いからです。

COMPモードで [FILE] キーを押した時に現れるプログラムリストは、よく使うプログラムを最大5つまでリストの先頭に表示させる機能もあります。⇒ 取扱説明書 92ページ 「プログラムを「お気に入り」登録するには」を参照

一方、fx-9860GII や fx-CG20/10 では、プログラムを実行するためには Programモードの Program List から実行するしかありません。


プログラムの説明

今回作ったのは、Casio Basic で作る最もシンプルなプログラムだと思います。ここで使ったのは、" " (出力)命令 ?(入力)命令だけです。
 ⇒ Casio Basic コマンドリファレンス - " " (出力)命令
 ⇒ Casio Basic コマンドリファレンス - ?(入力)命令

?(入力)命令には、多彩な機能が隠されています。

?命令の書式は、

?[変数]

変数に C を使って、

?C

とすると、画面の左端にとだけ表示され、プログラムの動作が一旦停止し、入力待ちになります。

プログラミングで知っておくべき最も大切な基本の1つが、プログラムは特に何も命令されなければ、上から下へ止まらず連続的に動作し続けると言うことです。Casio Basic のプログラミングでは、この原則に従って、上から下へ命令やコマンドを書いてゆきます。

入力命令?には、この原則を破って、一旦停止して入力待ちを行う機能があると理解してください。一旦停止した状態を解除するには、[EXE] キーを押して入力を確定します。すると確定された入力値が変数 C に 代入 されます。これは?命令の仕様です。


代入とは?
変数とは、数値を入れる容器です。そして容器には名前が付いていて区別できるようになっています。変数 C は 容器 C というわけです。容器 C に数値を入れることを、変数 C に数値を代入する、と言います。代入と言う表現以外にも、C に数値を入れる / 格納する、などともいいます。要するに、名前のついた容器に数値を入れると言う感覚に基づく表現です。


さて、?命令には、次のような書式もあります。

"文字列"?[変数]

文字列を " " で囲むと、ここで指定した文字列表示してから、一旦停止して入力待ちになります。Casioのプログラム電卓では数字と英語のアルファベットそして一部の特殊記号を文字列に使えますが、残念ながら日本語の文字は使えません。何か表示するには、ローマ字表現か英語表現を使うことになります。


例えば、

"INPUT"?C

と書いて実行させると、

画面の左端に、

INPUT?

と表示され、プログラムが一旦停止して、入力待ちになります。

そして、数値を入力して [EXE] で入力を確定すると、入力した数値が変数 C に代入されます。この C は2行目の計算で使います。

つまり、入力命令?には、以下の機能が備わっています。
1) プログラムを一旦停止して入力待ちする
2) [EXE] で入力を確定する
3) 確定した入力値を変数に代入する

今回のプログラムでは、摂氏温度を入力するので、分かりやすくするために、

"°C"?C

と書いています。これが実行されると、画面の左端に

°C?

と表示されます。但し、1行下の右端にも数値が表示されていると思います。これも?命令の仕様です。

TC1-1 

変数 C に既に格納されている値が表示されています。COMPモード[FILE] キーを押して現れる Prog List から TC1 を実行すると、既に説明したように、プログラムが終了しても自動的に再起動するので、次々に異なる温度を入力できて便利です。すると前回代入された C の値が表示されると、[EXE] を押すだけで、同じ値を入力確定できますので、プログラムによってはとても便利です。

もし、前回代入された値を表示させたくない時は、以下のような書式も使えます。

"文字列"?→[変数]

今回のプログラムで、変数 C に格納されている値をいちいち表示させずに、毎回値を新たに入力させるようにするには、

"°C"?→C

のように、?の後ろに を追加します。このように、

たった1文字の?命令には、極めて多彩な機能が備わっていることを紹介してきました。入力命令?には、既にお気づきのように、何かアクションをするたびに自動的に改行する機能も備わっています。4行目で改行すると画面が自動的にスクロールします。次々に様々な値を入力させ、最後に計算をして結果を表示させるプログラムを非常に簡単に作ることができます。



では、2行目の (9÷5)C+32 について見てゆきます。1行目で、入力した摂氏温度が変数 C に代入されていて、この C に入っている数値を使って、2行目の計算を行って、華氏温度を求めています。

例えば、摂氏温度 38 ℃ の時、この計算の結果は 100.4 となります。

Casio Basic は、プログラムの最後に計算式があると、プログラム終了時にその計算結果を表示する、という仕様になっています。今回のプログラムは、この仕様を利用しています。


今回のプログラムは、摂氏温度から華氏温度を計算して表示するものです。逆に華氏温度から摂氏温度を求めるプログラムも殆ど同じようにして作れると思います。

摂氏温度を C、華氏温度を F とすると、今回使った計算は

F=(9÷5)C+32

この式を普通の数学を使って変形すると、

C=5(F-32)÷9

となりますね。


では、今回とは逆の換算、つまり 華氏温度を入力して摂氏温度を表示するプログラムを次回までに作ってみてください。




つづく...

Casio Basic入門39 / 目次




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

人気ブログランキングへ


FC2ブログランキングへ

 


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

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



関連記事

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

コメントの投稿

非公開コメント

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

やす (Krtyski)

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


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

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

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


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR