Petit computer 3
おちゃめochame_nako
10/13/2017 12:42 AM ·Spoilers
連立方程式を解くプログラムを作りました。X、Yを使った2つの式(どんな複雑な式でもOK)を入力するだけで解を分数で表示します。
Share this Post
Comment
This post has no comments.
-
-
-
10/13/2017 7:26 AM ·Spoilers
度々 式を評価 という言葉を目にして来たけど この式すげー 88888 と プログラムで褒めてくれる様なモノだろう と未だに思ってます。
Yeahs2Played -
10/13/2017 7:46 AM ·Spoilers
NAGIさんへ RVAL()関数は非常にサイズが小さくプチコン3号の(自作関数を含む)すべての関数、演算子、システム変数、定数リテラルに対応しているというメリットがある反面で標準では変数には対応していない、基本的にスロット0での動作になってしまうというデメリットもあります。 前者のデメリットは簡易関数電卓やこの連立方程式を解くプログラムのように特定の変数のみ対応させることは可能で後者のデメリットはSLOT()関数を併用することで対応が可能です。 あとRVAL()関数は仕様上プログラムスロットを動作用とは別に作業用に1つ使ってしまいますが、それがどうしても気になるならばMIKIさんのYYEVAL()をお使いください。 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTuNIUIpQ
Yeahs1Played -
10/13/2017 7:47 AM ·Spoilers
MIKIさんのYYEVAL()のプログラムを見れば真っ当な方法で式を評価するというのがどれだけ大変なのかが分かると思うし、これを見た後だとRVAL()がいかに単純なものかが分かると思います。 《 仕様比較表 》 RVAL() YYEVAL() 自作関数 ○ × 組み込み関数 ○ ○ 演算子 ○ ○ システム変数 ○ × 定数リテラル ○ ○ 変数 × ○ 速度※ 147μs 241μs 特長 超コンパクト プログラムスロットを別途使用しない ※速度比較は"1+1"で行いましたが、複雑な式でも速度が落ちにくいRVAL()と比べてYYEVAL()はリアルタイムの構文解析のため複雑な式だとどんどん遅くなります。("1+1+1+1+1"だと156μsと575μsとなる)
Yeahs1Played -
10/13/2017 7:49 AM ·Spoilers
これを見ての通りRVAL()とYYEVAL()はそれぞれメリット、デメリットが異なるのでどちらが良いかというより自分に合った方を使うと良いです。 RVAL()は自作関数に対応しているというメリットを活かして簡易関数電卓QSPに自由な機能を追加させたりOSもどきとして活用したりということも可能となりました。(特定の変数を数個対応させるだけならばわずかな改造だけで済むので簡単だし)
Yeahs1Played -
10/13/2017 7:49 AM ·Spoilers
こういちさんへ RVAL()関数はメリット、デメリットの両面があり使いどころが難しい関数ですが、SLOT()と組み合わせることで使いどころがかなり増えますからね。 私は今までに様々な自作関数を作ってきましたが、合わせ技でここまで便利になる自作関数はなかなかありません。(合わせ技前提のSUFFIX()関数は例外ですが) ちなみに私が良く使う自作関数はRVAL()、SLOT()、PSTR$()、SUFFIX()あたりですね。 TIMER()、NEW3DS()、INFNAN()などもよく使っていましたが、MILLISEC、HARDWARE、CLASSIFY()登場で不要になりました。 Miiverseが無くなると今まで作った自作関数の大半が検索不能になってしまうためそれまでには自サイトの方で今まで作った自作関数をまとめたいと思います。
Yeahs0Played -
10/13/2017 7:51 AM ·Spoilers
ちなみにINFNAN()関数はこんな簡単なプログラムです。 DEF INFNAN(A) RETURN (A!=A)+(A*0!=A*0) END これでCLASSIFY()と同様にinfならば1、nanならば2を返すことで判定可能です。興味があれば、なぜ、そのような動作になるのかを考えてみると良いかもしれません。
Yeahs1Played -
10/13/2017 8:06 AM ·Spoilers
そひさんへ 式の評価という観点からすると私のRVAL()よりMIKIさんのYYEVAL()の方が遙かにすごいことをしています。 あくまで私の方は一発芸みたいなもので式の評価そのものはプチコン3号が行ってくれているのでそれを活用させてもらっているだけにすぎません。 「工夫次第でこんな短い処理でこんなことができる」というのを作るのが私にとっての喜びであるため私自身はこれで問題ないと思っていますが。(というか、昔ポケコンで真っ当に式の評価をするプログラムを書いたことがあるだけに真っ当なものは大変なのが分かっていて作る気がしなかった)
Yeahs0Played -
10/13/2017 8:09 AM ·Spoilers
個人的にはRVAL()のプログラムには特に問題はないと思っているのですが、ver.2.0を作った時にはエラーチェックがないからセキュリティ上の問題があると意味不明な意見をもらいました。 当時から思っていましたが、今見てもこの大量のコメントはギャグで言っているとしか思えません。 https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTrtY_eMQ EVAL系は脆弱性の元となるため一般的には使用しないことが推奨されているけどプチコン3号においてはこれは当てはまりません。
Yeahs0Played -
10/13/2017 9:30 AM ·Spoilers
要素数の異なる複数の配列をサフィックスで一括管理するスクリプトを書けないかと思ってたのですが(疑似オブジェクト指向的な)、別スロットを使うという性質上変数を使うのは難しいようですね。YYEVAL()のほうはポリゴンモデルの描画速度向上という目的なので難しいかも
Yeahs0Played -
10/13/2017 10:01 AM ·Spoilers
NAGIさんへ プチコン3号はグローバル変数でもプログラムスロットごとに別に管理されているためRVAL()のように別スロットで動作させる場合にはスロット間の値のやりとりが必要になります。 これは最初から使う変数が決まっている場合は簡単に対応が可能であるもののそうでない場合には構文解析が必要になり「ユーザーの手による構文解析が不要であるため非常にコンパクトで式の評価プログラムとしては比較的高速」というRVAL()のメリットが台無しになってしまいます。 速度面を考えると普通に記述するのが一番だと思います。
Yeahs1Played -
10/14/2017 6:48 AM ·Spoilers
REN立方程式を解くプログラム… キルヒホックの第二法則を使って回路を解くときに便利そうですね。 (二元一次にするところまでは自力で)
This comment contains spoilers.
Yeahs2Played -
-
10/14/2017 7:57 AM ·Spoilers
こういちさんは電子工学好きなんですか?さいきん3DSラ○ン製作しようとしてみごとに失敗しました
This comment contains spoilers.
Yeahs1Played -
10/14/2017 8:02 AM ·Spoilers
hanzoさん はうぅ。間違えた。恥ずかしいですぅ。 NAGIさん 電子工学ももちろん好きですが、最近一番はまっているのは無線工学です。
Yeahs2Played -
10/14/2017 9:16 AM ·Spoilers
前述の指摘をネタバレにせず、恐縮です。 「ラジオの製作」から「マイコンBASICマガジン」がスピンオフした過渡期を覚えている者としては、電子・無線工学と、コンピュータープログラミングの相性が抜群なのは、ごく自然なことに思えます。
Yeahs1Played -
-
10/14/2017 9:30 AM ·Spoilers
電子工作の話題で盛り上がっていますね~ 私は電子工作はあまり得意ではないですが、RVAL()は様々な計算プログラムに活用できると思います。
Yeahs1Played
Add a Comment
You must sign in to post a comment.
Sign in using a Nintendo Network ID to connect to users around the world by writing posts and comments and by giving Yeahs to other people's posts. You can create a Nintendo Network ID using your Wii U console or your system in the Nintendo 3DS family.
Report Violation to Miiverse Administrators
You are about to report a post with content which violates the Miiverse Code of Conduct. This report will be sent to Nintendo's Miiverse administrators and not to the creator of the post.
Report Violation to Miiverse Administrators
You cannot report posts made automatically by a software title.









