дана строка: (a+b)*c-(d+e/(e+f))
нужно вычислить
----------------
Народ, кто-нибудь знает что-нибудь по-быстрее и по-лучше, чем алгоритм: польской нотации...
Module Module1
Sub Main()
Dim c As CodeDom.Compiler.ICodeCompiler = New Microsoft.VisualBasic.VBCodeProvider().CreateCompiler
Dim params As New CodeDom.Compiler.CompilerParameters
params.GenerateInMemory = True
Dim s As String = "public module DummyModule" & vbNewLine & "public function dummy (byval x as integer) as integer" & vbNewLine & "return x+7" & vbNewLine & "end function" & vbNewLine & "end module"
Dim results As CodeDom.Compiler.CompilerResults = c.CompileAssemblyFromSource(params, s)
Dim mymodule As Reflection.Module = CType(results.CompiledAssembly.GetModules()(0), Reflection.Module)
Dim funcparams() As Object = {5}
Console.WriteLine(mymodule.GetType("DummyModule").InvokeMember("dummy", Reflection.BindingFlags.InvokeMethod, Nothing, Nothing, funcparams))
Console.ReadLine()
End Sub
End Module
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59