こんにちは。電卓を作っている者です。
階乗機能の実装ができましたが、あるコードがある場合とない場合において
動き方が変わってしまうというような状態になってしまいました。
具体的に申しますと、
VB
1 ... 2 'ボタンを押した際、一回目なら「fact(直前に押した数字)」2回目なら「fact(fact(直前に押した数字))」と増やしていく 3 If facts = 0 Then 4 If ope = "C" Then 5 Oncetrage = String.Format("fact({0})", NumberHold) 6 DisplayPassage.Text = Oncetrage 7 Else 8 Oncetrage = String.Format("fact({0})", NumberHold) 9 DisplayPassage.Text &= Oncetrage 10 End If 11 Else 12 If ope = "C" Then 13 Oncetrage = String.Format("fact({0})", Oncetrage) 14 DisplayPassage.Text = Oncetrage 15 Else 16 Dim posPre = DisplayPassage.Text.LastIndexOf(Oncetrage) 17 DisplayPassage.Text = DisplayPassage.Text.Remove(posPre, Oncetrage.Length) 18 Oncetrage = String.Format("fact({0})", Oncetrage) 19 DisplayPassage.Text &= Oncetrage 20 End If 21 End If 22 23 '初期化 24 Ans2 = 0 25 FactValue = 0 26 facts = 1 27 ★beforeIn = "C"★ 28 NumberHold = "C"
★マークで囲っている構文をそのまま残して処理されると
階乗を行った際、例として「8!→9!」とすると
8の階乗の答えが出た後に初期化され9の階乗の答えが出ます。
初期化といっても0に戻らずそのまま8の階乗の続きではなく
一旦区切って9の階乗が出ます。
しかしこの構文があると次のことが起きてしまいます。
・階乗を含めた計算式の時(例:5!+7!-3や2!*3-4!等)2回目の階乗した数が計算式に含まれず
結果が出る
逆にこの構文がないと
・ある数字を階乗し、そのほかの数字を押すと階乗された結果の一番最後に数字が追加される
例 5! → 120と結果が出た後に1を押すと電卓上には1201と表示される
・階乗を含めた計算式の時(例:5!+7!-3や2!*3-4!等)2回目以降の階乗した数が計算式に含まれ
正しい結果が出る 例: 5!+7!-3=5157
この構文の回避方法はどのようにすればよいでしょうか?
あまり説明がうまくできないのでわかりにくいかと思いますが
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。