Разбор строки

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

fulleren
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 04.07.2003 (Пт) 13:08
Откуда: Moscow

Разбор строки

Сообщение fulleren » 08.07.2005 (Пт) 9:47

дана строка: (a+b)*c-(d+e/(e+f))
нужно вычислить
----------------
Народ, кто-нибудь знает что-нибудь по-быстрее и по-лучше, чем алгоритм: польской нотации...
I fancy to write a programme

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.07.2005 (Пт) 11:40

Я знаю :-)
Подключить движок VBScript, пусть он считает.
Может, в дотнете и что-то собственное есть.
Но самому писать разбиралку точно незачем :-)
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.07.2005 (Пт) 11:53

Кидаем камни в огород? :)


Код: Выделить всё
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
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList