プレイ日記
おちゃめ ochame_nako
このFRAC関数は分数計算を行える自作関数です。 例えば FRAC(3/4+5/6-7/8) で 17/24 、FRAC(0.12+7/25) で 2/5 と計算してくれます。 このように小数と分数が混じった計算でも約分された分数の形で結果を出してくれます。
7そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
この自作関数FRACは私が作った簡易関数電卓QSPの拡張関数となっています。(ver.2.0専用) https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkyf3cD3A したがって、簡易関数電卓QSPを使えば非常に簡単に計算ができますが、次のように変更してRVAL関数を使用することで簡易関数電卓QSPを使用しなくてもこのFRAC関数を単体で使用することが可能になります。(このFRAC関数は皆さんの自作プログラム内で自由に使用してOK)
1そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
COMMON DEF FRAC(A$) ←AをA$に変更  A=RVAL(A$) ← この行を追加  VAR B,C,D%,I  WHILE !C && I<1E5  I=I+1  B=ROUND(I*A)  C=B*(ABS((B/I-A))<1E-12  WEND  IF C && B<POW(2,31) THEN D%=B:R$=STR$(D%)+("/"+STR$(I))*(I>1) RETURN R$*!!D%+STR$(A)*!D% ← 戻り値部分をAからR$*!!D%+STR$(A)*!D%に変更 END このFRAC関数を簡易関数電卓QSP上ではなく単体で使用する場合は FRAC("3/4+5/6-7/8") や FRAC("0.12+7/25") のようにして””で式を囲ってください。
1そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
RVAL関数に関してはこちらを参照 https://miiverse.nintendo.net/posts/AYMHAAADAAB2V0fZKWc_BQ 原理はプログラムを見てのように小数値を元にして一定範囲の誤差に収まる分数を力任せで求めているだけです。(ここで小数値を計算するのにRVAL関数が力を発揮している) そのため分母が大きい値はNew3DSでないと少し時間がかかります。 なお、分母の最大値は100000、分子の最大値は2147483647です。この範囲で表記できない分数は分数表記はキャンセルされて小数値を返すため注意が必要です。(分母の最大値は10万ではなく100万でも1000万でも可能だけどNew3DSでも時間がかかるため上限を10万とした) ちなみにこのFRAC関数の元になったのは昔作ったポケコンプログラムです。(ポケコンだと速度が遅すぎるため上限を999にした)
1そうだね
プレイ済み