Casio Pyhton - 目次

Casioグラフ関数電卓の Python を使ってみる
- 目 次
初版:2020/06/13
更新:2021/03/23
更新:2021/03/23
目 次
⇒ リファレンス
連載記事
Python を基礎から勉強するためではなく、高級言語や Casio Basic でのプログラミング経験がある人 (管理人もその部類) がとりあえずスクリプトを書いて (C# や java の経験があるととりあえず書けてしまうのが Python の良いところです)、正しく動くものを作ってみる目的で記事を書いています。これは理解のためのポイントだと管理人が思う項目は、逐次解説を入れています。
カシオ電卓のPythonモード(Casio Python) はPCなどで使える普通の Python とは異なり、ベースとなる micro Python やカシオ独自の仕様が反映されているので、実際にスクリプトを書いて動作させながら、仕様を調べるのが、本連載のもう一つの目的です。
Python を基本から学びたい方は、ネットに良いものがありますので (例えば Python入門 など)、そちらで学習されることをお勧めします。
0. Casio Python のポテンシャル
1. はじめに: 電卓で作る初めてのスクリプト
1.1 Casio Python での初めてのスクリプト
1.1.1 fx-CG50 の準備
1.1.2 Casio Python の起動
1.1.3 スクリプトファイルの作成
1.1.4 スクリプトの作成
1.1.5 スクリプトの実行
1.2 シェル画面
1.3 スクリプト作成と編集の2つの方法
2. Casio Python とは?:MicroPython と CPython
2.1 Casio Python の素性
2.1.1 MicroPython 1.9.4
2.1.2 CPython 3.5.4
2.2 Casio Python に組み込まれているオプジェクト名の一覧
2.3 Casio Python の学習方法
3. Casio Python の入出力:プログラムのデザイン
3.1 入力 - input()
3.2 出力 - print() とグラフィックス出力関数
3.3 Casio Pyhton で作るプログラム
4. Casio Python への移植:モンテカルロ法(1)
4.1 コメントの書き方
4.2 モジュールの呼び出し - import
4.3 メニュー機能の作成
4.4 circle() 関数の作成
4.5 グラフィックス出力
4.5.1 自作関数 circle() で円を描画
4.5.2 draw_string() 関数で文字列を出力
4.5.3 while 文により繰り返し
4.5.4 random() 関数により正方形内の座標(x, y)を取得
4.5.5 set_pixel() 関数で (x, y) に点を描画
4.5.6 点の座標から円周率を計算
4.5.7 draw_string() 関数で回数と円周率を表示
4.5.8 draw_string() 関数でシミュレーション終了の表示
5. 関数の作成と活用:grp_color() 関数の作成
5.1 関数の引数について
5.2 関数内の変数の有効範囲 - 変数のスコープ
5.3 circle() 関数の拡張
5.4 色指定関数を追加
5.4.1 RGBによる色指定
5.4.2 タプル型
5.4.3 色指定方法の拡張
5.4.4 グラフィック画面での色指定関数 grp_color() 関数の作成
5.5 circle() 関数拡張の書き換え
5.6 モンテカルロ法(2) - monteca2.py
6. グラフィックス出力関数の追加:line() とユーザーモジュールの作成
6.1 line() 関数の作成
6.2 グラフィックスユーザーモジュールの作成
6.3 line() 関数の動作確認 - ckLine.py
6.4 line() 関数の動作確認 - ckLine2.py
7. テキスト出力関数の追加:locate() をユーザーモジュールに追加
7.1 locate() 関数の作成
7.1.1 フォントピッチ dx, dy の設定
7.1.2 column から x を、row から y を算出
7.1.3 フォントサイズ指定の処理
7.1.4 locate() の完成
7.2 locate() をユーザーモジュールに追加
7.3 locate() の動作確認 - ckLocate.py
7.4 モンカルロ法(2) - monteca3.py
8. シェル画面入力の工夫:高速素因数分解(1)
8.1 高速素因数分解プログラム - FactorG のざっくりした分析
8.2 入力と入力値のチェック
8.3 変数の初期化
8.4 素数が素因数かどうかをチェック
8.5 "エラストテレスの篩い" で素因数の探索
8.6 ckpwr() 関数の作成
8.7 disp() 関数の作成
9. Python らしい反復処理:高速素因数分解(2)
9.1 frac() 関数をユーザーモジュール (u.py) に追加
9.2 不要な処理を削除
9.3 disp() 関数のスリム化
9.4 素数が素因数かどうかをチェックする部分のスリム化
9.5 素因数を探索する残りの部分のスリム化
9.6 スリム化したスクリプト - FactorG2.py
10. 大きな数の計算:高速素因数分解(3)
10.1 変更箇所の洗い出し
10.2 増加する素因数に合わせて表示桁数を拡張する - disp() の変更
10.3 入力桁数の制限を拡張し、それに合わせてエラー表示を変更する
10.4 素因数探索回数の表示を追加する
10.5 素因数が10桁を超えるときの表示の変更 - disp() の変更
11. 関数呼出オーバーヘッド:高速素因数分解(4)
11.1 関数呼出あり (ver 3) となし (ver 4) の実行速度の違い
11.2 Casio Python の関数呼出オーバーヘッド
12. 要素数の多いリスト:高速素因数分解(5)
12.1 増分リストを拡張する
12.2 要素数480個の探索数増分リスト
12.3 探索数を拡大して15桁対応高速素因数分解のスクリプト
12.4 探索数拡大による高速化
12.5 増分リストをさらに拡張する
13. 10進数除算の出力と精度:高速素因数分解(7)
13.1 Casio Python での除算結果のデータ型
13.2 Casio Python での関数計算結果のデータ型
13.3 Casio Python での除算計算の精度
13.4 0 および負の整数入力の処理
13.5 入力ルーチンの修正
13.5.1 入力委が小数点以下 0 の小数の場合に処理を追加
13.5.2 入力値が負の数値の場合の処理
13.5.3 入力が 0 の時の処理
13.6 完成した FactorG7.py の動作確認
14. CGモデルとFXモデルのPythonモードの違い
14.1 CGモデルからFXモデルへのスクリプトの移植
14.1.1 CGモデルからFXモデルへのスクリプト移植のポイント
14.1.2 CGモデルとFXモデルの判定方法
14.2 FXモデルのPythonモードの制限 - バッファサイズ
14.2.1 編集できるスクリプトファイルの行数制限
14.2.2 print() 出力のスタック・バッファサイズ
14.2.3 Shell 画面出力のスタック・バッファサイズ
14.3 Casio Python自体の機能の違い
14.3.1 CGモデル OS3.40 と OS3.50 の違い
14.3.2 CGモデル OS3.50 と FXモデル OS3.40 の違い
15. RGB値による色設定
15.1 RGB値の色を確認するプログラム
15.2 fx-CG50 の高精細カラー液晶 - 実は 16bit カラー
15.3 モノクロ液晶モデルでのRGB値による色設定
15.4 RGB値でのピクセル色設定と読取りの実験 - CGモデルとFXモデル
16. circle() 関数のFXモデルへの拡張
16.1 CGモデルとFXモデルの場合分け
16.2 circle() 関数を使ってみる
17. shell 画面とグラフィック画面の活用:コラッツ問題
17.1 コラッツ問題 (Collatz Problem) とは?
17.2 コラッツ数列の計算
17.3 出力の工夫ポイント
17.3.1 input() での入力
17.3.2 フォントサイズを変えて添え字の描画
17.3.3 リアルタイムに変わる数値の表示
17.3.4 グラフの描画
17.3.5 数列の最大値を求めて表示
17.3.6 shell 画面でのスクロール出力
17.4 コラッツ問題で遊んでみる
リファレンス
▋Casio Python - オプジェクト一覧 (← をクリック)
Casio Python に実装されているものを網羅しています。
▋e-Gadgetで作成したユーザーモジュール - オブジェクト一覧 (↓下記)
e-Gadget で作成したユーザーモジュールに含まれているもの
▶ 最新バージョン: ver 1.5 <ダウンロード>
▶ サポートモデル / OS:
・CGモデル - fx-CG50 / OS3.40以降
・FXモデル - fx-9750GIII / OS3.40以降
・FXモデル - fx-9860GIII / OS3.40以降
▶ ファイル名: u.py / ufx.py
・全サポートモデルに対応 - CGモデル/FXモデルの自動判定機能あり
・ufx.py は FXモデルで開くために、u.py から一部コメントを削除して150行以下にしたもの
▶ 実装オブジェクト
・isCG(): CGモデルかFXモデルかを判定
・grp_color(): グラフィック描画関数の様々な色設定をタプル型に変換
・circle(): グラフィックス画面に円を描画
・line(): グラフィック画面に線分を描画
・locate(): グラフィック画面にテキストを出力
・frac(): 浮動小数点型数値の小数部を取得
応援クリックをお願いします。励みになるので...
1.1.2 Casio Python の起動
1.1.3 スクリプトファイルの作成
1.1.4 スクリプトの作成
1.1.5 スクリプトの実行
1.2 シェル画面
1.3 スクリプト作成と編集の2つの方法
2. Casio Python とは?:MicroPython と CPython
2.1 Casio Python の素性
2.1.1 MicroPython 1.9.4
2.1.2 CPython 3.5.4
2.2 Casio Python に組み込まれているオプジェクト名の一覧
2.3 Casio Python の学習方法
3. Casio Python の入出力:プログラムのデザイン
3.1 入力 - input()
3.2 出力 - print() とグラフィックス出力関数
3.3 Casio Pyhton で作るプログラム
4. Casio Python への移植:モンテカルロ法(1)
4.1 コメントの書き方
4.2 モジュールの呼び出し - import
4.3 メニュー機能の作成
4.4 circle() 関数の作成
4.5 グラフィックス出力
4.5.1 自作関数 circle() で円を描画
4.5.2 draw_string() 関数で文字列を出力
4.5.3 while 文により繰り返し
4.5.4 random() 関数により正方形内の座標(x, y)を取得
4.5.5 set_pixel() 関数で (x, y) に点を描画
4.5.6 点の座標から円周率を計算
4.5.7 draw_string() 関数で回数と円周率を表示
4.5.8 draw_string() 関数でシミュレーション終了の表示
5. 関数の作成と活用:grp_color() 関数の作成
5.1 関数の引数について
5.2 関数内の変数の有効範囲 - 変数のスコープ
5.3 circle() 関数の拡張
5.4 色指定関数を追加
5.4.1 RGBによる色指定
5.4.2 タプル型
5.4.3 色指定方法の拡張
5.4.4 グラフィック画面での色指定関数 grp_color() 関数の作成
5.5 circle() 関数拡張の書き換え
5.6 モンテカルロ法(2) - monteca2.py
6. グラフィックス出力関数の追加:line() とユーザーモジュールの作成
6.1 line() 関数の作成
6.2 グラフィックスユーザーモジュールの作成
6.3 line() 関数の動作確認 - ckLine.py
6.4 line() 関数の動作確認 - ckLine2.py
7. テキスト出力関数の追加:locate() をユーザーモジュールに追加
7.1 locate() 関数の作成
7.1.1 フォントピッチ dx, dy の設定
7.1.2 column から x を、row から y を算出
7.1.3 フォントサイズ指定の処理
7.1.4 locate() の完成
7.2 locate() をユーザーモジュールに追加
7.3 locate() の動作確認 - ckLocate.py
7.4 モンカルロ法(2) - monteca3.py
8. シェル画面入力の工夫:高速素因数分解(1)
8.1 高速素因数分解プログラム - FactorG のざっくりした分析
8.2 入力と入力値のチェック
8.3 変数の初期化
8.4 素数が素因数かどうかをチェック
8.5 "エラストテレスの篩い" で素因数の探索
8.6 ckpwr() 関数の作成
8.7 disp() 関数の作成
9. Python らしい反復処理:高速素因数分解(2)
9.1 frac() 関数をユーザーモジュール (u.py) に追加
9.2 不要な処理を削除
9.3 disp() 関数のスリム化
9.4 素数が素因数かどうかをチェックする部分のスリム化
9.5 素因数を探索する残りの部分のスリム化
9.6 スリム化したスクリプト - FactorG2.py
10. 大きな数の計算:高速素因数分解(3)
10.1 変更箇所の洗い出し
10.2 増加する素因数に合わせて表示桁数を拡張する - disp() の変更
10.3 入力桁数の制限を拡張し、それに合わせてエラー表示を変更する
10.4 素因数探索回数の表示を追加する
10.5 素因数が10桁を超えるときの表示の変更 - disp() の変更
11. 関数呼出オーバーヘッド:高速素因数分解(4)
11.1 関数呼出あり (ver 3) となし (ver 4) の実行速度の違い
11.2 Casio Python の関数呼出オーバーヘッド
12. 要素数の多いリスト:高速素因数分解(5)
12.1 増分リストを拡張する
12.2 要素数480個の探索数増分リスト
12.3 探索数を拡大して15桁対応高速素因数分解のスクリプト
12.4 探索数拡大による高速化
12.5 増分リストをさらに拡張する
13. 10進数除算の出力と精度:高速素因数分解(7)
13.1 Casio Python での除算結果のデータ型
13.2 Casio Python での関数計算結果のデータ型
13.3 Casio Python での除算計算の精度
13.4 0 および負の整数入力の処理
13.5 入力ルーチンの修正
13.5.1 入力委が小数点以下 0 の小数の場合に処理を追加
13.5.2 入力値が負の数値の場合の処理
13.5.3 入力が 0 の時の処理
13.6 完成した FactorG7.py の動作確認
14. CGモデルとFXモデルのPythonモードの違い
14.1 CGモデルからFXモデルへのスクリプトの移植
14.1.1 CGモデルからFXモデルへのスクリプト移植のポイント
14.1.2 CGモデルとFXモデルの判定方法
14.2 FXモデルのPythonモードの制限 - バッファサイズ
14.2.1 編集できるスクリプトファイルの行数制限
14.2.2 print() 出力のスタック・バッファサイズ
14.2.3 Shell 画面出力のスタック・バッファサイズ
14.3 Casio Python自体の機能の違い
14.3.1 CGモデル OS3.40 と OS3.50 の違い
14.3.2 CGモデル OS3.50 と FXモデル OS3.40 の違い
15. RGB値による色設定
15.1 RGB値の色を確認するプログラム
15.2 fx-CG50 の高精細カラー液晶 - 実は 16bit カラー
15.3 モノクロ液晶モデルでのRGB値による色設定
15.4 RGB値でのピクセル色設定と読取りの実験 - CGモデルとFXモデル
16. circle() 関数のFXモデルへの拡張
16.1 CGモデルとFXモデルの場合分け
16.2 circle() 関数を使ってみる
17. shell 画面とグラフィック画面の活用:コラッツ問題
17.1 コラッツ問題 (Collatz Problem) とは?
17.2 コラッツ数列の計算
17.3 出力の工夫ポイント
17.3.1 input() での入力
17.3.2 フォントサイズを変えて添え字の描画
17.3.3 リアルタイムに変わる数値の表示
17.3.4 グラフの描画
17.3.5 数列の最大値を求めて表示
17.3.6 shell 画面でのスクロール出力
17.4 コラッツ問題で遊んでみる
リファレンス
▋Casio Python - オプジェクト一覧 (← をクリック)
Casio Python に実装されているものを網羅しています。
- オブジェクト一覧には、個別に作成したリファレンスへのリンクがあります。
- 個別のリファレンスには、Python 公式サイトでの解説へのリンクを掲載しています。
- 個別のリファレンスには、Casio Python 独自の項目を優先して記述します。
- 一旦作成したものは、随時追記。修正します。
▋e-Gadgetで作成したユーザーモジュール - オブジェクト一覧 (↓下記)
e-Gadget で作成したユーザーモジュールに含まれているもの
▶ 最新バージョン: ver 1.5 <ダウンロード>
▶ サポートモデル / OS:
・CGモデル - fx-CG50 / OS3.40以降
・FXモデル - fx-9750GIII / OS3.40以降
・FXモデル - fx-9860GIII / OS3.40以降
▶ ファイル名: u.py / ufx.py
・全サポートモデルに対応 - CGモデル/FXモデルの自動判定機能あり
・ufx.py は FXモデルで開くために、u.py から一部コメントを削除して150行以下にしたもの
▶ 実装オブジェクト
・isCG(): CGモデルかFXモデルかを判定
・grp_color(): グラフィック描画関数の様々な色設定をタプル型に変換
・circle(): グラフィックス画面に円を描画
・line(): グラフィック画面に線分を描画
・locate(): グラフィック画面にテキストを出力
・frac(): 浮動小数点型数値の小数部を取得
応援クリックをお願いします。励みになるので...
- 関連記事
-
-
Casio Python のポテンシャル 2021/03/25
-
Casio Pyhton - 目次 2021/03/23
-
Casio Python - Shell 画面とグラフィック画面の活用:コラッツ問題 2020/12/12
-
Casio Python - ユーザー関数 locate() 2020/12/09
-
Casio Python - 要素数の多いリスト:高速素因数分解(5) 2020/11/14
-