開設1周年のお礼

e-Gadget



Casio fx-5800P で粗製乱造していたプログラムをチョット真面目に見直してみよう、と思い立ったのがきっかけで、Casio Basic の素晴らしさに気付き、それを伝えたという気持ちから、当ブログを始めたのが1年前のことでした。

走りながら考えて、実際にやったこと、考えたことのみを記事にしてきました。

元来そそっかしいので、以前書いた記事に誤変換や妙な記述、間違いもあり、かなり時間が経ってから修正や追記をしています、それもかなりの頻度で...

こっそり直すこともありますが、ひどい間違いは、いつ何を修正したか分かるようにしているつもりです。

いずれにしても、fx-5800Pのみを対象とした、究極のワンテーマ・ブログが、ここまで来られたのは、コメントで応援してくださる方々だけでなく、ブログを読んでくださるサイレントマジョリティーの皆様のお陰です。

おかげさまで、アクセスカウンターが9,000を超えました。

記事のネタは、まだまだ有るのですが、それを書く時間を取れない状況が続いています。ネタの提供方法を工夫してみたいとも思います。

これからも、長いお付き合いをお願い致します。



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

人気ブログランキングへ




keywords: fx-5800PCasioBasicプログラム関数電卓

リンク集 | ブログ内マップ
関連記事

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

Casio Basic: If~Then~IfEnd

Casio Basic
コマンドリファレンス

Casio fx-5800P、fx-9860GII、fx-CG20 で確認をとっています。Casio fx-FD10 Pro では互換性はあると考えられますが、実機で確認していないので「可能性」としてご覧ください。
最終更新: 2014/10/06 [間違い修正]

fx-5800P / fx-9860GII / fx-CG20
If 文: If ~ Then (~ Else) ~ IfEnd

◆ 概 要:
[判定条件] が「真」の場合と、「真」でない場合で、処理を変更する。


◆書 式1: (単一条件分岐)
If [判定条件]
Then [処理]
IfEnd
  • 判定条件が「真」の場合に [処理] を実行する。
  • [処理]は、Then の後に記述するか、Then の後に改行してから記述しても、どちらでも良い。
=====

◆ 書 式2: (単一条件分岐)
If [判定条件]
Then
[処理2]
Else
[処理1]

IfEnd 
  • 判定条件が「真」の場合は [処理2] を実行し、「真」でなければ [処理1] を実行する。
=====

◆ 書 式3:(複数条件分岐)
If [判定条件4]:Then
[処理4]

Else If [判定条件3]:Then
[処理3
]

Else If
[判定条件2]:Then
[処理2]

Else If [判定条件1]:Then
[処理1]
IfEnd
IfEnd
IfEnd
IfEnd

  • 判定条件N が「真」なら [処理N] を実行する (N = 1, 2, 3, 4)。
  • If の数と同じ数の IfEnd を記述しなければなりません。

対応する If~Else~IfEnd を色分けしてみます。

If E=4:Then
   [処理4]
Else If E=3:Then
 
         [処理3]
        Else If E=2:Then
 
                 [処理2]
                Else If E=1:Then
                         [処理1]
                       IfEnd
        
        IfEnd
      
  IfEnd
IfEnd

このように、Else の中に 新たな If~Else が入った入れ子構造になっています。
この記法を使うと、入れ子構造を意識せずに、単に If の数と同数の IfEnd を最後に書けば良いわけです。

注意!
Casio Basicでは、If の終わりに IfEnd を書かなくてもエラーの表示がありませんが、意図しない動作をしますので、要注意です。

注意!
fx-5800p Casio basicでは、上の色分けで示したようにコマンドの前にスペースを入れるとエラーとなります。「◆書式」の説明に書いてあるようにスペースを入れずに入力してください。

 ⇒ 楽屋裏 - Else If


◆ 書式の補足: 区切りコードを利用した書式例
If [条件]Then [処理1] 
Else [処理2]
IfEnd



◆ Else は省略可能
Else省略時の書式1:
If [条件]
Then [処理]
IfEnd


Else省略時の書式2:
If [条件]
Then
[複数行の処理]
IfEnd

Else省略時で区切りコードを利用した書式例
If [条件]Then [処理]IfEnd




二者択一の処理しかできまない
これは誤り。上記の 書式2 のように、Else If  と記述すると、複数条件分岐ができます。
If 文を入れ子構造にするのですが、Else If と並べて書けるので、その可読性が向上します。
但し、If文の入れ子構造であることには違いがないので、Else If の If の数だけ IfEnd を忘れずに書く必要があります。
[2014/02/23 修正]

これが面倒だと言う場合は、Goto / Lbl を応用した複数分岐処理の構文を参考にしてください → こちら



プログラム事例

3つに場合分けするプログラム事例として、任意の整数を入力させ、3で割った余りが、0,1,2 のいずれかに分類して、その結果を表示するプログラムは以下のようになります。

"A"?→A
A-3Int(A÷3)→M
If M=0
Then Locate 1,1,"REMAINDER 0"
Else If M=1
Then Locate 1,1,"REMAINDER 1"
Else If M=2
Then Locate 1,1,"REMAINDER 2"
IfEnd
IfEnd
IfEnd

ちなみに、A-3Int(A÷3) は、Aを3で割った時の余りを求める式です。"REMAINDER 1" は「余り1」の英語です。

青色で示した If 文の中に、赤色で示した If 文 が含まれ、赤色で示した If 文の中に紫色で示した If 文が含まれています。最後の IfEndは2つ必要ですが、忘れがちなので要注意です。[2014/10/06 今更ながら大きな間違いを見つけたので修正]


或いは、Else を使わず、If ~ Then ~ IfEnd を素直に3つ並べる方法もあります。

"A"?→A
A-3Int(A÷3)→M
If M=0
Then Locate 1,1,"REMAINDER 0"
IfEnd

If M=1
Then Locate 1,1,"REMAINDER 1"
IfEnd

If M=2
Then Locate 1,1,"REMAINDER 2"
IfEnd



Else If を利用した前者の記法の方が、処理が速くなります。



If 文の判定条件について

If 文の判定条件は、それが 「真 (True)」 であれば Then 以降を実行しし、「偽 (False)」 であれば Else 以降を実行するか、Elseが無ければ IfEndまでジャンプします。

If 文の判定では、関係演算式、論理演算式、計算式、関数、変数、戻り値を返すコマンド、数値 を指定できます。

関係演算式を用いる場合
If K≠0If X>Y  などのように、式が「真」か? あるいは「偽」であるか?で判定されます。

論理演算式を用いる場合
Ife X And Y や If X Or Y などのように、結果が「真」か? あるいは「偽」か? で判定されます。

計算式・関数・戻り値を変えるコマンドを用いる場合
If A-BIf sin(D)If Getkey などのように、これらの結果が、0でない(「真」)か? 0である(「偽」)か? で判定されます。

変数を用いる場合
If C などのように、変数が、0でない(「真」)か? 0である(「偽」)か? で判定されます。

数値を用いる場合
If 1 などとすると、常に真になるので、必ず Then 以降が実行されます。文法上は問題ありませんが、このような使い方は実用上意味が有りません。 




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

人気ブログランキングへ


FC2ブログランキングへ


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

リンク集 | ブログ内マップ
関連記事

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

fx-5800Pは良いプログラム関数電卓なのか?

2015/02/01 追記


最近、検索キーワード「fx-5800P」で当ブログへ来られる方が増えてきております。そこで、fx-5800P がどういうものか、簡単に紹介したいと思います。


一言で言えば、とてもバランスがとれた 日常使いに向いていて、作ったプログラムが使いやすいプログラム関数電卓です。フィールドエンジニア必携と言えますが、技術計算以外にも実用プログラムを作れるので、事務系や営業系でも役立ちます。


Casio Basic を搭載していて、プログラミングがとても楽なので、プログラミング経験者にはスグにオリジナルプログラムを作れます。
さらに、これからプログラミングを覚えようと言う方の学習用としても優れています。Casio Basicはカシオ独自のプログラミング言語ですが、基本的にはパソコンで使うBASICと共通する部分が殆どなので、パソコンでのプログラミングへの移行も楽です。

Casio Basicを搭載しているのは、グラフ関数電卓 fx-9860GII や fx-CG20に加えて、最近登場した土木測量向けの fx-FD10があります。但し、これらは実売で1万円~2万5千円程度と高価です。Casio Basicを搭載している最も手頃なものが、fx-5800P で、実売で6千円台半ばから7千円台程度です(一時期は最安値¥6,140と言うこともありましたが...)。

[2015/02/01 追記]
最近、fx-5800P の実売価格が¥6,000 前半から¥5,000台へ下がってきています。また fx-9860GII 並行輸入品も¥8,000円台全般へ値下がりしており、入手すやすくなっています。そこで、価格動向を調べています。
 ⇒ Casio プログラム電卓の価格動向

fx-5800P は、Casio Basicのプログラミング機能を考えた時のコストパフォーマンスがとても優れています。

※参考:fx-5800P搭載 Casio Basic のプログラミング入門、コマンドリファレンスを連載中 ⇒ Casio Basic入門 - 目次

(以上 2014/10/04 修正)

1.良いところ (pros)
1) 小型・軽量・薄型
重量150gで、シャツの胸ポケット、上着のポケットに収まるサイズ。163mm x 82mm で厚さ15mm。

2) 省電力
単4電池で、公称1年稼働。但し、購入時に付属していた「入れ組み」用電池(Panasonicのアルカリ電池)で、激しく使用して4ヶ月でLow Batteryの表示が出ました。
※激しく使用: 毎日30~1時間使用に加えて、数時間連続計算を何十回と繰り返したりする

3) 処理速度
・ 関数電卓としては、 fx-955ES よりも高速で、使いやすい。最上位の関数電卓と言える。
・ プログラム電卓としては、簡単なアクションゲームなら、ロジックの工夫次第でそこそこのものが作れる程度には速い。
・ アクションゲーム以外の実用プログラムなら、全く問題を感じない処理速度

4) プログラミング言語
・ CasioBasic搭載: 行番号の無い、いわゆる構造化BASIC。数百行のプログラムを効率的に書ける。
・ Getkey (リアルタイムのキーコード取得)やLocate コマンドが、実用プログラム作成を容易にする
・ CasioBasic独自の命令が、ステップ数の少ないロジック構成を実現し、処理速度の高速化に寄与する (例えば、Dsz、Isz、⇒ 命令など、fx-502P、fx-602P の流れを汲む命令)
・ プログラム領域が28KB程度で、プログラム数は無制限
・ 変数は26個(A~Z)、但し配列変数を用いると、プログラム領域から変数領域を切り出してさらに多くの変数を使える

5) 見やすい液晶ディスプレイ
・ 黒液晶で、見やすいフォントを採用
・ 16桁 X 4行 は意外に使える

6) キーの印刷が見やすい
・ 最近のカシオの関数電卓に共通するが、キーの印刷が見やすい


2.悪いところ (cons)
1) PCリンクの手段が無い
・プログラムのバックアップ手段としては、もう1台の fx-5800P に専用接続ケーブルで転送する方法のみ

2) プログラム実行速度
・ カシオのグラフ電卓 fx-9860G II や fc-CG20 に比べると処理速度がかなり遅い
・ 文字列処理の機能がない
・ 配列変数は、インデックスが自然数(0を使えない)
・ グラフィックス処理の機能がない

3) 360度フリップタイプのハードカバーのヒンジが弱く壊れやすい



6~7千円をどう考えるかですが、1台持っていても損は無いと思います。




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

人気ブログランキングへ


FC2ブログランキングへ

 

keywords: fx-5800Pプログラム関数電卓

リンク集 | ブログ内マップ
関連記事

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

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

やす (Krtyski)

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


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

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

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

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

この人とブロともになる

QRコード
QR