Casio Pyhton - 目次

Python Casio Python
 Casioグラフ関数電卓の Python を使ってみる
     
- 目 次


初版:2020/06/13
更新:2022/02/21


コードを書いて実際に動かしてみる、さらにコードを書いて動かしてみる、これの繰り返しで実際に手を動かして学習をすすめるのがプログラミング学習の近道です。当ブログでは、2つの Casio Python 入門コースを用意します。

なおカシオのグラフ関数電卓の Python モード (Casio Python) は、MicroPython Ver 1.94 のライセンス下で実装されています。そこで MicroPython 自体の仕様やカシオが実装時の導入した独自仕様が、パソコンで動作する Python (uPython) と異なっている部分を調べて、読者と共有することも連載の目的です。


 目 次

ある程度プログラミングの経験がある人向けの連載と、過去のプログラミング経験が殆ど無い人向けの2つの連載を進めます。
これらの連載では、以下のモデルとOSバージョンを前提にします。
Casio fx-CG50 OS3.40 以降 (日本国内サポートあり)  ⇒ fx-CG50 の概要
Casio fx-9750GIII OS3.40 以降 (日本国内では非売品)  ⇒ fx-9750GIII の概要
Casio fx-9860GIII OS3.40 以降 (日本国内では非売品)  ⇒ fx-9860GIII の概要

< 1 > プログラミング経験者のための Casio Python (←クリック)
Python を基礎から勉強するのではなく、パソコンで使う高級言語や Casio Basic でのプログラミング経験がある人 (管理人もその部類) がとりあえず Casio Python でコードを書いて、納得しながら進める連載。
その実態は、管理人の学習プロセスに沿って色々なプログラムを作ってゆく過程を紹介するもの。

< 2 > Casio Python 入門 (←クリック)
プログラミングをあまり知らない人が Python を基礎から学びながら Casio Python を使えるようになるための連載。基礎と重要なポイントを1歩づつ抑えながら、サンプルスクリプトを書いてから動作確認を行うようにして進めます。

< 3 > Casio Python のリファレンス (←クリック)
連載記事とサンプルスクリプトを作成しながら判ったことをまとめたものです。Casio Python 特有の仕様も含んでいます。Casio Python のオブジェクト一覧、ステートメント、メソッド(関数)、特有な動作環境、そして e-Gadget オリジナルのユーザーモジュールも紹介します。

< 4 > コラム
Casio Python についてのトピックスの紹介。

< 5 >
Python の無料入門書
Python そのものを無料で基本から学べる入門書を紹介




プログラミング経験者のための Casio Python 

0. Casio Python のポテンシャル
Casio Python のグラフィックス描画は Casio Basic より100倍以上速い


1.
はじめに: 電卓で作る初めてのスクリプト
Pythonモード (Casio Python) でのスクリプト作成/編集の概要
  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つの方法
    Note: Python スクリプトファイルの正体
    Note: VIsual Studio Code について


2. Casio Python とは?:MicroPython と CPython
Casio Python は、CPython のサブセット版である microPython をカスタマイズしたもの
  2.1 Casio Python の素性
   2.1.1 MicroPython 1.9.4
    Note: Casio Python へのライセンス
   2.1.2 CPython 3.5.4
  2.2 Casio Python に組み込まれているオプジェクト名の一覧
    Note: CGモデルとFXモデルでの出力の違い
  2.3 Casio Python の学習方法


3. Casio Python の入出力:プログラムのデザイン
Casio Python (OS3.4/3.5) は入出力機能がとても限定的である
  3.1 入力 - input()
    Note: Casio Python の制限
  3.2 出力 - print() とグラフィックス出力関数
    Note: シェル画面とグラフィックス画面の切替
  3.3 Casio Pyhton で作るプログラム


4. Casio Python への移植:モンテカルロ法 (1)
Casio Python でスクリプトを書くための最低限の知識を紹介
    Note: モンテカルロ法による円周率の計算方法
  4.1 コメントの書き方
    Python公式: Comments
    Note: PEP 8
    Python公式: Docummentation Strings (Docstrings)
  4.2 モジュールの呼び出し - import
  4.3 メニュー機能の作成
    Reference: ⇒ input( )
    Note: Pythonでの文字列 - ' ' と " "
    Note: int( )
    Note: if 文
    Note: Python のデータ型
    Note: str( )
  4.4 circle() 関数の作成
    Note: continue
    Reference: ⇒ range( )
  4.5 グラフィックス出力
    Note: Casio Python 組み込み関数を調べる
   4.5.1 自作関数 circle() で円を描画
    Note: 文の句切り文字 - ;
   4.5.2 draw_string() 関数で文字列を出力
    Note: while 文
   4.5.3 while 文により繰り返し
   4.5.4 random() 関数により正方形内の座標(x, y)を取得
   4.5.5 set_pixel() 関数で (x, y) に点を描画
   4.5.6 点の座標から円周率を計算
    Note: モンテカルロ法による円周率の計算方法 (再掲)
    Note: 累乗演算子 - **
    Note: 累算代入演算 (+=, -=, *=, /=, %=)
    Note: 四捨五入 - round( )
   4.5.7 draw_string() 関数で回数と円周率を表示
   4.5.8 draw_string() 関数でシミュレーション終了の表示


5. 関数の作成と活用:grp_color() 関数の作成
Casio Python での関数の作り方と使い方の基本を紹介
  5.1 関数の引数について
  5.2 関数内の変数の有効範囲 - 変数のスコープ
  5.3 circle() 関数の拡張
  5.4 色指定関数を追加
   5.4.1 RGBによる色指定
   5.4.2 タプル型
   5.4.3 色指定方法の拡張
   5.4.4 グラフィック画面での色指定関数 grp_color() 関数の作成
    Note: type( )
    Note: リストの定義
    Note: タプルの定義
    Note: Python の比較演算子
    Note: 帰属検査の in
  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
    Note: 除算の余りを求める - %


7. テキスト出力関数の追加:locate() をユーザーモジュールに追加
Casio Python では必須の 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)
Casio Basic から Casio Python へ強引に移植する例
  8.1 高速素因数分解プログラム - FactorG のざっくりした分析
  8.2 入力と入力値のチェック
    エラーを検知し制御を取り戻す - Try / except
  8.3 変数の初期化
  8.4 素数が素因数かどうかをチェック
    Note: Python の単文と複文
  8.5 "エラストテレスの篩い" で素因数の探索
  8.6 ckpwr() 関数の作成
  8.7 disp() 関数の作成 


9. Python らしい反復処理:高速素因数分解(2)
オプジェクト指向言語 Python ならではの for の使い方を紹介
  9.1 frac() 関数をユーザーモジュール (u.py) に追加
  9.2 不要な処理を削除
  9.3 disp() 関数のスリム化
    Note: range( ) の書式
  9.4 素数が素因数かどうかをチェックする部分のスリム化
  9.5 素因数を探索する残りの部分のスリム化
  9.6 スリム化したスクリプト - FactorG2.py
    Note: Casio Python スクリプトファイルのサイズ制限


10. 大きな数の計算:高速素因数分解(3)
Casio Python では15桁の精度が得られることを利用する事例を紹介
  10.1 変更箇所の洗い出し
  10.2 増加する素因数に合わせて表示桁数を拡張する - disp() の変更
  10.3 入力桁数の制限を拡張し、それに合わせてエラー表示を変更する
  10.4 素因数探索回数の表示を追加する
  10.5 素因数が10桁を超えるときの表示の変更 - disp() の変更


11. 関数呼出オーバーヘッド:高速素因数分解(4)
Casio Python は関数呼出が比較的速い - 関数を無くせばさらに高速化可能
  11.1 関数呼出あり (ver 3) となし (ver 4) の実行速度の違い
  11.2 Casio Python の関数呼出オーバーヘッド


12. 要素数の多いリスト:高速素因数分解(5)
Casio Python は巨大リストを処理するスクリプト実行時にスタックサイズエラーが発生する
⇒ CPythonではジェネレータで対処。本事例では処理速度優先のためジェネレータ使わず...
  12.1 増分リストを拡張する
  12.2 要素数480個の探索数増分リスト
  12.3 探索数を拡大して15桁対応高速素因数分解のスクリプト
  12.4 探索数拡大による高速化
  12.5 増分リストをさらに拡張する


13. 10進数除算の出力と精度:高速素因数分解(7)
Casio Python 内部演算精度15桁が原因で、割り切れる整数の除算が浮動小数点になることがある
  13.1 Casio Python での除算結果のデータ型
  13.2 Casio Python での関数計算結果のデータ型
  13.3 Casio Python での除算計算の精度
    Note: Windows版 Python のインストール
    Note: 浮動小数点演算 - その問題と制限 (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モードの違い
CGモデルとFXモデルの判定方法とその関数化を紹介
  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値による色設定
fx-CG50 のカラー液晶は16bitカラーであることを理解した上で、RGB値で色指定する方法を紹介
⇒ ピクセルの色指定と色読取りの実験を CGモデルとFXモデルで実施
  15.1 RGB値の色を確認するプログラム
  15.2 fx-CG50 の高精細カラー液晶 - 実は 16bit カラー
  15.3 モノクロ液晶モデルでのRGB値による色設定
  15.4 RGB値でのピクセル色設定と読取りの実験 - CGモデルとFXモデル


16. circle() 関数のFXモデルへの拡張
画面の画素数が異なる CGモデルと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 コラッツ問題で遊んでみる

18. Casio Pyhton - turtle / matplotl モジュール 
Casio Pyhton用 turtle / matplot モジュールの入手

[準備中]





Casio Python 入門

(以下予定)

00. はじめに

01. Casio Python に触れる(1)

02. Casio Python に触れる(2)

03. 変数・代入とオブジェクト

04. Python の基本

05. 条件分岐と繰り返し

06. 組込型とオブジェクト

07. ユーザ定義関数
  
08. クラスの基本







[準備中]





リファレンス

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 - Casio Education で e-Gadgetのモンテカルロ法が紹介







応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: fx-CG50Pythonfx-9750GIIIfx-9860GIIIプログラム関数電卓

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

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

Casio 電卓の自己診断機能

Casio 電卓の自己診断機能 - 目次 -


 
2022/02/15
追記更新 2022/02/19


1. プログラム関数電卓の自己診断機能

fx-5800P



2. グラフ関数電卓の自己診断機能

fx-9860G / fx-9860G Slim

fx-9860GII / fx-9860GII SD

fx-9860GIII / fx-9750GIII

fx-CG20

fx-CG50



3. スタンダート関数電卓のの自己診断機能

fx-290

fx-260 Solar II

fx-991MS

fx-991MS 2nd edition

fx-995ES / fx-993ES / fx-991ES

fx-991ES PLUS 2nd edition

fx-115ES PLUS 2nd edition

fx-375ES A

fx-JP900 / fx-JP700 / fx-JP500






応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、プログラミング、Casio Basic、CFX-9850GC PLUS

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


関連記事

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

fx-CG20 のイースタエッグ - 自己診断機能

  ▶ CASIO電卓の自己診断機能 - 目次


 2022/02/19

fx-CG20 のイースターエッグ/自己診断機能を紹介する。


fx-CG20 の診断モード


fx-CG20_L注意! 
自己診断機能の中には、データリセット (データ消去) するメニューを含んでいるので、万一に備えて自己診断機能を使う前に、必ずバックアップをしておくことを勧める。


診断モードに入るには、先ず電源OFFの状態で、[OPTN]+[EXP] を同時押しながら、[AC/ON] を長押しすると、

=DIAGNOSTIC MODE=
Factory Use Only!

 Press : [EXIT]


と表示されるので、 [F1] を押す。ここで [EXIT] を押すとリスタートする。
[F1] を押して自己診断モードに入ると以下のように表示される。

=DIAGNOSTIC MODE=
Factory Use Only!
Delete all data?
   Yes  :  [9]
   No   :  [EXIT]


ここで、[EXIT] を押すとリスタートする。[9] を押すと、自己診断メニューに入ります。

[LY755DZ MAIN]        111
 1.PATTERN   5.SERVICE
 2.FUNC     6.Send-Rec
 3.TEST      7.Rec-Send
 4.VERSION        0.RESET
 +.VER&SUM 
 
     QUIT  : [EXIT]

このメニューで、[EXIT] を押すとリスタートする。

ここで左上に表示される LYxxxxx は、機種とOSバージョンで異なる。


1.PATTERN を実行する。画面の指示に沿って操作すると、ROM VERSIONの表示、ROM TEST、RAM TEST、ディスプレイ テスト ([EXE] で次に進む)、1部のキーのチェック と進み、さらに外部機器を使う診断と思われるチェックが続く。最後に自己診断メニューに戻る。

2.FUNC を実行すると、ROM VERSIONの表示、ROM TEST、RAM TEST、ディスプレイ テスト ([EXE] で次に進む)、全キーのテストと進み、さらに外部機器接続が前提と思われるテストが続き、自己診断メニューに戻る。

3.TEST を実行すると、LCD、KEY、ROM、RAM、DETCT、TRANS、CURRENT、OTHERS の項目をチェックできる。

4.VRSION を実行すると、ROM VERSION を表示する。

5.SERVICE を実行するとサービスIDが表示される。

6.Send-Rec を実行すると、外部機器接続が前提と思われるテストが複数あり、自己診断メニューに戻る。

7.Rec-Send を実行すると、外部機器接続が前提と思われるテストが複数あり、自己診断メニューに戻る。

0.RESET を実行するとリスタートする。

+.VER&SUM を実行すると、ROM VERSION (OSバージョン) の表示、ROM テストを行える。







応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 

 
keywords: グラフ関数電卓、fx-9860GII、fx-9860GIi SD、イースタエッグ、診断機能

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

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

fx-9860GIII / fx-9750GIII のイースタエッグ - 自己診断機能

  ▶ CASIO電卓の自己診断機能 - 目次


 2022/02/19

fx-9860GIII / 9750GIII のイースターエッグ/自己診断機能を紹介する。


fx-9860G / 9860G Slim の診断モード


9750GIII_9860GIII
            fx-9750GIII                          fx-9860GIII

注意! 
自己診断機能の中には、データリセット (データ消去) するメニューを含んでいるので、万一に備えて自己診断機能を使う前に、必ずバックアップをしておくことを勧める。


診断モードに入るには、先ず電源OFFの状態で、[OPTN]+[EXP] を同時押しながら、[AC/ON] を長押しすると、

=DIAGNOSTIC MODE=
Factory Use Only!

 Press : [EXIT]


と表示されるので、 [F1] を押す。ここで [EXIT] を押すとリスタートする。
[F1] を押して自己診断モードに入ると以下のように表示される。

=DIAGNOSTIC MODE=
Factory Use Only!
Delete all data?
   Yes  :  [9]
   No   :  [EXIT]


ここで、[EXIT] を押すとリスタートする。[9] を押すと、自己診断メニューに入ります。

[GY383A MAIN]        110
 1.PATTERN   5.SERVICE
 2.FUNC     6.CONTRAST
 3.TEST      7.Send-Rec
 4.VERSION         8.Rec-Send
 +.VER&SUM   0.RESET
  -.CLEAR
     QUIT  : [EXIT]

このメニューで、[EXIT] を押すとリスタートする。

ここで左上に表示される GYxxx は、機種とOSバージョンで異なる。


1.PATTERN を実行する。画面の指示に沿って操作すると、最初にKEY TEST (1部のキーのチェック)、Ver/ROM/RAM TEST、ディスプレイ テスト ([EXE] で次に進む) と進み、さらに外部機器を使う診断と思われるチェックが続く。最後に自己診断メニューに戻る。

2.FUNC を実行すると、全キーのテスト、Ver/ROMRAM TEST、 ディスプレイ テスト ([EXE] で次に進む) と進み、さらに外部機器接続が前提と思われるテストが続き、自己診断メニューに戻る。

3.TEST を実行すると、LCD、KEY、ROM、RAM、DETCT、TRANS、CURRENT、OTHERS の項目をチェックできる。

4.VRSION を実行すると、ROM VERSION を表示する。

5.SERVICE を実行するとサービスIDが表示される。

6.CONTRAST を実行すると、液晶のコントラストを確認・変更できる。

7.Send-Rec を実行すると、外部機器接続が前提と思われるテストが複数あり、自己診断メニューに戻る。

8.Rec-Send を実行すると、外部機器接続が前提と思われるテストが複数あり、自己診断メニューに戻る。

0.RESET を実行するとリスタートする。

+.VER&SUM を実行すると、ROM VERSION (OSバージョン) の表示、ROM テストを行える。

-.CLEAR (要注意!!) を実行すると、メモリ・リセットが行われ、保存しているデータやプログラムが消去される。






応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 

 
keywords: グラフ関数電卓、fx-9860GII、fx-9860GIi SD、イースタエッグ、診断機能

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

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

プログラムライブラリ - 目次 -

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


カシオの fx-5800P を中心に、fx-9860GII (5800Pより大画面、モノクロ) や fx-CG20 / fx-CG50 (5800Pより大画面、カラー) 向けのプログラム集です。本ブログで掲載している種々のプログラムを、まだ全て収録してはいませんが、徐々に拡充してゆきます。

fx-FD10 Pro では、fx-9860GII 用純正Casio Basicプログラムは動作するはずですが、アドインが使えない仕様なのでC.Basicのインストールができず、従って C.Basic専用プログラムは動作しないと思われます。

※適用環境と機種を示す略号の説明
  • [5800P] :  fx-5800Pで動作可能
  • [FX]:fx-9860Gシリーズで動作可能
  • [CG]:fx-CGシリーズで動作可能
  • [Casio Basic]:純正Casio Basicで動作可能
  • [C.Basic]:C.Basicで動作可能
  • [Python]:Pythonモードで動作可能

Program Library in English



1. プログラミングツール

  ⇒ キーコード取得 [Casio Basic / C.Basic] [5800P / FX / CG]

  ⇒ RGB指定による色確認プログラム [C.Basic] [CG]

  
OS内蔵ファンクションメニュー番号探索 [C.Basic] [FX / CG]


2. 数学 / 理工

  ⇒ ピタゴラス数 

  ⇒ 高速素因数分解 [Casio Basic / C.Basic / Python] [5800P / FX / CG]

  ⇒ モンテカルロ法による円周率の計算

  ⇒ 圧力換算 [Casio Basic] [5800P]

  ⇒ 圧力換算 (fx-9860GII、fx-CG20 / CG50) [Casio Basic / C.Basic] [FX / CG]


3. 実用

  ⇒ 世界の時差換算 - Time Zone [Casio Basic] [5800P]

  ⇒ 世界の時差換算 - TimeZone [Casio Basic / C.Basic] [FX / CG]

  ⇒ 複利計算プログラム - CompInt [Casio Basic / C.Basic] [5800P / FX / CG]

  ⇒ 西暦-和暦 換算プログラム - YearConv 2.1 [Casio Basic / C.Basic] [5800P / FX / CG]

  ⇒ 日本語版 西暦-和暦 監査プログラム - YearConv 3.1 [C.Basic for CG] [CG]


4. ゲーム

  ⇒ もぐら叩き [Casio Basic] [5800P]

  ⇒ もぐら叩き [Casio Basic / C.Basic] [FX]

  ⇒ もぐら叩き [Casio Basic / C.Basic] [CG]

  ⇒ Hit & Blow 数当てゲーム [Casio Basic / C.Basic] [5800P / FX / CG]

  ⇒ マスターマインド Ver. 4 - モノクロ版 [Casio Basic / C.Basic] [FX]

  ⇒ マスターマインド Ver. 4 - カラー版 [Casio Basic / C.Basic] [CG]

  ⇒ ライフゲーム (Conway's Game of Life) [C.Basic] [FX \ CG]


5. 汎用サブルーチン

  ⇒ 入力ボックス 2.0 / 2.1 [Casio Basic] [5800P]

  ⇒ 入力ボックス 2.1G [Casio Basic / C.Basic] [FX / CG]

  ⇒ 3桁区切り出力 (汎用サブルーチン) [Casio Basic / C.Basic] [5800P / FX/ CG]





応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 




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

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

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

ライフゲーム (Conway's Game of Life)

プログラムライブラリ
<目次>

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

2022/02/19


ライフゲーム (Conway's Game of Life)
Casio 電卓で走る高速ライフゲーム・プログラム - モノクロ液晶モデル と カラー液晶モデルに対応



著作権者

やす (Krtyski) [当ブログ管理人]



対応言語と対応機種

  プログラミング言語   機 種
C.Basic       - fx-9860G / fx-9860G Slim / fx-9860GII / fx-9860GIII / fx-9750GIII
             - fx-CG10 / fx-CG20 / fx-CG50



プログラムのダウンロード

 ▍C.Basic 専用ライフゲーム・プログラム

  ▶ 通常版 Ver 2.45 - LIFE245

   高速版 Ver 2.45F - LIFE245F   



 ▍C.Basic

  モノクロ液晶モデル用とカラー液晶モデル用の2バージョンがあります。
   fx-9860G / fx-9860GII / fx-9860GIII / fx-9750GIII 用 C.Basic for FX
   fx-CG10 / fx-CG20 / fx-CG50 用 C.Basic fo CG

   C.Basic のダウンロード


 ▍チューンアップツール

  電卓の実行速度を向上させるツールです。モデルに応じて適切なバージョンをインストールする必要があります。
  確実に対応しているバージョンをインストールしてください (自己責任です)。

   チューンアップツールのダウンロード



プログラムの説明

  プログラムの説明

  ライフゲーム自体の説明

C.Basic は純正 Casio Basic の上位互換であり、拡張コマンドや独自の言語機能があります。

ビットマップを素早く更新するようなプログラムを純正Casio Basic で作ろうと考えるのは無謀なことです。しかし C.Basic を使えば、高速ビットマップ更新が可能で、現実的な描画速度でライフゲームを作れます。


fx-9750GIII での実行例 - 517世代までの実行時間: 59.4秒

  LIFE245 (Ver 2.45) を実行
  Ftune3 で 235.9MHz にチューンアップ
  C.Basic for FX Ver 2.45 build 20 以降のバージョンを推奨

=====

ライフゲーム のパターンを1世代更新する処理部分を、ネイティブコードの関数 "DotLife()" に置き換えて実行したのが以下の動画です。 


fx-9750GIII での実行例 - 517世代までの実行時間: 7.8秒

  LIFE245F (Ver 2.45F) を実行
  Ftune3 で 235.9MHz にチューンアップ
  C.Basic for FX Ver 2.45 build 20 以降のバージョンを推奨







応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: CasioBasic、プログラムライブラリプログラム関数電卓、3桁区切り出力、汎用サブルーチン

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


関連記事

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

fx-9860G / fx-9860G Slim のイースタエッグ - 自己診断機能

  ▶ CASIO電卓の自己診断機能 - 目次


 2022/02/19

fx-9860G / 9860G Slim のイースターエッグ/自己診断機能を紹介する。


fx-9860G / 9860G Slim の診断モード



fx-9860G_Calc fx9860Gslim_2.png    
注意! 
自己診断機能の中には、データリセット (データ消去) するメニューを含んでいるので、万一に備えて自己診断機能を使う前に、必ずバックアップをしておくことを勧める。








     fx-9869G              fx-9860G Slim


診断モードに入るには、先ず電源OFFの状態で、[OPTN]+[EXP] を同時押しながら、[AC/ON] を長押しすると、

=DIAGNOSTIC MODE=
Factory Use Only!

 Press : [EXIT]


と表示されるので、 [F1] を押す。ここで [EXIT] を押すとリスタートする。
[F1] を押して自己診断モードに入ると以下のように表示される。

=DIAGNOSTIC MODE=
Factory Use Only!
Delete all data?
   Yes  :  [9]
   No   :  [EXIT]


ここで、[EXIT] を押すとリスタートする。[9] を押すと、自己診断メニューに入ります。

[GY365 MAIN]    100100
 1.PATTERN   4.VERSION
 2.FUNC     5.SERVICE
 3.TEST      6.CONTRAST
 +.VER&SUM   0.RESET

     QUIT  : [EXIT]

このメニューで、[EXIT] を押すとリスタートする。

ここで左上に表示される GYxxx は、機種とOSバージョンで異なる。


1.PATTERN を実行する。画面の指示に沿って操作すると、最初にROM VERSION、ROM TEST、RAM TEST、ディスプレイ テスト ([EXE] で次に進む)、KEY TEST (1部のキーのチェック) と進み、さらに外部機器を使う診断と思われるチェックが続く。最後に自己診断メニューに戻る。

2.FUNC を実行すると、ROM VERSION、ROM TEST、RAM TEST、 ディスプレイ テスト ([EXE] で次に進む)、KEY TEST (全てのキーのチェック) と進み、さらに外部機器接続が前提と思われるテストが続き、自己診断メニューに戻る。

3.TEST を実行すると、LCD、KEY、ROM、RAM、DETCT、TRANS、CURRENT、OTHERS、FlashINIT の項目をチェックできる。
※ 注意FlashINIT を実行すると、ストレージメモリにあるアドインプログラムなどの全てのファイルが消去されるので要注意!!

4.VRSION を実行すると、ROM VERSION を表示する。

5.SERVICE を実行するとサービスIDが表示される。

6.CONTRAST を実行すると、液晶のコントラストを確認・変更できる。

0.RESET を実行するとリスタートする。

+.VER&SUM を実行すると、ROM VERSION (OSバージョン) の表示、ROM テストを行える。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 

 
keywords: グラフ関数電卓、fx-9860GII、fx-9860GIi SD、イースタエッグ、診断機能

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

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

電卓すす払い 2022

2022年2月14日

1年から2年ごとに、持っている電卓を一斉にメンテナンスするようにしていて、今回は、私のメンテナンス方法を紹介します。

2014年の年末にメンテナンスしたときの記事は、以下で紹介しています。
年末恒例、電卓すす払い

この時メンテナンスした電卓は11台でした。
My Calcs 


さて、いつもは年末にメンテナンスを行いますが、昨年末は忙しく持ち越しになり、2月にずれこみました。
2014年以降、プログラム電卓と関数電卓は36機種、45台に増殖したので、それなりに手間がかかります。


My_func_calcs_20190803

My_graph_calcs_20190803


My_graph_calcs_2_2020110


My_func_calcs_20210125_1


My_func_calcs_20210204_2

メンテナンス時には、以下のようなチェックをします。
電源スイッチの ON/OFF チェック
液晶の表示チェック (自己診断機能を利用)
キーの反応チェック (自己診断機能を利用)
電池の液漏れのチェック (特にソーラー電卓のバックアップ電池は要注意)

なので、電卓が増えるとチェックが結構大変です。

そこで、fx-9860G 以降のストレージメモリのあるプログラム電卓 (グラフ関数電卓、14台分) については、C.Basic が動作するので、C.Basic の拡張コマンドを使ったバッテリーチェック・プログラムで電池の電圧チェックすると、かなり効率アップします。
バッテリー電圧チェック・プログラム

ソーラー電卓でバックアップ用電池(ボタン電池など)を使っているタイプは、動作確認しても電池の液漏れの確認ができないのが、要注意です。ちなみに、殆どのモデルでは2年ごとに交換を勧めています。

ボタン電池やコイン電池だけで動作するモデルは、毎年チェックするのであれば、電源チェックで電源が入らないときに電池交換すれば問題ないと思います。







応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



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

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


関連記事

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

管理人が所有している電卓

更新 2022/02/14

普段使いの電卓

初めての普段使い
初めて購入した関数電卓が FX-502P で、まさか後世に名器と言われるようになるとは思わず、乱雑に普段使いしていた。人生で初めてプログラムを作ったのもこの電卓だ。その後、系統の違う fx-4500P やスタンダート関数電卓を購入して使ってみたが、何かがしっくりと来なかった。結局普段使いで長く愛用したのは、FX-502P の後継機種 FX-602PFX-603P そしてスタンダード関数電卓の fx-993ES であった。

ポケコンを使う友人が周りに多くいたが、ポケコンよりもPCでのプログラミングに興味を持ったので、ポケコンは買ったことも使ったことももない。一時期 小さなリブレット(東芝製)というPC (Libretto 30、Libretto M3、Libretto ff1100V) を持ち歩いて、プログラミングを楽しんでいた。

その後の普段使い
2007年に fx-5800P に乗り換えるまで FX603P を15年間愛用、2010年に fx-JP500 に乗り換えるまで fx-993ES は 7年間愛用した。

現在の普段使い [2022/02/14 更新]
現在は、会社の机に fx-993ES を常備し、fx-5800P と fx-9860G Slim (参考) に仕事で使うプログラムを入れて、どちらかを持ち運んで日常的に使っている。プライベートでは fx-CG50fx-9750III で走る アドイン版 Casio Basic (C.Baisc) や Casio Python でプログラムを作って遊んでいる。



所有電卓の増殖 [2022/02/14 追記]

気に入ったモデルを長期間愛用する傾向が強いので、元々所有している電卓は少なかった。

ところが 2019年に 搭載言語の変遷や進化を調べて "プログラム電卓温故知新" という連載を始めたところ、進化上のターニングポイントになるモデルで実際にプログラムを走らせたくなった。そこで中古を含めて複数のプログラム電卓を入手した。それでもコレクターに比べれば少ないと思う。

一旦所有した電卓は、全ての機種を定期的に電池交換と動作確認を行ってきた。人に貸して満員電車でバラバラに壊れた2機種(共にスタンダード関数電卓)を除き、他は全て稼働状態で保管している。初めて購入した FX-502P は 40年経った今でも完全正常作する。バブル崩壊前(1980年台以前)の昔の電卓は高品質な部品や素材を使っていて、とても堅牢な作りだったと思う。

2021/01/31 追記:
fx-115ES PLUS 2nd edition を Amazon USA から入手

2021/01/25 追記:
fx-375SE A をアマゾンから新品を入手


2021/01/16 追記:
fx-991ES PLUS 2nd edition 中古品をセカイモンから入手


2020/11/05 追記:
ヨーロッパ限定発売の fx-7400GIII をセカイモンから新品で入手

2020/05/20 追記:
北米限定発売の fx-9750GIII をセカイモンから新品で入手

2020/03/27 追記:
ヨーロッパ限定発売の fx-9860GIII を Amazon Franceから新品で入手

2020/02/17 追記:

ヨーロッパで発売予定の fx-9860GIII と同じデザインコンセプトで fx-991MS模倣品対策の fx-991MS 2nd edition を新品で入手

2019/08/01 追記:
搭載言語の歴史的変遷や進化を調査するため、fx-CP400 を新品で入手。

2019/07/22 追記:
搭載言語の歴史的変遷や進化を調査するため、fx-4000P を中古で入手。

2019/07/19 追記:
中古で入手した fx-7000G は液晶に多くの埃が付着し筐体も割れていたので、程度の良い中古品を追加で入手。

2019/07/19 追記:
搭載言語の歴史的変遷や進化を調査するため、CFX-9850G を中古で入手。 

2019/07/10 追記:
搭載言語の歴史的変遷や進化を調査するため、fx-4800P を中古で入手。

2019/06/30 追記:
搭載言語の歴史的変遷や進化を調査するため、中古のグラフ関数電卓を複数入手。
fx-7000G, CFX-9850GC PLUS, fx-9860G, fx-9860G AU, fx-9860G Slim, fx-9860GII (SH3)

2018/03/31 追記:
主要な関数電卓の1つとして fx-290 を記念のため保存目的で購入。

2018/02/17 追記:
fx-CG50 や fx-JP900 とほぼ同じデザインに惹かれて fx-260 Solar II を入手した (国内発売されていない)。使ってみて気がついた最大のメリットは、小型で薄く軽量な点でありワイシャツの胸ポケットに収まるポケットサイズだ。太陽電池のみで動作する(バックアップのコイン電池は不要)。設計そのものは第1世代に分類される古いもので、30 を入力後に [sin] を押す1行表示のタイプ。以前散々使ったタイプなのであまり不便に感じないが、最新の電卓になれているのでチョット頭の切替が必要だ。 




所有電卓の動作チェック [2022/02/14 追記]

これまで経験した、電卓が壊れる理由は、
・外部からの圧迫(満員電車):fx-911sfx-991s
・電池の液漏れ:fx-991MS
・液晶のライン抜け:fx-9860GII (カシオによる交換対応)
のみだ。

最も古く 1979年 に購入した FX-502P は、今でも健在 (40年以上)。その他 1980~1990 年代に購入 / 発売 されたものも、全て正常動作している。

保管方法
フタができる金属製の缶 (煎餅やあられなどの缶) の中に、乾燥剤と共に保管している。

定期的なチェック
ほぼ1~2年間隔で、全電卓について、以下のようなチェックを行っている。
・電源スイッチの ON / OFF チェック (バッテリーチェック)
・液晶の表示チェック (自己診断機能を利用)
・キーの反応チェック (自己診断機能を利用)
・電池液モレのチェック (特にソーラー電卓のバックアップ用電池は要注意)

特に fx-9860G 以降のグラフ関数電卓は、C.Basic が動作するので、C.Basic 専用の拡張コマンドを用いたバッテリーチェック・プログラムで電圧チェックしている。電圧が低いとき電池を交換する。  
バッテリの電圧チェックプログラム

これは、たった2行のプログラム;

Locate 1,1, "Battery (V)"
Locate 13,1,BattrtSystem÷100



プログラム電卓

所有しているのは、全てカシオ製品で22機種、29台。

機 種
 
購 入 時 期
 
作 動 状 態
 
備 考
 
プログラム関数電卓
 FX-502P
 
1979/04/02
 
 
正常動作 (43年)
 
 
生まれて初めて使った電卓
 
 
プログラム関数電卓
 FX-602P 
 
1984/06/19
 
 
正常動作 (38年)
 
 
8年間、普段使いした
 
 
プログラム関数電卓
 fx-4000P
 
2019/07/22正常動作 (38年)eBayで中古を入手
プログラム関数電卓
 fx-4500P
 
1990/02/27
 
正常動作 (32年)
電源不調⇒分解修理で復活
末尾がPAでなくPのものは
希少価値があるらしい。
プログラム関数電卓
 FX-603P 
 
1992/04/05
 
 
正常動作 (30年)
 
 
15年間、普段使いした
  
 
グラフ関数電卓
 fx-7000G
 
2019/06/19
2019/07/12
正常動作 (38年)
正常動作 (38年)
 eBayで中古を入手
セカイモンで程度の良い中古を入手
プログラム関数電卓
 fx-4800P

2019/07/09正常動作 (27年)Amazon で中古入手
グラフ関数電卓
 CFX-9850G
 
2019/07/19正常動作 (27年)セカイモンで中古を入手
グラフ関数電卓
 CFX-9850GC PLUS
 
2019/06/12正常動作 (18年)eBay で未使用品(新品同様)を入手
グラフ関数電卓
 fx-9860G
 
2019/06/25正常動作 (17年)Amazon で中古を入手
グラフ関数電卓
 fx-9860G AU
 
2019/06/17正常動作 (17年)eBayで中古を入手
グラフ関数電卓
 fx-9860G Slim
 
2019/06/17
2019/08/16
2019/08/25
 
1台目、正常動作 (16年)
2台目、正常動作 (16年)
3台目、正常動作 (16年)
eBasyで中古を入手
セカイモンで 未開封新品を入手
セカイモンで程度の良い中古を入手
プログラム関数電卓
 fx-5800P
2007/05/25
2013/10/05
1台目、盗難に遭う
2台目、正常動作 (9年)
あまりプログラムを作らなかった
ヒンジ修理、プログラムバックアップ用
2014/09/263台目、正常動作 (7年)ヒンジ修理、プログラムバックアップ用

 
2017/06/01
 
4台目、正常動作 (4年)
 
普段使い、ヒンジ・カバーをリフレッシュ
 
グラフ関数電卓
 fx-9860GII SD (SH3)
 
2019/06/23正常動作 (14年)メルカリで中古を入手
グラフ関数電卓
 fx-9860GII (SH4A)
2015/07/04
 
 
7ヶ月で液晶のライン抜け
正常動作 (7年)
カシオにより無償交換
 
 
 
 
2017/07/28
 
2台目、正常動作 (5年)
 
Amazon USA で新品購入(8/8到着)
 
グラフ関数電卓
 fx-9860GII SD (SH4)
 
2017/07/27

 
正常動作 (5年)

 
Amazon USA で新品購入 (8/14到着)

 
グラフ関数電卓
 fx-CG20


2016/04/11
  
 
 
正常動作 (6年)
 
 
 
動作が遅いのでプログラムの動作確認に
使う程度。fx-CG50 登場で役割を終えた
た機種だと思う
 
グラフ関数電卓
 fx-CG50
2017/07/05
2018/07/24
  
正常動作 (5年)
2台目、正常動作 (4年)
 
eBay USA で新品購入
Amazon USA で新品購入 
CASグラフ関数電卓
 fx-CP400
2019/08/01

 
正常動作Amazon Japan で並行輸入品を購入
グラフ関数電卓
 fx-9860GIII
2020/03/27正常動作

 
Amazon Franceで新品購入
ハードカバーのゴム足が最初から1つ無い
グラフ関数電卓
 fx-9750GIII
2020/05/01正常動作

 
セカイモンで新品購入
グラフ関数電卓
 fx-7400GIII
2020/10/03正常動作
 
セカイモンで新品購入

※)中古品購入のため、発売開始年からの年数とした。
 
My_func_calcs_20190803

My_graph_calcs_20190803

                  My_graph_calcs_2_2020110  


関数電卓

所有しているのは 14機種 16台。

機 種
 
購 入 時 期
 
備 考
 
fx-911s??初めて買ったスタンダート関数電卓。満員電車で壊れ、廃棄
fx-991s??満員電車で壊れ、廃棄
fx-991W1999/11/23正常動作。3桁区切りが良い。この後長らく3桁区切りがなくなる
fx-991MS
fx-991MS 
2002/01/17
2018/03/19
保管中に電池液漏れで壊れているのを発見(2017/12/30)、破棄
正常動作、Amazon USA で fx-991MS Plus を購入、機能は同一
fx-991ES2005/12/07正常動作
fx-993ES
 
2010/02/09
2012/01/17
正常動作、極めて頻繁に使用し、[=]キー文字摩滅、会社で常用
正常動作、追加購入、最も長く普段使いした
fx-2902018/03/31正常動作、記念&保存のため購入
fx-995ES2013/10/19正常動作、記念&保存のため購入
fx-JP9002015/05/21正常動作、記念&保存のため購入、3桁区切りが復活
fx-JP5002017/07/06正常動作、自宅でたまに使うが保存用、3桁区切りが復活
fx-JP7002018/01/24正常動作、記念&保存のため購入、3桁区切りが復活
fx-260 Solar II2018/02/11正常動作、記念&保存のため購入、道具箱に常備
fx-991MS 2nd edition2018/03/19正常動作、記念&保存のため購入
fx-991ES PLUS 2nd edition2021/01/16正常動作、記事作製、記念&保存のため購入
fx-375ES A2021/01/25正常動作、記事作製、記念&保存のため購入
fx-115ES PLUS 2nd edition2021/01/31正常動作、記事作成、記念&保存のため購入
 
My_func_calcs_20210125_1   
               My_func_calcs_20210204_2 

一般電卓

所有しているのは、2機種 2台。

機 種購入時期備 考
SL-1101984/??/??古い電卓が出てきた。折りたたみソーラータイプ。正常動作
SL-8802018/03/23正常動作、関数/プログラム電卓以外で購入した唯一の電卓。記念のため入手。
 sl880.png SL110
   SL-880       SL-110




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: fx-5800Pfx-9860GIIプログラム関数電卓

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

関連記事

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

1984年の折りたたみソーラー電卓 - SL-100

楽 屋 裏
e-Gadget


2022/02/11



1984年発売の折りたたみ・ソーラー電卓 - SL-110

 SL110

家の片付けで古いものを収納した箱を久しぶりに開けたら、古い電卓が出てきました。自分で買ったものではなく、親か親戚から譲り受けて、そのままになっていたものです。

SL110_Folded

金色の CASIO のロゴが残っているので、そもそも殆ど使われていないようです。

茶色の合成皮革は、ワレもなく柔軟なままです。

1984年に発売されていた製品で、FX-602P が発売されていた時代です。所有している FX-602P の手帳型カバーもワレがなく柔軟なままです。この時代のカシオの電卓の素材品質が高かったようです。


SL110_Package_1 SL110_Package_2

箱に収まって見つかった電卓ですが、箱にはベスト電器の値札が貼ってあります。残念ながら値段は消えてしまって見えません。英語表記のパッケージを見れば並行輸入品だと判ります。


SL110_Solar_Display SL110_Rubber_KeyTop

アモルファスシリコンの太陽電池のみで動作します。暗めの部屋でも問題なく使えます。

「敏感50ルックス、10桁」と印刷されたステッカーが貼られたままなのは、元所有者の性格が反映しているのでしょうか?
このことから、元所有者が誰なのか想像できたりします(草)

液晶は、3桁区切り付き、10桁表示です。

液晶の右側には、F / CUT / 5/4 の切替スイッチがあり、浮動小数点 / 切り捨て / 四捨五入 を切り替えます。

キートップはゴム製で、手触りが良いです。

キーロールオーバー (入力時、キーから指を離す前に次のキーを押しはじめてもしっかり認識する機能) はありません。さすがに 1984年の電卓では、まだ対応していません。


SL110_Calc_Manual

取扱説明書も付いていて、紙の端が折れたりしておらず、きれいなものです。

SL-1101984年のグッドデザイン賞を受賞しています。

1984年3月
のカタログでは、SL-110 ¥5,800 となっています。

SL110_Cat_2




この時期は、2つ折りタイプが豊富にありました。

SL100_Cata_s





応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、fx-CG50

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

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

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

やす (Krtyski)

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


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

プログラム電卓を実際に使って気づいたこと、自作プログラム、電卓での Casio Basic, C.Basic そして Casio Python プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではありません。いつでもどこでもプログラミングができるプログラム電卓が好きな1ユーザーです。


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR