プレイ日記
おちゃめ ochame_nako
「簡易関数電卓QSP」で使用できる拡張関数ライブラリ3、4、5を作りました。(3つともQSP) これによって、分数計算機能、タイマー機能、ストップウォッチ機能、ファイル操作機能などが新たに加わります。 (電卓本体と今まで作った拡張プログラムをすべてまとめてダウンロードできる公開キーは後述)
7そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
これが拡張関数ライブラリ3のリストです
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
これによってFRAC()関数とPS()関数が使えるようになります。 FRAC()は分数へと変換する関数です。 計算結果を分数で表記したい場合は計算式全体をカッコで囲ってください。 使用例 FRAC(0.12)・・・0.12を分数表記する FRAC(0.12)=3/25 FRAC(72/84)・・・72/84を約分する FRAC(72/84)=6/7
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
FRAC(3/4-5/6+7/8)・・・3/4-5/6+7/8を計算して分数で表記 FRAC(3/4-5/6+7/8)=23/24 ※分母が9999を超える場合は分数表記はできません  分数の乗算や除算を行う場合はFRAC((2/3)/(3/4))のように1つの分数ごとカッコで囲ってください。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
PS()関数は高精度な文字列変換PSTR$を使って計算結果を表記する関数です。 使用する際には計算式全体をカッコで囲ってください。 使用例 PS(PI())・・・PI()の値をPSTR$を使って表記する PS(PI())=3.1415926535897931 PSTR$は誤差ゼロで数値を文字列化できる反面で0.1が0.1000000000000001と表示されたり無駄に高精度な表示が行われて場合によっては計算結果が見にくくなることがあります。 普段はデフォルトのSTR$関数で表記してここぞというときにPSTR$関数で表記するという場合にリストを書き換えるのが面倒なのでこのような関数を用意しました。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
拡張関数ライブラリ4ではタイマー機能とストップウォッチ機能が加わります。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
これが拡張関数ライブラリ4のリストです
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
これによってTMR()関数とSTW()関数が使えるようになります。 TMR()関数はタイマー機能です。AボタンでスタートしてYボタンで停止できます。 使用例 TMR(10)・・・10秒のカウントダウンタイマー 設定は秒単位で行います。したがって、5分タイマーにしたい場合は300を設定してください。 引数は小数も受け付けます。 TMR(9.5)とした場合には最初の10が0.5秒で残りの9、8、・・・、2、1が1秒の計9.5秒タイマーとなります。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
STW()関数はストップウオッチ機能です。AボタンでスタートしてYボタンで停止できます。 使用例 STW(0)・・・0秒から始まるストップウオッチ 表示は秒単位のみです。 引数は基本的に0で使いますがSTW(5)とすれば5秒を起点としたストップウオッチとなります。 F2に前回の計測結果が入っているのでそれを引数に入れれば前回の停止時からの継続タイムを計測できます。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
タイマー機能は計算問題などの問題集(計算ドリル)で時間設定をして解きたい時に使うと便利でしょう。 ストップウオッチ機能は何秒で解けるかの計測に使うと便利でしょう。 ストップウォッチが常に0からのスタートではなく引数指定ができるようにしたのは問題集のページをめくったり、答え合わせをしたりというロスタイムを考慮しているためです。 一旦停止したら前回の計測の続きを計測するような仕様にするという方法も考えましたが、それだとリストが長くなるためQSPには収まらないし、停止中に電卓で他の作業をした時に前回の計測結果が失われてしまう可能性があるため現在のような仕様になっています。(要するにストップウオッチ専用ソフトではないため) なお、TMR()関数、STW()関数はSTW(0)+TMR(5)のように1回の計算式で複数入力すると正常な動作はしません。1つずつ入力してください。
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
拡張関数ライブラリ5でセーブやロード機能などが加わります
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
これが拡張関数ライブラリ5のリストです。
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
これによってKEYS()関数とKEYL()関数とKEYC()関数とFN()関数が使えるようになります。 KEYS()関数はファンションキー(F2~F5)の内容をファイルとして保存する関数です。 使用例 KEYS("ABC")・・・ファイル名「ABC」でセーブする F2~F5は1つのファイルとして一括保存されます。 KEYS()関数はファイルとして保存されているファンションキー(F2~F5)の内容を読み出す保存する関数です。 使用例 KEYL("ABC")・・・ファイル名「ABC」でロードする
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
KEYC()関数はファイル内容を確認する関数です。 使用例 KEYL("ABC")・・・ファイル名「ABC」の内容をチェックする。 この簡易関数電卓で使用可能なファイルは「データ←データ←データ←データ←」のように4つのデータが「←」で区切って保存されているTXTデータのみです。 セーブ時はこの形式で保存されますが、EDITモードでこの形式で書いたものをセーブしても読み込むことができます。(←は改行記号ではなく矢印です) FN()関数は任意のファンクションキーにデータを書き込む関数です。 使用例 FN(2,"2+3*4")・・・F2に「2+3*4」を書き込む
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
よく使う計算式などを書き込んでおくと便利です。 F1~F5の範囲で設定できますが、F1は計算式や関数を入力するとすぐに上書きされてしまうため注意が必要です。 F2は戻り値を設定しない関数を使用時は上書きされません。 1つのファンクションキーには128文字まで書き込むことが可能です。 128文字を超えた場合には最後の128文字分になります。
0そうだね
プレイ済み
返信[15]
親投稿
おちゃめ ochame_nako
公開キー【 Y343QP3F 】 簡易関数電卓QSP本体+拡張関数ライブラリ1~5+ゲーム「CAVE QSP」+PSTR$のフルセット版の公開キーです。(ファイル名:1GQ_CALC) ファイル名は前回と同じですが、上書き保存しても問題ありません。 簡易関数電卓QSP本体、拡張関数ライブラリ1についてはこちらを参照 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTqq1Rhmw 拡張関数ライブラリ2、ゲーム「CAVE QSP」についてはこちらを参照 https://miiverse.nintendo.net/posts/AYIHAAAEAACHVRTq5Yy6bQ PSTR$についてはこちらを参照 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTp-ZVMIg
0そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
QSPで作ったプログラム「簡易関数電卓QSP」を元にQSP作ったライブラリなどを追加することによってどんどん機能拡張していくという過去に誰も実践したことがない(というか、やろうとする人もいない)ことをやってみたのですが、QSPづくしということで個人的には結構楽しむことができました。 ちなみにRVAL関数のお陰で元になっている「簡易関数電卓QSP」のリストには一切手を加えずに機能を拡張しています。 QSPは1作品当たりが非常にコンパクトなのですが、フルセット版はファイルサイズが12KBくらいになりました。 といっても、大半(約10KB)がリスト末尾に記載のマニュアルなのですが、簡易マニュアルのつもりが積み重なるとかなりの量になってしまいました。 プチコン3号単体でここまでの日本語入力ができたのもりゅうまごさんのRMG IMEのお陰です。
0そうだね
プレイ済み
返信[17]
親投稿
おちゃめ ochame_nako
今回でこの簡易関数電卓QSPの拡張は一段落ついたので次は気が向いたときに行う予定です。(QSPでできそうな追加機能案があればコメントに書いてくれたら作るかも) 自分で機能を拡張してみたいという人は適当な自作関数を作れば良いだけなのですが、注意しなくてはならないのは基本的に戻り値が数値1つの関数にのみ対応しているということです。 戻り値を設定しない関数を作りたい場合は、「RETURN 戻り値」の部分を「L=0:RETURN 0」としてください。 ただし、戻り値を設定しない関数や関数内でPRINTによる表示を行っている関数を複数個同時にまとめて入力すると正しい動作が行える保証はできません。 とはいえ、ほとんどが表示絡みの問題なのでKEYC("ABC")+KEYL("ABC")のようにファイル「ABC」の内容を画面表示とロードを同時に行うというようなことは可能です。(
0そうだね
プレイ済み
返信[18]
親投稿
おちゃめ ochame_nako
拡張関数ライブラリ3のバグ修正と仕様変更を行いました
0そうだね
プレイ済み
返信[19]
親投稿
おちゃめ ochame_nako
◎バグ修正 FRAC()関数において分数で表記できない場合は値が0となっていたのを修正しました。 ◎仕様変更 FRAC()関数において正常な表示が行える分子の上限値が999999だったのを2147483647までに向上しそれを超えたら小数表記にしました。 分母は上限10000だったのを上限100000に変更しました。 PS()関数をFRAC()関数と併用できるようにしました。 (※PS(FRAC())のようにして使用する)
0そうだね
プレイ済み
返信[20]
親投稿
おちゃめ ochame_nako
拡張関数ライブラリ4のTMR()関数で1フレーム余分にカウントしていたので修正しました
0そうだね
プレイ済み
返信[21]
親投稿
おちゃめ ochame_nako
簡易関数電卓QSPの最新バージョン(9/8現在)  公開キー【 1D2E3K4E 】(ファイル名:1GQ_CALC) 上記の修正や変更を行ったフルセット版の公開キーです。 上書き保存をして使用してください。
0そうだね
プレイ済み