プレイ日記
おちゃめ ochame_nako
大喜利にも投稿した簡易関数電卓QSP ver.2.0を公開します。これはQSPながら四則演算だけではなくプチコン3号のすべての関数や演算子が使える関数電卓です。 大喜利には他のツールとセットで投稿しました。
11そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
これが簡易関数電卓QSP ver.2.0のプログラムです。 公開キー【 E3SXDD 】、ファイル名「1GQ_CALS」
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
これは式を入力することでプチコン3号で演算可能な演算子、関数ならばあらゆる計算も可能にしてくれるというものです。 DIRECTモードで計算するより「簡単で使いやすい」「表示が見やすい」「拡張プログラムによって様々なことができる」というメリットがあります。 例えば計算結果を表示をする場合においてDIRECTモードだと絶対値が小さい数字は1/987654321を計算したら0になってしまいますが、この簡易関数電卓QSPでは1.0125e-09とちゃんと結果を返します。 またPOW(2,1023)(2の1023乗)のような大きな結果は末尾に0が羅列して非常に分かりづらいですが、簡易関数電卓QSPでは8.98847e+307となり308桁の数であることが一目で分かります。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
この関数電卓QSPはプログラムスロット0でのみ正常に動作します。 例えば、2+3*4を計算する場合は2+3*4という式を入力するだけで2+3*4=14という結果を表示します。 ちなみに入力した式はF1、結果はF2に入っています。 プチコン3号で演算できない式を入力したらエラーが出てしまいますが、RUNし直してF1を押して式を訂正するだけでいいのでお手軽です。 結果を再利用する場合もF2を押せばいいです。 F2に入っている結果は直前の計算の結果ですがBボタンを押しながらAボタンを押すと結果をF3に入れることができるため数回前の結果を再利用したい場合に便利です。
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
Xボタンを押しながら式を入力すると変数Xにその式の値を代入できます。 「2+3*4 Xボタンを押しながらAボタン」とすると2+3*4=Xと表示されます。 Xに入っている値を確認したい場合はXを入力すれば良いです。 Xはただの変数なのでそれを使って自由な式を計算可能です。 あらかじめファンクションキーに式を入れておけば数式記憶機能付きの関数電卓としても活用できます。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
純粋なQSPで上記のことが実現できるのですが、オプションの拡張関数ライブラリ(これもQSP)を追加すれば分数計算をしたりグラフ機能を追加したりとかできます。 他にもお絵かき機能、タイマー機能、カレンダー機能などたくさんの機能があり、CUIによるOSもどきのような感じになっています。(拡張関数ライブラリはフルセット版に標準添付) 前作(ver.1.0)と何が変わったのかというとまずは前作が69文字もリスト短縮が可能だったため一から作り直しました。これによって、変数への対応を可能にしました。 あとは拡張性を高めました。 前作では自作関数では数値を返す関数にしか対応してなかったのですが、今回は擬似的に文字列を返すことを可能にしてさらに自作関数側からシステム部分へのアクセスの選択肢を増やしました。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
拡張性というのがどれくらい変わったのかの一例として簡易関数電卓 ver.2.0用に数値を3桁区切りにするCOMMA関数を作ってみました。 ちなみにこれはRETURN 0の部分をRETURN R$にすれば簡易関数電卓QSP以外のプログラムでも活用可能です。(R$はグローバル変数を想定している)
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
これと同等の動作のものを旧バージョンのver.1.0でも動作するようにしたらこうなります。(ver.2.0でもそのまま動きます) 異なるのは最後の部分でver.1.0では文字列を戻り値にできないためL=0の時に結果が非表示になるのを利用して関数内で結果表示を行うという処理によって強引に実現していました。 この結果表示部分は拡張関数ライブラリのANS命令で用意しているのですが、標準対応とそうでないものの差は大きいと思います。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
このCOMMA関数は現在の拡張関数ライブラリには含まれていないのですが便利そうなので次回以降の更新の時に組み込みたいと思います。 本来ならば用意しているすべての機能を搭載したフルバージョンを公開したいところですが、まずはQSP単体でどこまでのことができるのかを知ってもらうために今回は電卓のシステム部分となる単体バージョンを公開しました。 拡張関数プログラムを含んだフルバージョンは自サイトの解説ページができ次第公開したいと思います。 しかし、開発が思った以上に遅れたためせっかく募集を掛けた機能に関してはまだ非搭載です。 せっかく公開を延ばすならばそれを搭載するまでにするという方法もありますが下記のように1つの機能で1ヶ月以上かかる可能性があることを考えると微妙ですね。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
簡易関数電卓QSPは大喜利の締め切りギリギリになってようやく完成した(システム部分は数ヶ月前にすでに完成済み)のですが、その原因となったのはお絵かき機能の完成まで1ヶ月以上かかったためです。 というのも簡易関数電卓QSPの拡張機能は1つあたりの機能はすべてQSPに収まる範囲内で実現というのがコンセプトなので私が用意していた仕様をQSPで実現するのが困難だったためです。 妥協して公開するという手もありましたが、7回もの作り直しの後でようやく当初予定していた機能をすべてQSPで搭載できたので締め切りギリギリに間に合いました。
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
カラー対応のお絵かきソフトはQSPとしては限界となるSIMPLE PAINT QSPをすでに作っていてそれを搭載すれば良いということもありますが、単体起動できるQSPとは違い簡易関数電卓の1機能として働くQSPの拡張であるため普通のQSPよりもさらに様々な制約が制約が出てくるためです。 それに普通のお絵かき用に作ったSIMPLE PAINT QSPとは異なりこの簡易関数電卓QSPのお絵かき機能は主に図とか描くのを想定しているためです。
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
私が作ったお絵かき機能がどんなものかを簡単に書いてみるので興味ある方は実際にこれを元にQSPで作ってみてください。(約4倍のサイズであるOSPならば楽勝で作れるはず) (1)主に図を描いたりするときに使いたいので色数はそんなに要らない代わりにすぐに目的の色を選択できるようにしたい (2)線の太さは普段は1ドット幅でいいけど塗ったりするのにペンの太さは変えられるのが望ましい。 (3)消しゴムに関しては太さが変えられるようにしたい(1ドット幅固定でも大きな幅で固定でも使いにくい) (4)キャンバスの全消し機能は欲しいけどその際には誤爆がないような操作にする。 (5)セーブやロード機能は欲しい。ただし、PETIT PAINT QSPやSIMPLE PAINTのような起動時に自動ロードでは複数の機能を切り替えて使用する簡易関数電卓QSPでは不適なのでロードは操作時のみ行うようにする。
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
あとこれはお絵かき機能だけではなく簡易関数電卓QSPの拡張機能すべてで行っていることだけどYボタンでシステムに戻れるようにする(自作関数のRETURNを行う)、操作画面は元に戻す(DISPLAY 0、XSCREEN 0を実行する)ということも行うことを必須としています。 これに関してはYボタン押しているかどうかはY()関数で取得可能(他のボタンも同様)、下画面の使用はGMODE 1、画面を元に戻すにはGENDで可能といった便利な関数や命令を用意しているためそれほど問題はないとはいえ少なくとも単体QSPよりは若干リストの長さで不利になると思います。 このお絵かき機能を含めたフルセット版は近日公開の予定です。
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
この簡易関数電卓QSPで分数計算を可能にする拡張関数FRACです。 詳しい使い方や動作原理等はこちらのリンク先を読んでください。 https://miiverse.nintendo.net/replies/AYMHAAADAAB2V0fZhCPUUw ちなみに簡易関数電卓QSPのフルバージョンではこのFRAC関数を同梱しています。 フルバージョンは現時点ではver.1.0は公開していますが、ver.2.0は依然として未公開です。(マニュアルが出来てないため)
0そうだね
プレイ済み