C:Basic プロジェクト

アドイン版 Casio Basic
<トップページ>

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

動画追加 2015/11/15
改訂 2015/12/06
追記修正 2017/12/17
更新 2019/05/29


※ 最新バージョンは <トップページ>からダウンロードできます. 


C:Basic とは?

コーディングが楽な Casio Basic を使って、高速なプログラムを作りたい...
そんな望みに応えるために、Casio Basic が高速で動作する環境をアドインで提供する試みが C:Basic プロジェクトです。

C:Basic = アドインCasio Basic インタープリタ & コンパイラ

現在のところ、インタープリタ C.Basic (ドット1個) の開発段階です。C.BasicC:Basic の一部です。


1. 高速動作
グラフ関数電卓 fx-9860GII の 純正 Casio Basic のグラフィックス描画はとても遅く、127×63 ドットの画面を点で埋めるには、かなり待たされます。また、計算量の多いプログラムも、かなり遅くなります。純正 Casio Basic のプログラムソースをそのまま高速動作できるのが C.Basic / C:Basic です。

2. Casio Basic の上位互換の言語仕様
純正 Casio Basic のソースがそのまま使えることを基本に、より便利になるような機能や高速化を実現するような独自機能を追加しています。特にグラフィックスは、純正 Casio Basic コマンドの高速化に加えて、独自コマンドによる高速化も図っています。

3. 電卓で完結する開発環境
プログラムの作成・編集の全てを電卓上で行えて、パソコン不要の開発環境です。C.Basic / C:Basic はアドインとして提供されます。純正 Casio Basic のエディタよりも使いやすく、純正にはないデバッグ機能 (Ver 0.99以降) もあり、かなり高機能なエディタを備えています。さらに、プログラムファイルリストのお気に入り機能があり、fx-5800P に備わっている利便性を fx-9860G シリーズや fx-CGシリーズで実現しています。

4. 対応機種も拡張
fx-9860Gシリーズ用の C.Basic for FX だけでなく、fx-CGシリーズ用の C.Basic for CG もあります。



▋ プロジェクトメンバー
  • 設計&作成: sentaro様
  • サンプルプログラム作成&テスト: 管理人(私)、他有志
  • 開発支援メンバー: Colon様、ガノー様、ツル様、iron2様、他国内外のC.Basicユーザー




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


 


keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

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



関連記事

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

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

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


カシオの 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で動作可能

Program Library in English



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

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

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

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


2. 数学 / 理工

  ⇒ ピタゴラス数

  ⇒ 素因数分解

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

  ⇒ 圧力換算 [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]

  ⇒ 反射ゲーム


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プログラムライブラリプログラム関数電卓

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

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

プログラム電卓のためのWindowsプログラミング

プログラム電卓のためのWindowsプログラミング - トップページ
e-Gadget


2017/01/31
更新 2019/05/22


無償で入手できる開発環境 Visual Studio 2015 Community を使い始めたところです。

[2019/05/22 追記]
その後、Visual Studio 2019 Community をインストールしました。VS 2015 をアンインストールせずに、追加で VS 2019 のインストールが可能です。

プログラム電卓のための便利なWindowsプログラムが無ければ自分で作ってみよう、そこでWindowsプログラミングです。



はじめに

最近は Casio Basic プログラミングばかりで、Windowsプログラミングをしなくなって10年以上たちます。以前は Quick C やVisual Studio 6 の Visual C++ やたまに Visual Basic で Windows プログラムを作っていたので、全くの初心者というわけではありません。しかし当時は Windows 95, 98, XP といった環境でしたので、Windows そのものも大きく変わっていて、新たに勉強することも結構あります。

そこで、Windows 10 の環境で、使ったことが全く無かった C# の学習や、最新の VC++ にキャッチアップしようと思い、その過程を半ば自分のために残しておこうという趣旨で、プログラム電卓のためのWindowsプログラミング のカテゴリーを始めます。

Casio Basic 使いこなしと同様に、自分で調べたこと、実際に行ったこと、ネットで入手しにくい情報などを書き留める予定です。但し、メインは Casio Basic 使いこなしのプログなので、このカテゴリは途中で立ち消えになるかも知れませんが、先ずは始めてみます (他にも記事の予定がたくさんあるのに...)。新しい言語に触れるのは楽しいですね。



当カテゴリの立ち位置

主に、C# と VC++ MFC ドキュメント/ビューアーキテクチャ の話題になると思います。

C# については、最初のうちは、初めて C# で何かアプリを作る過程で、学習したこと、問題とその解決方法などを記録に残します。従って最初のうちは、バカみたいに丁寧な記述になるかも知れませんが、私の頭に定着すれば割愛するようになると思います。




目 次

1. Visual Studio Community 2019 [2019/05/22 更新]
 1.1 Visual Studio Community 2019 のダウンロード
 1.2 Visual Studio Community 2019 って?

2. 参考になる情報元

3. C# のトピックス

 3.1 C#プログラミング TIPS
 3.2 初めて作るC#プログラム - MyClock
     ※ MyClock 最新版- 邪魔にならないデジタル時計 (アラーム機能付き)
 3.3 追加するかも...

4. VC++ のトピックス
 4.1 ドキュメントビューアーキテクチャを使ってみる
  4.1.1 複数の拡張子を使う方法 - ファイルを開く/名前を付けて保存
  4.1.2 追加するかも...



Visual Studio Community 2019 のダウウンロード [2019/05/22 更新]

私の場合は、以下のサイトで、

Visual Studio Download

画面の一番左の "Visual Studio Community" からダウンロードしました。

[2019/05/22 追記]
この記事を書いた当初は VS Community 2015 でしたが、今はダウンロードできないようです。そこで、以前 VS 2015 Community をインストールしたまま、最新版の VS Community 2019を追加インストールしました。


インストール環境は、Windows 10 (64bit) Home で、Windows Update で最新の状態になったものです。

実際にインストールが始まると、必要なコンポーネントのダウンロードとインストールにはとても時間がかかります。私の遅いPCでは、取り敢えずのインストールに2時間くらいかかりました。

Visual Studio を開いてみると、C# と VB での開発に必要な殆どのコンポーネントはインストール済みなのに、それ以外を使うにはさらにダウンロード&インストールに1時間程度必要だったので、上で取り敢えずと書きました。

なお、ヘルプは必要だと思ったので、テーマ別にローカルにダウンロードして使えるヘルプシステム向けに、VS2015、C#, VB、CV++ に関する文書をダウンロードしてオフラインでもヘルプが使えるようにしました。日本語と英語の両方をインストールしましたが、日本語訳の品質はWeb版と同じように、まぁアレな感じで、英語を見直すことが多いです。

DELL の Inspiron 11 3148 (CPU: Core i3、メモリ: 4GB、HDD: 500GB) で走らせていますので、VS 2015 Community は結構動作が重いのです。

[2019/05/22 追記]
一方、同じPCに VS 2019 Community をインストールしてみると、かなり軽く動作するよう改善されています。メモリ使用量が激減しているのが寄与していると思います。

[2019/05/22 追記]
その後 DELL Inspiron 14 5480 (CPU: Core i7、メモリ: 8GB、SSD: 128GB、HDD: 1TB) にもインストール、極めて軽く動作します。



Visual Studio 2019 Community って?
 
ネットで探すと山ほどの記事に出会うので、敢えて何かをここで書く必要もないでしょう。
...というか、最近はネットでいくらでも情報が得られますので、便利です。但しプログラミングに関しても、ネット情報は S/N が大きいので、自分で取捨選択してゆく必要があって、それがまた勉強になったりします。

実際にインストールしてみて分かったのですが、以下の環境が使えるようになっています;
  • C#
  • Visual Basic
  • Visual F#
  • Visual C++
  • SQL Server
  • Python
  • JavaScript
  • TypeScript
てんこ盛りですね。



参考になる情報元

C#についてお世話になっているのは、
  • DOBON.NET .NET Tips : 信頼性の高いスグに使える情報があって重宝しています
  • ++C++;// 未確認飛行 C:基本の説明が分かり易いので悩んだときに役立ちます
  • MSDN .NET クラスライブラリ など:そもそもどうなってるの?をじっくり知るには良いかも...
  • その他検索で出てくるもの:S/Nが高くないので取捨選択が必要

VC++ (ドキュメント/ビュー アーキテクチャー) についてお世話になっているのは、
(特に これといったものに出会っていないが、強いて挙げるなら)





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


 



keywords: プログラム関数電卓、Windowsプログラミング

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

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

Casio S100 - 凄いプロ仕様の電卓だった

2019/05/15

S100

 知らないことは罪である...

どこかで聞いたことがあるような無いようなこの言葉。

以前 カシオのプレミアム電卓 S100 について、揶揄した否定的な記事を書きました。
あなたの Bset One カシオ電卓は?

今回は、穴があったら入りたい...というお話です。



実は凄かった業務用電卓

関数電卓やプログラム電卓は知ってるが、業務用一般電卓の重要な機能 "キーロールオーバー" については全く知らなかった。これは、早打ちにしっかり対応する機能で、会計業務の人達の恐ろしいくらいの高速ブラインドタッチを初めて目の前で見ました。以下は、とある税理士の先生からの受け売りだ。

例えば、[1] [2] [3] ...と高速タッチする場合、1つめのキーを "押す" & "離す" した後次のキーを "押す" & "離す" しているわけでは無い。

超高速タッチを行うプロの人達は、[1] を押す、[2] を押す ([1]を離し始める)、[3] を押す ([2]も離し始める)、[1] を完全に離す(他のキーを押し始める)、[2] を完全に離す(他のキーを押し始める)、[3] を完全に離す(他のキーを押し始める)、といった操作をしているのだ。

そして、それでも 1 2 3 と入力を受け付ける機能を "キーロールオーバー" というのだそうだ。そして、この機能が無いと高速入力のキーを取りこぼしてしまう。人間のスピードに電卓が追いつかないわけだ。

当ブログに来られる、プログラム電卓のヘビーユーザーの方々は、これをご存じでしたか?
#私は全く知りませんでした。

Casio S100 は、3キーロールオーバーといって、3つのキーが1時期同時に押された状態でも、押された順番に入力されること。3キーロールオーバーは、カシオだけでなくシャープやキヤノンでも限られた機種だけのものとのこと。



プログラム電卓は業務用電卓を超えられるか?

よし、ではプログラム電卓や関数電卓ではどうなのか、やってみた。
fx-5800P、fx-9860GII SD、fx-CG50 で3キーロールオーバーの実験を以下のようにした。

高速キー入力する代わりに、ゆっくりと [1] [2] [3] の順番にキーを押して行き、押したままにします。次に [1] [2] [3] の順にキーを話して行き、入力がどうなるのかを確認します。はい、1 2 3 と入力されるではありませんか\(^_^)/

念のため、これを [3] [2] [1] の順に行いました。すると入力は 3 1 となり、2 が入力漏れになる。

関数電卓 fx-993ES、fx-JP500 でも同様の結果になった。

結論、プログラム電卓や第3世代 / 第4世代関数電卓は、2キーロールオーバーまでは対応しているが、3キーロールオーバーには未対応!

...ということが分かった。 

 Casio S100 は、無駄に高級なのではなく、ハードなプロ仕様なのだ!


それに比べて、グラフ関数電卓 fx-CG50 のキー入力のなんと貧弱なことか....1キーでも取りこぼすお粗末な作りだ。




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


 



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

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

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

e-Gadgetの検索キーワード

2019/05/15

e-Gadget について Google Search Console で分かる最近の検索パフォーマンスの結果から、クリック数(実際にクリックして当ブログにアクセスした数)の検索キーワードのランキングをみると、何に期待して来られるのかが分かります。

 1.fx-5800P674
 2.fx-5800P プログラム 362
 3.Casio Basic 233
 4.fx-CG50232
 5.プログラム電卓226
 6.関数電卓 プログラミング 方法 213
 7.fx-5800P 後継機147
 8.fx-CG50 Python120
 9.fx-5800P ゲーム117
10.fx-CG50 プログラム 108
11.プログラム関数電卓95
12.関数電卓 プログラミング88
13.fx-260 Solar II79
14.fx-JP90076
15.fx-CG50 日本語59
16.fx-5800P ケーブル51
17.プログラム電卓 ゲーム51
18.fx-CG50 ゲーム47
19.プログラム 電卓46
20.Casio fx-260 Solar II46
21.関数電卓 因数分解45
22.関数電卓 ゲーム42
23.fx-5800P プログラム コピー39
24.関数電卓 素因数分解35
25.関数電卓 プログラム31
26.fx-9860GII29
27.C# 電卓27
28.Inspiron 14 548027
29.関数電卓 プログラム機能26
30.Inspiron 314826
31.Inspiron 11 314826
32.Inspiron 14 5480 メモリ増設25
33.fx-JP900 プログラム24
34.Inspiron 548023
35.fx-CG2022
36.プログラム関数電卓 使い方22
37.Dell Inspiron 11 314822
38.Acronis True Image 2017 復元方法20
39.fx-5800P 使い方19
40.プログラミング 電卓18


先ず見て分かること
  
1. fx-5800P の情報を求めているのがダントツ1位 - 1390件 (赤で表示)

2. fx-CG50 の情報への需要が次に高い - 519件 (青で表示)

3. fx-9860GII や fx-CG20 の情報への需要は少ない - 98件

4. 電卓でのプログラミング関連 ( で表示) も多い - 703件

当ブログは殆どが日本国内からのアクセスであり、上の傾向は日本での発売機種のラインアップの影響、つまり国内では fx-5800Ptと fx-CG50 の二択になっている状況がこのランキングに強い影響を与えていると思われます。fx-9860GII や fx-CG20 はそれほど売れなかったけれども、fx-CG50 は結構売れ始めているということかも知れません。

また、電卓でのプログラミングに関するケース (キーワード "fx-5800P" に吸収されている可能性あり) は累計すると、それなりに多く (703件)、当ブログのメインテーマとして役にたっているようです。

ところで、キーワードの中で "プログラミング" と "電卓" の組み合わせの中には、パソコンで電卓アプリを作る主題のものが結構あるので、電卓でのプログラミング関連の累計にはこれらの組み合わせは入れていません。


意外な状況

15位にランキングしている "fx-CG50 日本語" は意外です。私自身はこのキーワードで検索したことがありません。fx-CG50 日本語化に興味を持ってアクセスされていると分かります。今後の推移に興味が出てきます。


他に何か気づいた点があれば、コメントください。お待ちしています。




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


 



keywords: プログラム関数電卓、プログラミング

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

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

プログラムライブラリ - 日本語版 西暦-和暦換算プログラム

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

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

初版 2019/05/07
 更新 2019/05/08


日本語版 西暦-和暦 換算プログラム (令和対応版) - YearConv Ver 3.2


※ カシオプログラム電卓の実用プログラムでは、多分世界初の日本語表記プログラム!?
※ 令和の御代代わりを言祝ぎ、作成したもの.

[2019/05/07] バグ修正版
[2019/05/08] 元号期間の誤りを訂正 (元号一覧- Wikipedia による)、ファイル差し替え



著作権者

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



対応機種

- Casio fx-CG10/20・fx-CG50 - C.Basic for CG Ver 0.50 alpha 以降でのみ動作、最新版を推奨
アドイン版Casio Basic - C.Basic for CG が必要


プログラムの説明

Casio Basic プログラムは日本語表記できない

西暦と和暦を換算する機能に加えて、"あの人の年齢はいくつかな?" 機能をおまけとして追加したプログラムを、公開しています。
プログラムライブラリ - 西暦-和暦 換算プログラム - YearConv Ver 2.2

これを日本語版にしたものを今回紹介する。


fx-CGシリーズ日本語化プロジェクト

カシオのfx-CGシリーズ (fx-CG10 / CG29 / CG50) は、中文を言語として選択ができ、内蔵されている各国語フォントに中文用の簡体字フォントが含まれています。このフォントは GB2312コードに近いが少し異なるカシオ仕様になっています。

残念ながら選択言語に日本語はありません。カシオが電卓ビジネスにおいては、日本市場を軽視し、日本市場のためには開発資源を回さない方針の証でもあります。経済原理の前には日本メーカーであることを忘れなければならないのでしょう。とても残念に思います。

さて、管理人の周りでは、プログラム電卓で作る走るプログラムを日本語表記させたいという話が以前からありました。
そして、Colon様、saentaro様、ツル様が中心になって、
 ・無ければ日本語フォントを作ろう
 ・既に内蔵されている簡体字フォントを流用しよう
という開発の流れが始まり、簡体字フォントを流用するアプローチの1つとして、fx-CGシリーズの各種表示を簡体字化する g3l ファイルが Colon様により作成され、fx-CG20 / CG50 日本語化計画 にて発表しています。

さらに、アドイン版Casio Basic - C.Basic for CG の開発過程で、電卓本体に内蔵されている簡体字フォントをキャラクタとして使えるようになっており、Ver 0.83 alpha 以降では欲しい漢字を探しやすくなりました。


Year Converter 日本語版 Ver 3.1 の画面と操作

YC_cb1f YC_cb2f YC_cb3f 
左の画像 - C.Basic for CG のファイルリストから YearConv.g3m を起動.
中央画像 - YearConv が起動し、デフォルトで日本語表記されている.
右の画像 - [0]キーで AD (西暦) 2020 年を入力した結果。令和 2 年を入力した結果も同じになる.

YC_cb4f YC_cb5f YC_cb6f 
左の画像 - [6]キーで2038年を入力すると、令和2年生まれの人は2038年で18才になると分かる.
       [7]キーで18を入力すると、令和2年生まれの人が18才になるのは2038年だと分かる.
     どちらも同じ結果が表示される.
中央画像 - [3]キーを長押しすると昭和時代の期間が表示される. ひらがなフォントも使える.
右の画像 - [OPTN]キーで英語表記に切り替わったところ. もう一度押すと漢字表記に戻る.


プログラム編集画面での漢字表示

YC_cb9f YC_cb8f YC_cb10f 
左の画像 - Yrd.g3mのソースコードを表示したプログラム編集画面.
       ミニフォント表示で、さらに漢字を出力しているコードがみえる .
中央画像 - プログラム編集画面で日本語表示するために、SETUPで Edit GB Font を On か Full にする.
右の画像 - "AD" を"西暦" としたいが、簡体文字フォントでは "暦" にならず、妙なフォントになる.
       そこで "AD" の表記のままにした。

Excel - KANJI DispCap11f 
左の画像 - Excel で "和" を入力して、JISコードの10進数表示と16進数表示を示している.
       B7セルには =IF(A7="","",CODE(A7))、C'セルには =IF(A7="","",DEC2HEX(B7))
       と式を入力.
       これから、”和" の JISコードが 4F42 と分かる. このExcelファイルのダウンロード.
右の画像 - C.Basic for CG で 簡体字フォント がJISコード並びで表示されている画面.
       0x4F20 ~ 0x4F7F までが表示されており、4F42 を探せば "和" が見つかる.
       このまま [EXE]キーを押せば、ソース編集画面のカーソル位置に "和" が入力される.

最初は、漢字を使わない英語表記のバージョンの Year Converter Ver 2.2 を 純正Casio Basic で作りました。このソースコードを元にして、下記の3つの C.Basic for CG 拡張機能を代わりに使って日本語版に改造しました。プログラム構造やロジックは 純正Casio Basic で最初に作ったものと同一です。
  • Getkey の代わりに拡張コマンド Getley1 を使用.
  • Else If と多くの IfEnd を使う代わりに新たな ElseIf ステートメントと1つの IfEnd を使用
  • 簡体字コードを使用
簡体字コードの仕様は日本語版には必須ですが、それ以外の Getkey1ElseIf は特に変更する必要はありません。



プログラムのファイル構成

メインプログラム: YearConv
サブルーチン: YrcYrdYrl
入力ボックス: INPI



プログラムファイル & ソースコード

※ C.Basic for CG 用プログラムファイル
   プログラムファイル (g3m) とテキストファイルのダウンロード
  • 本プログラムには、入力ボックス INPI が必要です(ダウンロードファイルに含まれています)。




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


 


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

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


関連記事

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

プログラムライブラリ - 西暦-和暦 換算プログラム

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

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

最終更新:
2019/05/08


西暦-和暦 換算プログラム (令和対応版) - YearConv Ver 2.2


[2019/05/07] バグ修正版.
[2019/05/08] 元号期間の誤りを訂正 (元号一覧(日本) - Wikipoedia による)、ファイル差替え

著作権者

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



対応機種

- Casio fx-5800P
- Casio fx-9750GIII, fx-9860Gシリーズ(G, GII, GIII) - 純正Casio Basic および C.Basic for FX で動作
- Casio fx-CGシリーズ - 純正 Casio Basic および C.Basic for CG で動作

(fx-FD10 Pro でも fx-9860Gシリーズ用が動作すると思われます)



プログラムの説明

"あの人の年齢はいくつかな?"

西暦と和暦を換算するプログラムを作ってしたところ、それだけではつまらない。そこで、おまけ機能として "あの人の年齢はいくつかな?" 機能を追加しています。

西暦-和暦換算部に何か年を入力します。これが "あの人" の生年月日です。この状態で [5] (5:In) を押して4桁の西暦年を入力すると、入力した年の "あの人" の年齢が 7: の項に表示されます。[6] (6: y) を押して年齢を入力すると、"あの人" がその年齢の時の西暦年が 6: の項に表示されます。


さて、YearConv2 は、最初に fx-5800P用に作成した西暦-和暦 換算プログラムです。
プログラムの詳細は Casio Basic入門19 ~ 21 を参照してください。

fx-5800P用プログラムを、fx-9860Gシリーズ用 (g1mファイル) および fx-CGシリーズ用 (g3mファイル、カラー表示) に移植したものも収録しました。

基本的なロジックやプログラム構造は全く同じですが、画面の広さの違いから換算できる和暦が 大正~令和に限定されるのが fx-5800P用、明治~令和まで対応しているのが fx-9750GIII, fx-9860Gシリーズと fx-CGシリーズです。

YearConv_1 YearConv_7 Heisei
fx-5800P用


YC_FX_1 YC_FX_2 YC_FX_3 
fx-9860Gシリーズ用


YC_CG_01 YC_CG_02 YC_CG_03 
fx-CGシリーズ用

 - 起動時の画面

中央 - AD(西暦)、M(明治)、T(大正)、S(昭和)、H(平成)、R(令和) のどれかに入力すると、他が連動して換算される。
   [6] (6: In) に入力すると、その年での年齢を表示
   [7] (7: years) に入力すると、その年齢になる西暦年を表示

  - [4] (4:H) を長押しすると、平成の期間を表示




プログラムのファイル構成

メインプログラム: YEARCONV
サブルーチン: YRCYRDYRL
入力ボックス: INPI

YRL は C.Basic で使う際に必要。fx-5800P用のファイル構成には含まれない。



プログラムファイル & ソースコード

※ fx-5800P 用
   ソースコード
   CcLinker で fx-5800P に転送できるCCLファイルのダウンロード
   ※ YEAR CONV.ccl、YRC.ccl、YRD.ccl、INPI.ccl を含む圧縮ファイル (zip) が得られます。
   CcLinkerの紹介

※ fx-9750GIII, fx-9860Gシリーズ と fx-CGシリーズの純正Casio Basic ならびに C.Basic で動作します。
   fx-9750GIII, fx-9860Gシリーズ用: Year Converter Ver 2.1 ダウンロード
   fx-CGシリーズ用: Year Converter Ver 2.2 ダウンロード

  • 本プログラムには、入力ボックス INPI が必要です(ダウンロードファイルに含まれています)。
  • 同梱されている g1m ファイルは fx-9860GII 向けですが、変更せずそのまま fx-CG20/50 に転送すると正常動作します。但し 転送後 fx-CGシリーズの g3m ファイルに自動変換されます。
  • ダウンロードファイルには、ソースコード(テキストファイル) を含んでいます。テキストファイルは C.Basic で変換したものです。
  • サブルーチン YRL は、C.Basic で使用するものです。但し純正Casio Basic では実行が無視されるので転送しても問題ありません。
  • メインルーチン YEARCONV の1行目の 200→L はキー長押し時間を決める。長押しと認識するまでの時間を短くするにはこの数値を小さくする。長くするには数値を大きくする。
  • C.Basic では 現在設定されている実際の実行速度に対応して サブルーチン YRL で長押し時間を自動調整しているので、1行目での長押し時間の設定は動作に影響しない。これは特にオーバクロック時に有効。
  • 令和に対応しました。[2019/05/05] 



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


 


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

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



関連記事

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

Casio Basic入門22

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します
最終: 2019/05/04

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

Chapter 4

◆ Chapter 4 の目標: 換算プログラム(令和対応版)を作る

前回: Casio Basic入門21



Chapter4-5
キー長押しの処理をつくる

前回説明した予定に従って、プログラムを変更および追加してゆきます。

これまでに作った 初期設定 と 表示の初期化ブロック は、以下です。

0→A:0→B:0→G

Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT
"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("
Locate 5,4," "

Locate 10,4,"6:yσn"

Locate 14,4," "

While 1

一応、While 1 まで書きました。

表示の初期化ブロック をサブルーチン YRD に受け持たせるようにする場合、サブルーチン YRD は以下のようにします。

サブルーチン:YRD

Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT
"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("
Locate 5,4," "

Locate 10,4,"6:yσn"

Locate 14,4," "


そして、メインルーチンの [初期設定]ブロック と [表示の初期化]ブロック を以下のようにします。

0→A:0→B:0→G

Whle 1

Prog "YRD"


ここで [表示の初期化]ブロック を While ループの中に移動させていることに注目してください。その意味は後でお分かり頂けると思います。

続いて、[メニュー番号取得]ブロック が続きます。このブロックは変更しません。

-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N
K=22⇒5→N
K=23⇒6→N


さて、プログラムの構造は以下のようなものにしてゆきます。

プログラムの構造

[初期設定]

While 1

  [表示の初期化]

    [メニュー番号取得]

  [キー長押し検出]

    [入力処理]

    [計算と出力処理]

WhileEnd

[キー長押し検出]ブロック を上記の位置に追加してゆくことにします。

このように、ブロック構造を意識しておくと、必要なところのみを変更し、独立したブロックを追加することで、機能追加がしやすくなります。

キー長押しを検出するには、

・ループの中で Getkeyコマンドを使い、
・あるキーのキーコードが押されている時だけ回るループを所定の回数だけ回して、
・その所定の回数でループから脱出してくれば、
・そのキーが長押しされたことが分かる


...と言うプログラムの考え方ロジック)を使います。

例えば、[1]キーの長押しは、以下のようにして検出できます。

0→F
0→C
While Getkey=35
Isz C
C=9⇒Break
WhileEnd

C=9⇒1→F

これを細かく見てみましょう。

変数F は長押しキーに対応するメニュー番号です。上記場合は、[1]キーを長押したので、F に 1 を代入しています。

なお、F を 0 で初期化しています。[1][4] のキーが長押しされなければ、F は 0 のままになります。メニュー番号に応じて処理を行う場合に、F が 0 ならば何も処理を行いません。 F が 1 ならば、明治の始まりと終わりの年月日をお表示する処理を行うわけです。

変数 F はプログラム実行中に勝手に変更されては困るので、予約変数として扱い、他の部分やサブルーチンでは使わない変数にする必要があります。いい変えれば、他の目的に使われてはマズイことになります。そこで、ここまでプログラムを作ったところで、まだ使われていない F を変数に選びました。


変数 C は、While ループが回る回数をカウントするカウンタ変数として使います。この変数は、Whileループの中だけで必要で、プログラムの他の部分で値が変わっても、全く影響ありません。つまり、変数 C は使い捨て変数として扱います。プログラムの他の部分で使用されていても良いので、カウンター C とわかりやすい名前にしています。

カウンタなので、C は0で初期化します。

While Getkey=35

これは、Getkey が実行された時に押されているキーのキーコードが 35 の場合は、ループに入る... ということです。
キーコード 35 は、[1]キーの対応します。

長押しキーが [1] でない時は、ループに入らず、WhileEnd までジャンプします。ここで Do ループを使うと、必ずループの入ってしまい、長押しキーが [1]でない時は、無駄な動作をします。従って、Whileループを使います。

While ループの中で実行するのは、以下です。

Isz C
C=9⇒Break


ループが回るたびに、Isz C で C をインクリメント(1つ増加)させています。
そして、C が 9 になったら、Breakコマンドを実行します。

Breakコマンドは、ループを強制的に抜けるコマンドです。
ループが9回まわった時、キーコードが依然として 35 である時、Whileループを脱出します。

長押し時間は、ループが9回まわるだけの時間、ということです。この 9 をを変更すれば、検出すべき長押し時間を調整できます。ここでは、9回まわる時間を長押し時間としています。


ループを脱出した直後に、

C=9⇒1→F

があります。カウンタ C が 9 の時、つまり[1]キーが所定の時間以上長押しされた時に、メニュー番号 F に 1 を代入しています。


これで、[1]キーが長押しされると メニュー番号 F に 1 を代入する...という動作をプログラミングできました。


この処理に続いて、[2]キーが長押しされた時に メニュー番号 F に 2 を代入する処理を書きます。

0→C
While Getkey=36
Isz C
C=9⇒Break
WhileEnd

C=9⇒2→F

書き換えているのは赤文字の部分のみで、あとは全く同じコードになっています。

ここでは、メニュー番号 F の初期化を行っていません。行う必要がありません。F の初期化は、どのキーも所定の時間以上長押しされなければ 0 にするのが目的でした。従って、一連の長押し検出ブロックの最初に一回初期化しておけば良いのです。

同様にして、[3]キーや [4]キーが長押しされた時の処理を続けて記述します。

0→C
While Getkey=37
Isz C
C=9⇒Break
WhileEnd

C=9⇒3→F

0→C
While Getkey=21
Isz C
C=9⇒Break
WhileEnd

C=9⇒4→F



さて、このようにして長押しされたキーが [1][4] のいずれか、或いはどれでもないことが検出されたら、メニュー番号 F に従った処理をサブルーチン YRD の中で行います。

Casio Basic の特殊性の1つに、メインプログラムの変数は、そのままサブルーチンで使えるという点があります。サブルーチンである変数が変更されたら、メインルーチンではその変数を参照すれば値が変更されているわけです。プログラムに慣れた人には、Casio Basic の変数は究極の大域変数だ、と言えば分かるでしょう。

さて、変数 F の値は、以下の可能性があります。

・F=0: キー長押しがされない時
・F=1: [1]キー長押しの時
・F=2: [2]キー長押しの時

・F=3: [3]キー長押しの時
・F=4: [4]キー長押しの時


サブルーチン YRD では、表示の初期化 も行いますので、

・F=-1: 表示の初期化を行う時

を追加しておきます。


そして、F の値に応じて、サブルーチン YRD の処理を行うようにします。さて、この処理はプログラム全体の流れとは全く無関係な処理です。つまり、プログラム全体の流れから見れば、例外処理といえます。

以前 Casiobasic入門11 で、例外処理について取り上げていますので、参考にしてください。

今回は、変数 F が0でないとき(真のとき)に、サブルーチン YRD を呼び出して、必要な処理を行うようにします。
そこで、F が0でない時、プログラムの最後、WhileEnd の手前に Goto コマンドでジャンプさせ、そこで例外処理を行います。

例外 = Exception (イクセプション)なので、Goto E / Lbl E を使うことにします。


さて、F が0以外の時に Goto E を実行するのは、以下のように簡潔に書けます。

F⇒Goto E

そして、Lbl E 以下を以下のようにします。

Lbl E
If F:then
Prog "YRD"
-1→F
IfEnd


WhileEnd


WhileEnd はプログラムの一番最後に記述するコマンドです。


変数 F を -1 にするのは、[表示の初期化] をサブルーチンYRD 内で実行する時です。
それならば、プログラムが起動した直後は F は -1 でなければなりません。そこで、初期化ブロック では、変数 F を -1 で初期化しておく必要があります。

同様に、上の 例外処理ブロック でも、サブルーチン YRD 実行後は、F を -1 にしておきます。


[初期設定] は、以下のように変更しておきます。

0→A:0→B:0→G
-1→F



変数 F が -1 の場合を考慮して、[表示の初期化]ブロック を以下のように変更しておきます。

If F:Then
Prog "YRD"
Prog "YRC"
IfEnd



ここでは、Prog "YRC" を追加しました。

サブルーチン YRC は既に作っています。ここでも変更しません。

和暦の始まりと終わりの年月日を サブルーチン YRD で表示し、[EXE]キーでメインルーチンに戻った後、表示の初期化を行って、さらに各項目で表示されていた値も再描画するためには、ここでサブルーチンYRC を実行しておく必要があるからです。

但し、プログラム起動時に、サブルーチン YRC が何もしないようにすべきです。そこで、初期設定ブロック で N を -1 で初期化しておくことにします。

YRCYRD は、紛らわしいので注意してください(紛らわしくてすみません)。


初期設定ブロック

0→A:0→B:0→G
-1→F:-1→N



以上をまとめると、プログラムの構造 は以下のようになります。

プログラムの構造

[初期設定]

While 1

  [表示の初期化]

    [メニュー番号取得]

  [キー長押し検出]

    [入力処理]

    [計算と出力処理]

  [例外処理]

WhileEnd


[入力処理]ブロック や [計算と出力処理]ブロック は変更がありません。


ここまでで変更したメインルーチンのプログラム名を YEAR CONV としましょう。以下にまとめます

プログラム名: YEAR CONV

0→A:0→B:0→G
-1→F:-1→N

While 1

If F:Then
Prog "YRD"
Prog "YRC"
IfEnd


-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N
K=22⇒5→N
K=23⇒6→N


0→F
0→C
While Getkey=35
Isz C:C=9⇒Break
WhleEnd:C=9⇒1→F

0→C
While Getkey=36
Isz C:C=9⇒Break
WhleEnd:C=9⇒2→F

0→C
While Getkey=37
Isz C:C=9⇒Break
WhleEnd:C=9⇒3→F

0→C
While Getkey=21
Isz C:C=9⇒Break
WhleEnd:C=9⇒4→F

F⇒Goto E


If N=0:Then
5→X:1→Y:4→D:1→E
Prog "INPI":Z→A

Else If N=1
Then
4→X:2→Y:4→D:1→E
Prog "INPI":Z→T

Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→S

Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→H

Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→R

Else If N=5
Then
If A:Then
5→X:4→Y:4→D:1→E
Prog "INPI":Z→B
IfEnd

Else If N=6
Then
If A:Then
12→X:4→Y:3→D:1→E
Prog "INPI":Z→G
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

If N=0:Then
Prog "YRC"
Else If N=1
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"

Else If N=2
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"

Else If N=3
Then
H+1988→A
H=0⇒Isz A
Prog "YRC"

Else If N=4
Then
R+2018→A
R=0⇒Isz A
Prog "YRC"

Else If N=5
Then
If A:Then
Prog "YRC"
IfEnd

Else If N=6
Then
If A:Then
Prog "YRC"
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

Lbl E
If F:Then
Prog "YRD"
-1→F:IfEnd


WhileEnd


(追加した部分を赤文字で示した)


一見行数が多くなっていますが、各部分は類似のコードの繰り返しになっており、併せてブロック構造を考えて見れば、簡単な処理が並んでいるだけのものだと、お分かり頂けるでしょう。

 ⇒ CasioBasicコマンドリファレンス
  - Whileループ
  - Doループ
  - Getkeyコマンド
  - Isz命令
  - Breakコマンド
  - ⇒命令



Chapter4-6
サブルーチンを使いこなす

これまで、ブラックボックスのまま扱ってきた サブルーチン YRD を実際に書いてゆきます。

サブルーチン YRD は、変数 F の値に応じた表示処理を行います。

・F=0 の時: 何もしない
・F=-1 の時: 各項目の初期表示
・F=1 の時: 明治の始まりと終わりの年月日を表示
・F=2 の時: 大正の始まりと終わりの年月日を表示
・F=3 の時: 昭和の始まりと終わりの年月日を表示
・F=4 の時: 平成の始まりの年月日を表示



F=-1 の時の表示
各項目の初期表示
YearConv_1  

F=1 の時の表示
大正の始まりと終わり
Taisho  

F=2 の時の表示
昭和の始まりと終わり
Showa  

F=3 の時の表示
平成の始まりと終わり
Heisei 

F=4 の時の表示
令和の始まり
Reiwa  

F=1 ~ 4 の時は、右下に ►E の表示をしています。これは、[EXE]キーで元に戻るこを示す表示です。

サブルーチン: YRD

If F=-1:Then
Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT
"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("
Locate 5,4," "

Locate 10,4,"6:yσn"

Locate 14,4," "
Return
IfEnd


Cls
Locate 14,4,"
►t"    ( [FUNCTION] [7] [3] [4] )
Locate 16,4,"E"


If F=1:Then
Locate 1,1,"TAISHO"
Locate 2,2,"FROM 1912.7.30"
Locate 2,3,"TO 1926.12.24


Else If F=2
Then
Locate 1,1,"SHOWA"
Locate 2,2,"FROM 1926.12.25"
Locate 2,3,"TO 1989.1.7"


Else If F=3
Then
Locate 1,1,"HEISEI"
Locate 2,2, "FROM 1989.1.8"
Locate 2,3,"TO 2019.4.30"


Else If F=4
Then
Locate 1,1,"REIWA"
Locare 2,2,"FROM 2019.5.1"


IfEnd:IfEnd
IfEnd:IfEnd
Cls


F=-1 の場合は、Return コマンドにより、サブルーチンから強制的にメインルーチンへ戻しています。

F=1~4 の場合の表示は、出力命令 ◢ を使って、プログラムを一時停止させています。一時停止を解除するには [EXE]キーを押す必要があります(出力命令の仕様)。従って、画面の右下に 
►E を表示して [EXE]キーを押すように説明します。
ここでは、If ~ Else If ~ IfEnd を使って、複数条件分岐の処理を行っています。

 ⇒ Casiobasicコマンドリファレンス
  - Returnコマンド
  - If 文
  - 出力命令◢



最後の仕上げとして、[EXIT]キーでプログラムが終了する部分を追加して完成させます。

[メニュー番号取得]ブロック内で、[EXIT] のキーコード 73 を取得し、取得したらプログラムを終了させるようにします。

[初期設定] ブロック以外が While ~ WhileEnd の中にあるので、[メニュー番号取得]ブロックの一番最後に

K=73⇒Break



の1行を追加します。[EXIT]キーを押すと、キーコード 73 が検出され、その時は Break コマンドで、While ~ WhileEnd の外、つまり WhileEnd の下の行に制御がジャンプします。

このジャンプ先に、以下のコードを追記しておきます。

Cls
Locate 7,2,"BTE!"



ここで、最終的に完成したコードをまとめます。

プログラムファイルのダウンロード

CcLinker で fx-5800P に転送できるCCLファイルのダウンロード
 ※ YEAR CONV.ccl、YRC.ccl、YRD.ccl、INPI.ccl を含む 圧縮ファイル (zip) が得られます。
 CcLinkerの紹介



ソースコード

スペースは で示し、改行も示しています。

YEAR CONV
0→A:0→B:0→G↵
-1→F:-1→N↵

While 1↵

If F:Then ↵
Prog "YRD"↵
Prog "YRC"↵
IfEnd↵

-1→N↵
Do↵
Getkey→K↵
LpWhile K=0↵
K=25⇒0→N↵
K=35⇒1→N↵
K=36⇒2→N↵
K=37⇒3→N↵
K=21⇒4→N↵
K=22⇒5→N↵
K=23⇒6→N↵
K=73⇒Break↵

0→F:0→C↵
While Getkey=35↵
Isz C:C=9⇒Break↵
WhileEnd:C=9⇒1→F↵
0→C↵
While Getkey=36↵
Isz C:C=9⇒Break↵
WhileEnd:C=9⇒2→F↵
0→C↵
While Getkey=37↵
Isz C:C=9⇒Break↵
WhileEnd:C=9⇒3→F↵
0→C↵
While Getkey=21↵
Isz C:C=9⇒Break↵
WhileEnd:C=9⇒4→F↵
F⇒Goto E↵

If N=0:Then ↵
5→X:1→Y:4→D:1→E↵
Prog "INPI"↵
If Z:Then Z→A↵
Locate X,Y,A↵
IfEnd↵

Else If N=1↵
Then ↵
4→X:2→Y:4→D:1→E↵
Prog "INPI"↵
If Z:Then Z→T↵
Locate X,Y,T↵
IfEnd

Else If N=2↵
Then ↵
13→X:2→Y:4→D:1→E↵
Prog "INPI"↵
If Z:Then Z→S↵
Locate X,Y,S↵
IfEnd↵

Else If N=3↵
Then ↵
4→X:3→Y:4→D:1→E↵
Prog "INPI"↵
If Z:Then Z→H↵
Locate X,Y,H↵
IfEnd↵

Else If N=4↵
Then ↵
13→X:3→Y:4→D:1→E↵
Prog "INPI"↵
If Z:Then Z→R↵
Locate X,Y,R↵
IfEnd↵

Else If N=5↵
Then ↵
If A:Then ↵
5→X:4→Y:4→D:1→E↵
Prog "INPI"↵
If Z:Then Z→B↵
Locate X,Y,B↵
IfEnd:IfEnd↵

Else If N=6↵
Then ↵
If A:Then ↵
12→X:4→Y:3→D:1→E↵
Prog "INPI"↵
If Z:Then Z→G↵
Locate X,Y,G↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵
IfEnd↵

If N=0:Then ↵
Prog "YRC"↵

Else If N=1↵
Then ↵
T+1911→A↵
T=0⇒Isz A↵
Prog "YRC"↵

Else If N=2↵
Then ↵
S+1925→A↵
S=0⇒Isz A↵
Prog "YRC"↵

Else If N=3↵
Then ↵
H+1988→A↵
H=0⇒Isz A↵
Prog "YRC"↵

Else If N=4↵
Then ↵
R+2018→A↵
R=0⇒Isz A↵
Prog "YRC"↵

Else If N=5↵
Then ↵
If A:Then ↵
Prog "YRC"↵
IfEnd↵

Else If N=6↵
Then ↵
If A:Then ↵
Prog "YRC"↵
IfEnd↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵
IfEnd↵

Lbl E↵
If F:Then ↵
Prog "YRD"↵
-1→F:IfEnd↵

WhileEnd↵
Cls↵
Locate 7,2,"BYE!"↵


YRC
If N=1:Then ↵
A-1911→T↵
Else If N=2↵
Then ↵
A-1925→S↵
Else If N=3↵
Then ↵
A-1988→H↵
Else If N=4↵
Then ↵
A-2018→R↵
Else If N=5↵
Then ↵
B-A→G↵
Else If N=6↵
Then ↵
A+G→B↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵
IfEnd:IfEnd↵

A-1911→T↵
A-1925→S↵
A-1988→H↵
A-2018→R↵
Locate 5,1,"□□□□□"↵
A>0⇒Locate 5,1,A↵
Locate 4,2,"□□□□□□"↵
T>0⇒Locate 4,2,T↵
Locate 13,2,"□□□□"↵
S>0⇒Locate 13,2,S↵
Locate 4,3,"□□□□□□"↵
H>0⇒Locate 4,3,H↵
Locate 13,3,"□□□□"↵
R>0⇒Locate 13,3,R↵

B-A→G↵
If G>999 Or G<-99:Then ↵
Locate 12,4,"□yσn"↵
Locate 14,4,"□□"↵
Return↵
IfEnd↵

If B Or G:Then ↵
Locate 5,4,"□□□□□"↵
Locate 5,4,B↵
Locate 12,4,"□□□"↵
Locate 12,4,G↵
If Abs(G):Then ↵
13+Int(log(Abs(G)))→D↵
Else 13→D:IfEnd↵
G<0⇒D+1→D↵
Locate D,4,"yσn"↵
Locate D+1,4,"□□"↵
IfEnd



YRD
If F=-1:Then ↵
Locate 1,1,"0:AD"↵
Locate 10,1,"▸DMS"↵
Locate 11,1,"EXIT"↵
Locate 1,2,"1:T"↵
Locate 10,2,"2:S"↵
Locate 1,3,"3:H"↵
Locate 10,3,"4:R"↵
Locate 1,4,"5:Int("↵
Locate 5,4,"□□"↵
Locate 10,4,"6:□yσn"↵
Locate 14,4,"□□"↵
Return↵
IfEnd↵

Cls↵
Locate 15,4,"▸t"↵
Locate 16,4,"E"↵

If F=1:Then ↵
Locate 1,1,"TAISHO"↵
Locate 2,2,"FROM□1912.7.30"↵
Locate 2,3,"TO□□□1926.12.24"◢

Else If F=2↵
Then ↵
Locate 1,1,"SHOWA"↵
Locate 2,2,"FROM□1926.12.25"↵
Locate 2,3,"TO□□□1989.1.7"◢

Else If F=3↵
Then ↵
Locate 1,1,"HEISEI"↵
Locate 2,2,"FROM□1989.1.8"↵
Locate 2,3,"TO□□□2019.4.30"◢

Else If F=4↵
Then ↵
Locate 1,1,"REIWA"↵
Locate 2,2,"FROM□2019.5.1"◢
IfEnd:IfEnd↵
IfEnd:IfEnd↵
Cls↵




「入力ボックス」を用いた 西暦・和暦換算プログラム が完成しました。

Chapter 4 では、
  • 入力ボックスの使い方
  • サブルーチンと共有する"予約変数" と メインルーチン内で効率よく使う"使捨て変数" を意識した変数の使い方
  • サブルーチンの使いこなし
  • "キー長押し" と "普通押し" のキー操作違いで、1つのキーに異なる役割を与える方法
を経験してもらいました。

CasioBasic入門 を最初からここまで読んでくると、プログラム電卓でのプログラミングが自由自在になったのではないでしょうか?


つづく...


CasioBasic入門23 / 目次




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


 




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

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

関連記事

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

Casio Basic入門21

Casio Basic入門
<目次>

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

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

Chapter 4

◆ Chapter 4 の目標: 換算プログラムを作る(令和対応版)


これまでに作成した「西暦・和暦換算プログラム」のプログラムコードを、以下にまとめます。


プログラム名: CH4-3

0→A:0→B:0→G

Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT
"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("
Locate 5,4," "

Locate 10,4,"6:yσn"

Locate 14,4," "

While 1

-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N
K=22⇒5→N
K=23⇒6→N


If N=0:Then
5→X:1→Y:4→D:1→E
Prog "INPI":Z→A
Else If N=1
Then
4→X:2→Y:4→D:1→E
Prog "INPI":Z→T
Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→S
Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→H
Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→R
Else If N=5
Then
If A:Then
5→X:4→Y:4→D:1→E
Prog "INPI":Z→B
IfEnd
Else If N=6
Then
If A:Then
12→X:4→Y:3→D:1→E
Prog "INPI":Z→G
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

If N=0:Then
Prog "YRC"
Else If N=1
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"
Else If N=2
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"
Else If N=3
Then
H+1988→A
H=0⇒Isz A
Prog "YRC"
Else If N=4
Then
R+2018→A
R=0⇒Isz A
Prog "YRC"
Else If N=5
Then
If A:Then
Prog "YRC"
IfEnd
Else If N=6
Then
If A:Then
Prog "YRC"
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

WhileEnd



プログラムの構造

[初期設定]

[表示の初期化]

While 1

    [メニュー番号取得]

    [入力処理]

    [計算と出力処理]

WhileEnd


サブルーチン: YRC

If N=1:Then
A-1911→T
Else If N=2
Then
A-1925→S
Else If N=3
Then
A-1988→H
Else If N=4
Then
A-2018→R
Else If N=5
Then
B-A→G
Else If N=6
Then
A+G→B
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd

A-1911→T
A-1925→S
A-1988→H
A-2018→R
Locate 5,1,"     "
   (スペース5個)
A>0⇒Locate 5,1,A
Locate 4,2,"      "
  (スペース6個)
T>0⇒Locate 4,2,T
Locate 13,2,"    "
  (スペース4個)
S>0⇒Locate 13,2,S
Locate 4,3,"      "
  (スペース6個)
H>0⇒Locate 4,3,H
Locate 13,3,"    "
  (スペース4個)
R>0⇒Locate 13,3,R


B-A→G

If G>999 Or G<-99:Then

Locate 12,4," yσn"
  (スペース1個)
Locate 14,4,"  "    (スペース2個)
Return
IfEnd

If B Or G:Then
Locate 5,4,"     "
  (スペース5個)
Locate 5,4,B
Locate 12,4,"   "
  (スペース3個)
Locate 12,4,G
If Abs(G):Then
13+Int(log(Abs(G)))→D
Else 13→D:IfEnd
G<0⇒D+1→D
Locate D,4,"yσn"
Locate D+1,4,"  "
  (スペース3個)
IfEnd


さて、今回は、上記のプログラムに各年号の始まりと終わりの年月日を表示する機能を組み込みます。



Chapter 4-4
キー長押しによるメニュー選択


これまでに作成したプログラムの実行画面は、既に画面一杯になっており、新しい機能を呼び出すためのメニュー番号を表示させる場所がありません。



YearConv_7 

今回追加する機能は、大正、昭和、平成、令和 それぞれの始まりと終わりの年月日を表示するものです。

大正年を入力するための項目1は、[1] キーを押して入力します。そこで、[1]キーを長押しした時に大正の始まりと終わりの年月日を表示するようにできれば、新たなメニュー番号を増やす必要がありません。


そこで今回は、キー長押しによるメニュー選択機能を追加します。


キー長押しについては、CasioBasic入門6 (キーコードを調べるプログラムを作る) で長押しを適切に検出する方法を紹介していますので、今回は応用編です。


キー長押しでは、[1][2][3][4] キーを押した時、それぞれに対応して、大正、昭和、平成、令和 の始まりと終わりの年月日(令和は始まりだけ)を表示させるのですが、その表示内容は、、以下のようなものにします。


大正の始まりと終わり
Taisho 
 
昭和の始まりと終わり
Showa 
 
平成の始まりと終わり
Heisei 

令和の始まり
Reiwa  


いずれの画面でも、右下に ►E の表示をしています。これは、[EXE]キーで元に戻るこを示す表示です。

これらの表示は、サブルーチン YRD を呼び出して行うことにします。

※ サブルーチン名の YRD の末尾の D は、Display (表示) の D を意味しています。


ところで、この表示から [EXE] キーを押して、元に戻るときには、以下のような表示内容を再描画する必要があります。
YearConv_7  


ところで、プログラム起動時は、以下の表示を行います。
YearConv_1         
 
この表示は、これまで [表示の初期化] ブロックで記述していますが、この表示も再描画する必要があるので、 サブルーチン YRD で表示するように変更します。

この表示を実行したのち、既に作っているサブルーチン YRC を実行すると、1つ上のような表示になります。

従って、[表示の初期化] ブロックは、

Prog "YRD"
Prog "YRC"


に置き換えることができます。


それでは、このような動作をするように、メインルーチンとサブルーチン YRD を作ってゆきます。



つづく...


CasioBasic入門22 / 目次



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


 



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

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

関連記事

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

Casio Basic入門20

Casio Basic入門
<目次>

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

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

Chapter 4

◆ Chapter 4 の目標: 換算プログラムを作る(令和対応版)

前回: Casio Basic入門19


前回は、以下のプログラムを作り、サブルーチンの有効性を実感できたと思います。


サブルーチン: YRC

If N=1:Then
A-1911→T
Else If N=2
Then
A-1925→S
Else If N=3
Then
A-1988→H
Else If N=4
Then
A-2018→R
IfEnd:IfEnd
IfEnd:IfEnd

A-1911→T
A-1925→S
A-1988→H
A-2018→R
Locate 5,1,"     "
   (スペース5個)
A>0⇒Locate 5,1,A
Locate 4,2,"      "
  (スペース6個)
M>0⇒Locate 4,2,T
Locate 13,2,"    "
  (スペース4個)
T>0⇒Locate 13,2,S
Locate 4,3,"      "
  (スペース6個)
S>0⇒Locate 4,3,H
Locate 13,3,"    "
  (スペース4個)
H>0⇒Locate 13,3,R




プログラム名: CH4-2

0→A

Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT
"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"

While 1

-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N


If N=0:Then
5→X:1→Y:4→D:1→E
Prog "INPI":Z→A
Else If N=1
Then
4→X:2→Y:4→D:1→E
Prog "INPI":Z→T
Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→S
Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→H
Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→R
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

If N=0:Then
Prog "YRC"
Else If N=1
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"
Else If N=2
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"
Else If N=3
Then
H+1988→A
H=0⇒Isz A
Prog "YRC"
Else If N=4
Then
R+2018→A
R=0⇒Isz A
Prog "YRC"
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

WhileEnd




Chapter 4-3

今回は、オマケの "あの人の年齢いくつかな?" 機能を追加してゆきます。

項目5:
 5:In
 この表記の後に4桁の入力ボックスで入力させます。
 ここには、任意の西暦年を入力します。
 ここで入力した値は、変数B に格納します。

項目6:
 6:  y
 この 6: と y の間に3桁の入力ボックスで、年齢を入力させます。
 y は歳(years)の略です。ここで入力した値は、変数Gに格納します。

項目0の西暦年 (変数A) が0 (ゼロ) の時は、項目5と項目6の入力ができないようにします。

西暦年(変数A)が0でない時は、その値に基づいて、BからGを、またはGからBを計算して表示します。

Bが入力された時は、

B-A→G

により、西暦Bの時の年齢Gを計算します。

Gが入力された時は、

A+G→B

により、G歳の時の西暦年Bを計算します。


具体的に、各ブロックにコードを実装してみましょう。



[初期設定] ブロック


0→A:0→B:0→G

(追加部分を赤文字で示した)

BとGも 0 (ゼロ)で初期化しておきます。



[表示の初期化]

Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("       ([In])
Locate 5,4," "
           (スペース2個)
Locate 10,4,"6:yσn"
  ([FUNCTION] [7] [2] [6])
Locate 14,4," "
         (スペース2個)

(追加部分を赤文字で示した)

特に説明は不要と思います。小文字の y を表示する時の裏技を思い出してください。


[メニュー番号取得]

-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N
K=22⇒5→N
K=23⇒6→N


(追加部分を赤文字で示した)

項目 5 と 6 を押した時、それぞれのメニュー番号を変数 N に代入しています。


[入力処理]

If N=0:Then
5→X:1→Y:4→D:1→E
Prog "INPI":Z→A
Else If N=1
Then
4→X:2→Y:4→D:1→E
Prog "INPI":Z→T
Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→S
Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→H
Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→R
Else If N=5
Then
If A:Then
5→X:4→Y:4→D:1→E
Prog "INPI":Z→B
IfEnd
Else If N=6
Then
If A:Then
12→X:4→Y:4→D:1→E
Prog "INPI":Z→G
IfEnd
IfEnd:IfEnd

IfEnd:IfEnd
IfEnd:IfEnd
IfEnd


(追加部分を赤文字で示した)

項目5 と 6 の入力ボックスを用いた入力処理は、既に作った部分と同様です。追加部分に関する特別な処理はありせん。


[計算と出力処理]

If N=0:Then
Prog "YRC"
Else If N=1
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"
Else If N=2
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"
Else If N=3
Then
H+1988→A
H=0⇒Isz A
Prog "YRC"
Else If N=4
Then
R+2018→A
R=0⇒Isz A
Prog "YRC"
Else If N=5
Then
If A:Then
Prog "YRC"
IfEnd
Else If N=6
Then
If A:Then
Prog "YRC"
IfEnd
IfEnd:IfEnd

IfEnd:IfEnd
IfEnd:IfEnd
IfEnd


(追加部分を赤文字で示した)


項目 5 と 6 に関する追加部分で、特別なものはなく、サブルーチン YRC を呼び出しているだけです。
具体的な細かい処理は、サブルーチン YRC が受け持ちます。


まずは、プログラムコードを一気に紹介します。サブルーチン YRC は、全ての表示を書き換えます。そして書き換える項目に、項目5と6を追加しています。


サブルーチン: YRC

If N=1:Then
A-1911→T
Else If N=2
Then
A-1925→S
Else If N=3
Then
A-1988→H
Else If N=4
Then
A-2018→R
Else If N=5
Then
B-A→G
Else If N=6
Then
A+G→B
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd

A-1911→T
A-1925→S
A-1988→H
A-2018→R
Locate 5,1,"     "
   (スペース5個)
A>0⇒Locate 5,1,A
Locate 4,2,"      "
  (スペース6個)
T>0⇒Locate 4,2,T
Locate 13,2,"    "
  (スペース4個)
S>0⇒Locate 13,2,S
Locate 4,3,"      "
  (スペース6個)
H>0⇒Locate 4,3,H
Locate 13,3,"    "
  (スペース4個)
R>0⇒Locate 13,3,R


B-A→G

If G>999 Or G<-99:Then

Locate 12,4," yσn"
   (スペース1個)
Locate 14,4,"   "
     (スペース2個)
Return

IfEnd

If B Or G:Then
Locate 5,4,"     "
  ( スペース5個)
Locate 5,4,B
Locate 12,4,"   "
   (スペース3個)
Locate 12,4,G
If Abs(G):Then
13+Int(log(Abs(G)))→D
Else 13→D:IfEnd
G<0⇒D+1→D

Locate D,4,"yσn"
         ([FUNCTION][7][2][6])
Locate D+1,4,"  "
   (スペース3個)
IfEnd

(追加部分を赤文字、青文字、紫文字で示した)

サブルーチン YRC では、変数A、B、G に基づき、必要な計算を行って表示しています。


青文字の部分(エラー処理)
変数G(年齢)が大き過ぎ、あるいは小さ過ぎの場合は、3桁を超える表示になるので、正常な表示を行えません。これをエラーを考え、この部分では年齢の数値を表示させずに、空白を表示することにします。

項目6の年齢表示は、画面配置の都合上、3桁以内で表示を行います。 B-A により算出される年齢 G が3桁を超えるかどうかを判定します。年齢 G は、B-A により算出されるので、負の数になることもあり得ます。この場合は負記号 ”-”も1桁になります。

そこで、年齢G が3桁を超える条件は、以下のようになります。
・正の整数だと999が3桁の最大なので、これを超える場合として G>999、
・負の整数だと、-99が3桁の最大なので、これを下回る場合として G<-99


そして年齢Gが3桁を超える場合は、項目6(年齢表示)には空白を表示し、"y"を表示します。

エラーの場合は、以下に続く項目5と6の表示を行わずに、サブルーチンを終了させて、メインルーチンへ戻るようにします。そこで、Returnコマンドを用います。

 ⇒ CasioBasicコマンドリファレンス
  - Return


赤色の部分
ここでは、項目5と項目6の計算結果を表示します。

但しプログラムを起動した時は、このおまけ機能はまだ使っていません。使っていないのに表示をするのはおかしい。
そこで、変数 G と B のいずれかが初期値(0)でない時にのみ、表示を行うことにし、具体的には以下のIf 文を使っています。

If B Or G Then
[項目5と6の表示]
IfEnd



紫色の部分
文字"y" の表示位置は年齢Gの桁数に応じて変化しますので、この部分で文字"y"を表示する桁を調べています。

この処理が面倒なら、最初から文字"y"を表示させないようにしても構いません。但し、fx-5800Pでプログラムを作る際には、表示変数の桁数が分かると便利なことがあるので、その方法を紹介します。

fx-5800P 搭載のCasioBasicには、文字列処理のコマンドがありません。そこで数学的に変数Gの桁数を調べる必要があります。

正の整数Gの桁数は 1 + Int(log(G)) で求まります。

Gの表示開始桁は 12 です。"y" の表示桁を D とすると、以下の式から D を計算します。

13+Int(log(Abs(G))→D

関数 Abs( ) は、 ( ) 内の数の絶対値を求めます。

対数関数 log( ) の ( ) 内は正の数でなければエラーになります。これは対数関数の数学的性質です。

そこで、まず年齢変数Gが0(ゼロ)でない時、つまり

If Abs(G) Then

の時に、Gを Abs( ) 関数で一旦正の数にして、対数関数 log( ) を使い、Gの桁数から "y" の表示桁を求めます。

そして、Else により G が 0 (ゼロ)の時の "y"の表示桁を 13→D で決定しています。

最後に、G が負の数の時は、マイナス記号が頭に追加されるので、"y" の表示桁数D を1つ増やしています。


※ 変数 G の桁数の求め方について

変数の桁数を求めて、それに関する表示桁を求める方法については、こちら で説明していますので、参考にしてください。


今回作成したプログラムコードを以下にまとめます。

プログラム名: CH4-3

0→A:0→B:0→G

Locate 1,1,"0:AD"
Locate 10,1,"DMS"
Locate 11,1,"EXIT
"
Locate 1,2,"1:T"
Locate 10,2,"2:S"
Locate 1,3,"3:H"
Locate 10,3,"4:R"
Locate 1,4,"5:In("
Locate 5,4," "

Locate 10,4,"6:yσn"
  ([FUNCTION] [7] [2] [6])
Locate 14,4," "

While 1

-1→N
Do
Getkey→K
LpWhile K=0
K=25⇒0→N
K=35⇒1→N
K=36⇒2→N
K=36⇒3→N
K=21⇒4→N
K=22⇒5→N
K=23⇒6→N


If N=0:Then
5→X:1→Y:4→D:1→E
Prog "INPI":Z→A
Else If N=1
Then
4→X:2→Y:4→D:1→E
Prog "INPI":Z→T
Else If N=2
Then
13→X:2→Y:4→D:1→E
Prog "INPI":Z→S
Else If N=3
Then
4→X:3→Y:4→D:1→E
Prog "INPI":Z→H
Else If N=4
Then
13→X:3→Y:4→D:1→E
Prog "INPI":Z→R
Else If N=5
Then
If A:Then
5→X:4→Y:4→D:1→E
Prog "INPI":Z→B
IfEnd
Else If N=6
Then
If A:Then
12→X:4→Y:3→D:1→E
Prog "INPI":Z→G
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

If N=0:Then
Prog "YRC"
Else If N=1
Then
T+1911→A
T=0⇒Isz A
Prog "YRC"
Else If N=2
Then
S+1925→A
S=0⇒Isz A
Prog "YRC"
Else If N=3
Then
H+1988→A
H=0⇒Isz A
Prog "YRC"
Else If N=4
Then
R+2018→A
R=0⇒Isz A
Prog "YRC"
Else If N=5
Then
If A:Then
Prog "YRC"
IfEnd
Else If N=6
Then
If A:Then
Prog "YRC"
IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd:IfEnd
IfEnd

WhileEnd



プログラムの構造

[初期設定]

[表示の初期化]

While 1

    [メニュー番号取得]

    [入力処理]

    [計算と出力処理]

WhileEnd




16桁・4行の限られた画面の中に、7つの項目を押し込んで全ての換算値を1画面に表示することができました。

このプログラムを使っていて、ふと思ったことがあります。

和暦は、きりの良い1月から変わるわけではなくて、天皇崩御により年号が変わるのだから、例えば昭和は、何年何月から何年何月までだろうか?

Googleなどで調べれば良いだけですが、今回のプログラムに各年号の始まりと終わりの年月日を表示する機能を組み込めないだろうか?

表示のための画面は、サブルーチンを利用してやればよく、表示が終われば、元の画面に戻すことはま、まぁできるでしょう。
それよりも、問題は呼び出すための番号を表示する場所がもう無いことです。

実は、うまい手があることに気がつきました。それを、次回紹介しようと思います。



つづく...


CasioBasic入門21 / 目次




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


 




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

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

関連記事

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

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

やす (Krtyski)

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


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

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

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR