- ベストアンサー
算術記号(+,-,/,*)を文字としてあらわして計算に使用する方法
ビジュアルベーシック初心者です。 タイトルでは誤解をうむと思いますが、やりたいことは以下のようなことです。 kigouという変数をstringsで宣言しそこに文字として算術記号を代入する。 例 kigou = "+" このkigou変数を用いて、実際の計算をする。 例 i = 1 kigou 2 この場合、kigou変数には+が代入されているので、iの値は3になる。 このように、kigouに入れる算術記号を任意にかえ、kigouという変数を用いて実際の計算をさせたいのですが、正しい記述方法などがわかりません。方法はありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 プログラムは、どれだけ多く使われるかによって、作るのにどれだけ手間をかけてもよいか、が決まるものです。例えば、それだけの需要があれば、次のようなプログラムを作っても採算がとれるはずです。 例えば、 keisan (2, +, 3) よりも一歩進めて、keisan ("(2 + 3) * 4") の値が 20 となるような function keisan を作ることは可能です。中級者以上の練習問題に適していると思います。
その他の回答 (3)
- Ishiwara
- ベストアンサー率24% (462/1914)
Function keisan (x, kigou, y) Select Case kigou Case "+" keisan = x + y case "-" keisan = x - y End Select End Function のようにすれば keisan (2, +, 3) で 5 が返されるのでは? (すみません、しばらくVBをやっていないので、合っているかどうか)
すいません。 Delphi、PHP、Perlしか経験がないのですが、VBって文を変数の中に入れても成立するんですか? No1の方が、 >kigouの内容によって計算が変わるので、 と書いているので、質問の流れをあわせると、・・・出来るのかな!? a := '<'; if 1 a 2 then ShowMessage('OK'); ってコンパイル出来ます? 私が知らないだけかもしれませんが、どの言語でも出来ない気がします。 (あー、特殊な言語は別で。世の中には特殊な言語があるようなので。^^; まえに、練習でDelphiで切符の4桁の四則演算(4つの数字を足して、0とか1にするやつ)を作りましたが、結局はいいアイディアが浮かばず、すべての例を挙げて、if文で条件分けするという、かっこの悪いものしか出来ませんでした。 Case文で分けてもいいですけど。 Delphiでも、文のなかに変数をいれて成立する方法があれば、その名前だけでも教えてください。
- shimix
- ベストアンサー率54% (865/1590)
#計算式が文字列で与えられたりすれば文字列のparseから考えないといけませんが・・ kigouの内容によって計算が変わるので、Select Case kigouでcase分けをするしかありませんね。しょっちゅう使うようなら関数にするかな・・。