Casio Basic入門 -目次-
Casio Basic入門
新しい記事の公開に合わせて随時追記・修正します
最終: 2020/08/27
最終: 2020/08/27
▋目 次
- 1.はじめに: [1]
- 2.プログラミングとは: [1]
- 3.fx-5800PのCasio Basicコマンド一覧: [2]
- 4.Casio Basicを使ってみる
- Chapter 0 - プログラム作成・実行のポイント: [2]
- Chapter 1 - Getkey と Locate を使いこなす: [3] [4] [5] [6] [7] [8]
- Chapter 2 - 動きのあるプログラムを作る: [9] [10][11][12][13][14]
- Chapter 3 - 自由自在に入力する(入力ボックス): [15][16][17][18]
- Chapter 4 - 換算プログラムを作る: [19][20][21][22]
- Chapter 5 - サブルーチンを使いこなす: [23] [24] [25] [26] [27] [28] [29] [30] [31]
- Chapter 6 - プログラムを速くする(入力ボックス) [32] [33] [34] [35] [36] [37]
- Chapter 7 - 超入門 - ゼロからのプログラム作成と機能追加: [38] [39] [40] [41] [42]
- Chapter 8 - Basic 命令を活用してみる: [43] [44] [45] [46] [47] [48] [49] [50]
- Chapter 9 - 簡単な換算プログラム - 入力ボックスの活用: [51] [52] [53] [54]
- Chapter 10 - 3桁区切り出力 - 汎用サブルーチンの作成: [55] [56] [57] [58] [59]
- Chapter 11 -
- 5.Casio Basicでグラフィックス / 目次
- Chapter G01 - LCDと3つの座標系: [G01]
- Chapter G02 - グラフィックス画面の設定と描画: [G02]
- Chapter G03 - ClrGraph / Cls と ViewWindow: [G03]
- Chapter G04 - Plot と Line: [G04]
- Chapter G05 - Plot と ViewWindow: [G05]
- Chapter G06 - F-Line と線のスタイル設定: [G06]
- Chapter G07 - 点線とViewWindow: [G07]
- Chapter G08 - ViewWindow の有効活用 / RclPict と RclCapt の違い: [G08]
- Chapter G09 - ViewWindow と設定変数: [G09]
- Chapter G10 - Circle コマンド: [G10]
- Chapter G11 - PxlOn コマンド: [G11]
- Chapter G12 - PxlOff コマンド: [G12]
- Chapter G13 - PxlChgコマンド: [G13]
- Chapter G14 - PxlTest( ) コマンド: [G14]
- Chapter G15 -
- Chapter G16 -
- Chapter G17 -
- Chapter G18 -
詳細な目次へ
▍Casio Basic入門の概要
CasioBasic入門では、最初から順に読むことを前提に書き始めました。最初は基本的な部分から丁寧な説明を心がけていますが、進むにつれて同じ説明を省略するようになります。Casio Basicの命令やコマンドの使い方だけでなく、プログラミングの考え方、手法、知っておくと役立つ話題なども、折に触れ紹介しています。
当初、fx-5800P 使用を前提にして始めていますが、「4. Casio Basic を使ってみる」 で取り上げているプログラムは、簡単な変更で fx-9860GII や fx-CG50 への移植も可能です。具体的に fx-9860GII や fx-CG50 などへの移植を取り上げた記事もあります。
fx-CG20 / CG50 については、fx-9860GII の Casio Basic プログラムからの移植性が非常に高く、物理座標系で動くグラフィックスコマンド(Text、PxlOn、PxlOff、PxlChg、PxlTest) を使っていないプログラムは、fx-CG20 / CG50 に転送するだけで、ほぼ正常動作します。
⇒ Casio Basic - 機種別の互換性
⇒ fx-9860GII への移植 - 厄介な旧来の命令
「5. Casio Basic でグラフィックス」 は、グラフィックス機能を持たない fx-5800P ではなく、fx-9860GII を前提にしています。ここで紹介しているプログラムは fx-CG-20 / fx-CG50 で動作します。というのも、fx-CG20 / fx-CG50 は、カラー対応の部分を除き、fx-9860GII の上位互換になっているからです。fx-9860GII からの互換性の無いコマンドは僅かですが、fx-CG20 / CG50 で互換性のないコマンドについては、順次追加する予定です。
▍Casio Basic入門の読み方
PCなどでの高級言語でのプログラミング経験者には、最初から順に読み進めて頂ければ、Casio Basic が意外に使えることに気付いて頂けると思います。
昔の古い電卓やポケコンでの行番号付きのBASICなどでのプログラミング経験しか無い方、およびプログラミング未経験者の方は、以下の順序で読み進めると良いと思います。
プログラミング経験の少ない方、プログラミング初心者向けの進め方
2. プログラミングとは
↓
4. Casio Basicを使ってみる [fx-5800P 向け。fx-9860GII や fx-CG20 / CG50 にも移植可能]
↓
・Chapter 0 (プログラム作成・実行のポイント)
↓
・Chapter 7 (超入門:ゼロからのプログラム作成と機能追加) ※1
↓
・Chapter 8 (Basic コマンドを使ってみる) ※2
↓
・Chapter 1 (Getkey と Locate コマンドを使いこなす)
↓
・Chapter 2 (動きのあるプログラムを作る)
↓
・Chapter 3 ~ Chapter 6 / Chapter 9 ~
↓
5. Casio Basic でグラフィックス [fx-9860GII 他、グラフ関数電卓向け]
※1 fx-5800P プログラミング(超)入門
Chapter 7 (超入門:ゼロからのプログラム作成と機能追加) は、fx-5800P を始めて使うプログラミング未経験者を想定したものです。Chapter 8 へ繋がります。 ⇒ Chapter 7 へ
※2 新世代 Casio Basic への導入
Chapter 8 は、カシオのプログラム電卓で古くから使われてきた命令から、新世代 Casio Basic への導入を目的にしています。古いプログラム電卓を使いこなしているが、新しい Casio Basic にはなじみの無い方向けです。 ⇒ Chapter 8 へ
※3 PCなどでの高級言語プログラミングの経験者には...
管理人自身がこのカテゴリーに入ります。高級言語でのプログラミング経験者は、当ブログで公開している Hit & Blow ( ここ や ここ や ここ )、もぐら叩き (ここ) を見て、実際に fx-5800P で実行して頂ければ、Casio Basic の能力が分かると思います。さらに、改造や改善してみると Casio Basic がさらに分かると思います。
記事中で、Casio Basic コマンドリファレンスの個別項目へのリンクも入れています。このコマンドリファレンスは、管理人オリジナルのもので、取扱説明書に書かれていない多くの情報を提供しています。
▍新世代 Casio Basicについて
2006年発売の fx-5800P に搭載されたプログラミング言語は、カシオ自身が Basic-Like プログラミング言語と言っています。機能やコマンドが限定されているので、厳密にはその通りです。しかし実際に使ってみると、使えるコマンドに着目すれば、実用的な電卓プログラムが作れることに気がつきました。Goto は限定的に使い、例えば例外処理やエラー処理のために Goto で処理を一カ所に集中させるのは、プログラムが分かりやすくなるので良いものとして考え、それ以外は極力 Goto なしでプログラムを書くというコンセプトを本ブログでは採用し、そのプログラム例を多数紹介しています。
ここでは、カシオ製 プログラム関数電卓とグラフ関数電卓をひとくくりにして、プログラム電卓と呼ぶことにします。国内では2006年に発売された fx-5800P 以降のプログラム電卓に搭載されている Casio Basic は、ブロック構造でフローを制御したプログラミングが可能である点で、それ以前のものとは大きく異なります。
そこで、fx-5800P 以降の機種に搭載されている新しい Casio Basic を 当ブログでは、新世代 Casio Basic と呼んでいます。これらに共有しているのは、Goto なしでのコードが書け、テンキーだけでなく全てのキー([AC]キー除く)押下の検出が可能な Getkey コマンド、そして柔軟な Locate コマンドを搭載し、条件判定を 0で偽、0以外を真 (論理演算は 1 で真) となることです。これは一般的な高級言語と共通しています。Casio Basic は、構造化プログラミング言語ではないこと、しかし大域変数のみが使えること、ユーザー関数が使えないといった特殊性は受け入れるとしても、Goto をあまり使わずにブロック構造でフローを構成するコードが書けます。なお、プログラム関数電卓として販売されている fx-71F や fx-72F に搭載されている言語は機能が低く、ここでいう新世代 Casio Basic とは全く別物です。
<新世代Casio Basic搭載機>
- fx-5800P
- fx-9860G (OS ver 2.以降推奨)
- fx-9860GII (OS ver 2 以降推奨)
- fx-CG10
- fx-CG20
- fx-FD10 Pro
- fx-CG50
※ OS は最新バージョンへアップグレードできます
※ 初級・中級の表記について
初級 - Casio Basic の命令/コマンドの使い方を覚えるレベル
中級 - プログラムの構造やロジック、変数の使い方を工夫するレベル
中級者で十分使いこなせるので、上級と言う表記はありません
※ Casio Basic でのグラフィックス プログラミングを取り上げています。先ずは グラフィックスコマンドを徹底的に調べている段階なので、別系統で連載します。これまでの「Casio Basicを使ってみる」の連載は、継続予定です。
⇒ Casio Basicでグラフィックス
⇒ Casio Basic入門1
2. プログラミングとは
⇒ Casio Basic入門1
3. fx-5800P CasioBasicのコマンド一覧
⇒ Casio Basic入門2
4. CasioBasicを使ってみる [fx-5800P 向け] (fx-9860GII、fx-CG20、fx-CG50にも移植可)
Chapter 0
プログラム作成・実行の操作ポイント
- プログラム新規作成
- プログラム編集
- プログラム実行
- →命令 (代入命令)
- ?命令 (入力命令)
- ◢命令 (出力命令)
⇒ Casio Basic入門2
Chapter 1 - 初級
Getkey と Locate コマンドを使いこなす
キーコード取得プログラム - GET KEYCODE を作る
- Locate
- Getkey
- Doループ
- Whileループ
- Isz命令 (インクリメント・ジャンプ命令)
- " " 出力命令
- EngOn / EngOff
- If 文
- ⇒命令 (条件ジャンプ命令)
⇒ Casio Basic入門3
- Chapter 1-1: Getkey、Locate
- Chapter 1-2: Goto / Lbl ループ、EngモードとLocate
⇒ Casio Basic入門4
- Chapter 1-3: 繰り返し処理 Doループ
⇒ Casio Basic入門5
- Chapter 1-4: Locateコマンドと出力命令" "の違い
- Chapter 1-5: 思い込みの罠 - Locateの表示桁数
- Chapter 1-6: プログラム完成
- Chapter 1-7: 思い込みの罠(補足) - 1桁のキーコード
⇒ Casio Basic入門6
- Chapter 1-8: DoループとWhileループ再び
⇒ Casio Basic入門7
- Chapter 1-9: Locateコマンドで陥るバグ
- Chapter 1-10: 利用価値の高い⇒命令(条件ジャンプ)を使ってみる
⇒ Casio Basic入門8
- Chapter 1-11: ダイナミックな表示機能の実装
- Chapter 1-12: プログラムのバックアップ
Chapter 2 - 初級
動きのあるプログラムを作る
反射ゲーム - REACT を作る
- Lbl / Goto ループ
- Dsz命令 (ディクリメント・ジャンプ命令)
- Int( ) / Frac( ) 関数
- Break コマンド
- 例外処理 / 例外フラグ
- 複数条件分岐 - Else If
- ブロック構造 (構造化プログラミングの勧め)
- アルファベット小文字の表示
- For~To~Next
- Progコマンド(サブルーチン)
⇒ Casio Basic入門9
- Chapter 2-0: Lbl / Gotoループを使う
- Chapter 2-1: 回る羽根を作る
⇒ Casio Basic入門10
- Chapter 2-2: ランダム関数を使う
- Chapter 2-3: 再びGetkeyとDoループでカウンタ計測
- Chapter 2-4: 例外処理・例外フラグ・Breakコマンド
⇒ Casio Basic入門11
- Chapter 2-5: プログラム制御
- Chapter 2-6: 複数条件分岐の記法
⇒ Casio Basic入門12
- Chapter 2-7: ゲーム終了条件の実装
⇒ Casio Basic入門13
- Chapter 2-8: ゲーム進行に変化を付ける
- Chapter 2-9: ゲームの仕上げ - 構造化プログラミング
⇒ Casip Basic入門14
- Chapter 2-10: For文とProgコマンドを使ってみる
Chapter 3 - 中級
自由自在に入力する
入力ボックス - INPI を作る
- 配列変数
- 論理演算コマンド
- For~To~Next
- Progコマンド(サブルーチン)
- サブルーチンの使い方
- アルファベット小文字の表示
- デバッグ方法
- ド・モルガンの法則
- 変数の使い方 - 予約変数と使捨て変数
- 変数の適用範囲
⇒ Casio Basic入門15
- Chapter 3-0: 動作確認用メインルーチンを作る
⇒ Casio Basic入門16
- Chapter 3-0(続き): 「入力ボックス」を作る - 論理演算をする
⇒ Casio Basic入門17
- Chapter 3-1: 「入力ボックス」プログラムの改造
⇒ Casio Basic入門18
- Chapter 3-2: 入力ボックス - 末尾文字の削除機能を追加する
デバッグ方法、ド・モルガンの法則、変数の適用範囲を理解する
Chapter 4 - 中級
換算プログラムを作る
和暦・西暦変換プログラム - YEAR CONV を作る
- Progコマンド (サブルーチン)
- サブルーチンの使い方
- 変数の使い方 - 予約変数と使い捨て変数
⇒ Casio Basic入門19
- Chapter 4-0: 和暦・西暦換算プログラム - 完成状態の紹介
- Chapter 4-1: 最初にプログラム構造を考える
- Chapter 4-2: 和暦・西暦換算プログラムを実装する
⇒ Casio Basic入門20
- Chapter 4-3: オマケ機能の追加 - 数の桁数の求め方
⇒ Casio Basic入門21
- Chapter 4-4: キー長押しによるメニュー選択
⇒ Casio Basic入門22
- Chapter 4-5: キー長押しの処理を作る
- Chapter 4-6: サブルーチンを使いこなす
Chapter 5 - 中級
サブルーチンを使いこなす
世界時間換算プログラム - TIME ZONE を作る
- 入力ボックスを使う
- サブルーチンを活用した効率的な機能追加
- 変数の使い方 - 予約変数と使捨て変数
- キー長押しの活用
- 矢印キーによる循環項目選択
⇒ Casio Basic入門23
- Chapter 5-0: プログラムの仕様
- Chapter 5-1: TIME ZONE プッログラムの完成形
⇒ Casio Basic入門24
- Chapter 5-2 Getkey、入力ボックス、Locate の活用
⇒ Casio Basic入門25
- Chapter 5-3: 同様の機能を追加する
⇒ Casio basic入門26
- Chapter 5-4: 少し異なるルーチンを、分かりやすく追加する
⇒ Casio Basic入門27
- Chapter 5-5: 少し異なるルーチンを、分かりやすく追加する(2)
⇒ Casio Basic入門28
- Chapter 5-6: キー長押しによる機能呼び出し
⇒ Casio Basic入門29
- Chapter 5-7: 矢印キーの活用
⇒ Casio Basic入門30
- Chapter 5-8: 類似処理による機能追加
⇒ Casio Basic入門31
- Chapter 5-9 キー長押しによる別機能の呼び出し
Chapter 6 - 中級
プログラムを速くする
入力ボックスの高速化と拡張 - 入力ボックス 2.0 を作る
- 処理速度の遅いコマンド/命令を見極める
- プログラムロジックの見直し
⇒ Casio Basic入門32
- Chapter 6-0: コマンドや命令の処理速度を比較する
- Chapter 6-1: 具体的に対処する遅い処理を見つける
⇒ Casio Basic入門33
- Chapter 6-2: ロジックの見直しでプログラムを高速化する
⇒ Casio Basic入門34
- Chapter 6-3: 処理速度を意識して機能拡張する
⇒ Casio Basic入門35
- Chapter 6-4: 処理速度を意識して機能拡張する
⇒ Casio Basic入門36
- Chapter 6-5: キーリピートを抑制する
⇒ Casio Basic入門37
- Chapter 6-6: fx-5800P から fx-9860GII へ移植する
Chapter 7 - 超初級
ゼロからのプログラム作成と機能追加
温度換算プログラム- TEMP CONV を作る
- 初めての fx-5800P プログラミング
- プログラム作成の手順
- プログラムの実行方法
- ?(入力)命令
⇒ Casio Basic入門38
- Chapter 7-1: 最もシンプルなプログラム
⇒ Casio Basic入門39
- Chapter 7-2: 同様の機能を追加する
⇒ Casio Basic入門40
- Chapter 7-3: 選択肢3つの換算プログラムに拡張する
⇒ Casio Basic入門41
- Chapter 7-4: バグの原因と対処 - フラグの利用
⇒ Casio Basic入門42
- Chapter 7-5: プログラムの効率化
Chapter 8 - 初級
Basic 命令を使ってみる
温度換算プログラム - TEMP CONV を作る
- ?(入力)命令を Baisc コマンでに置き換える
・ Getkey と Do ループ の使い方
・ 入力ボックスの使い方
- ⇒(条件分岐)命令のメリット
- キー入力制御
・ Getkey と While ループの使い方
⇒ Casio Basic入門43
- Chapter 8-1: メニュー選択に Getkey を使う
⇒ Casio Basic入門44
- Chapter 8-2: 入力ボックスを使ってみる
⇒ Casio Basic入門45
- Chapter 8-3: 換算プログラムの入力ボックスを実装する
⇒ Casio Basic入門46
- Chapter 8-4: テンキー以外のキー入力を利用する
⇒ Casio Basic入門47
- Chapter 8-5: [EXIT] キーで正常終了させる
⇒ Casio Basic入門48
- Chapter 8-6: グラフ関数電卓用入力ボックスを準備する
⇒ Casio Basic入門49
- Chapter 8-7: グラフ関数電卓へプログラムを移植する
⇒ Casio Basic入門50
- Chapter 8-8: グラフ関数電卓用に表示を最適化する
Chapter 9 - 初級
簡単な換算プログラム - 入力ボックスの活用
福利計算プログラム - CompInt を作る
- Getkey と Do ループ の使い方
- 入力ボックスの使い方
- 数値の3桁区切り表示をサブルーチンで実装
- 3桁区切りのロジックを改善(高速化)
⇒ Casio Basic入門51
- Chapter 9-1: fx-5800P で複利計算プログラムを作る
⇒ Casio Basic入門52
- Chapter 9-2: fx-5800P で3桁区切り表示をする
⇒ Casio Basic入門53
- Chapter 9-3: fx-5800P での3桁区切り表示を高速化する
⇒ Casio Basic入門54
- Chapter 9-4: fx-5800P での3桁区切り表示を改良する
Chapter 10 - 中級
3桁区切り出力 - 汎用サブルーチンの作成と活用
3桁区切り出力・汎用サブルーチン - 3DS を作る
- 数値の3桁区切り出力を汎用サブルーチン化
- 旧来の出力命令 " " 、出力命令 ◢ の癖
- 大域変数の使いこなし
⇒ Casio Basic入門55
- Chapter 10-1: 高速3桁区切り出力サブルーチンの特長
⇒ Casio Basic入門56
- Chapter 10-2: 高速3桁区切り出力サブルーチンの評価と改善
⇒ Casio Basic入門57
- Chapter 10-3: 3桁区切りサブルーチン fx-5800P版 右寄せ出力機能の追加
⇒ Casio Basic入門58
- Chapter 10-4: 3桁区切りサブルーチン fx-5800P版の使いこなし
⇒ Casio Basic入門59
- Chapter 10-5: 3桁区切りサブルーチン グラフ関数電卓版
5. Casio Basicでグラフィックス [fx-9860GII / fx-CGシリーズ向け]
Casio Basicでグラフィックス
グラフィックスコマンドの仕様や特徴
⇒ Casio Basic入門G01
- Chapter G01: LCDと3つの座標系
⇒ Casio Basic入門G02
- Chapter G02: グラフィックス画面の設定と描画
⇒ Casio Basic入門G03
- Chapter G03: ClrGraph と ViewWindow
⇒ Casio Basic入門G04
- Chapter G04: Plot コマンド
⇒ Casio Basic入門G05
- Chapter G05: Plot と ViwWindow
⇒ Casio Basic入門G06
- Chapter G06: F-Line と 線のスタイル設定
⇒ Casio Basic入門G07
- Chapter G07: 点線と ViewWindow
⇒ Casio Basic入門G08
- Chapter G08: ViewWindow (直交座標系) の有効活用 / RclPict と RclCapt の違い
⇒ Casio Basic入門G09
- Chapter G09: ViewWindow と設定変数
⇒ Casio Basic入門G10
- Chapter G10: Circle コマンド
⇒ Casio Basic入門G11
- Chapter G11: PxlOn コマンド
⇒ Casio Basic入門G12
- Chapter G12: PxlOff コマンド
⇒ Casio Basic入門G13
- Chapter G13: PxlChg コマンド
⇒ Casio Basic入門G14
- Chapter G14: PxlTest() コマンド
⇒ Casio Basic入門G15
- Chapter G15:
応援クリックをお願いします。励みになるので...