none
vb中如何编一个解类似数学题的程序:x=1,y=2 求的题,就是如和让其代入并计算 RRS feed

  • 问题

  • 有两个输入框,一个输入x的值,另一个y的值
    第三个是算式  类似这个(x+y)/(x-y)
    然后一个msgbox输出结果
    2010年3月4日 4:52

答案

  • Dim objScrCtl As Object
    Dim strCode As String
         Set objScrCtl = CreateObject("MSScriptControl.ScriptControl")
         objScrCtl.Language = "VBScript"
         
         strCode = "Sub Main()"
         strCode = strCode & vbCrLf & "Dim x,y"
         strCode = strCode & vbCrLf & "x=1"
         strCode = strCode & vbCrLf & "y=2"
         strCode = strCode & vbCrLf & " MsgBox (x + y) / (x - y)"
         strCode = strCode & vbCrLf & "End Sub"
        
        objScrCtl.AddCode strCode
        
        objScrCtl.Run "Main"
    
    
         
         Set objScrCtl = Nothing

    http://feiyun0112.cnblogs.com/
    2010年3月4日 7:47
    版主

全部回复

  • Dim objScrCtl As Object
    Dim strCode As String
         Set objScrCtl = CreateObject("MSScriptControl.ScriptControl")
         objScrCtl.Language = "VBScript"
         
         strCode = "Sub Main()"
         strCode = strCode & vbCrLf & "Dim x,y"
         strCode = strCode & vbCrLf & "x=1"
         strCode = strCode & vbCrLf & "y=2"
         strCode = strCode & vbCrLf & " MsgBox (x + y) / (x - y)"
         strCode = strCode & vbCrLf & "End Sub"
        
        objScrCtl.AddCode strCode
        
        objScrCtl.Run "Main"
    
    
         
         Set objScrCtl = Nothing

    http://feiyun0112.cnblogs.com/
    2010年3月4日 7:47
    版主
  • 这个算是不一定是(x+y)/(x-y)
    而是让我们输入
    2010年3月4日 11:13
  • 你好!
         如果你的要求是输入任何数学表达式都可以处理,这样的功能不是很好实现,你需要写代码来解析各种情况,比如括号匹配,运算符号等,这样的功能实际上和自己编写一个编译器类似,不是很好实现!
         如果真的想实现,可以参考这里的实例:
    http://topic.csdn.net/u/20080320/20/730421d6-ec5f-4c3c-9a72-52455b294ac3.html
    周雪峰
    2010年3月4日 13:30
    版主
  • 你好,

    这个问题需要用到解释器原理,也就是编译器里最基本的组件,当人们输入任何数学运算式的时候都可以解析并算出结果,至于x,y你只要替换就行了。这个编写比编译器里的解释器容易点,这里有一篇文章说到如何计算任意表达式,不过用C++写的,你可以参考一下。
    http://www.vckbase.com/document/viewdoc/?id=1880

    Sincerely,
    Kira Qian
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    2010年3月8日 8:25