Универсальная функция для развернутого вычисления по формуле

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
yaama
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 07.03.2007 (Ср) 21:59

Универсальная функция для развернутого вычисления по формуле

Сообщение yaama » 18.03.2007 (Вс) 9:07

Уважаемые обитатели улиц Visual Basic!
Как рационально с точки зрения построения алгоритмв подойти в Бейсике к следующей задаче?
Пишется функция следующего вида.

Код: Выделить всё
Function xxx(x1 As Double, x2 As Double, x3 As Double ...xn) As String
Dim xxx1 As Double

xxx1=...

'xxx1=выражение произвольного вида, производящее
'арифметические действия над переменными х1, х2, x3...xn’

xxx = ”xxx =” & Искомая функция(символьное выражение для xxx1) &   “=” &  Str(xxx1)
End Function


где «Искомая функция» - возвращает строковое выражение, представляющее развернутую формулу для xxx1 с подставленными числовыми значениями для переменных х1, х2, x3...xn.
Например xxx1 = (x1+x2)/(x3^3-2*x4)
x1 = 5, x2 = 6, x3= -4, x4 = 1.25
Искомая функция(“(x1+x2)/(x3^3-2*x4)”)= “(5+6)/((-4)^3-2*1.25)”

Возможно данная задача уже кем то из легиона профессионалов basic была решена?
Моего опыта хватает только на нагромождение конструкций типа If ... Then, но как мне кажется это нерациональный путь и я к пенсии таким образом свою задачу не решу.

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

Сообщение GSerg » 18.03.2007 (Вс) 11:04

Не совсем понятно, в чём вопрос, но если он в том, как рассчитать формулу из строки, то это баян, иди в Кирпичи и бери любой эвалюатор.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.03.2007 (Вс) 11:28

GSerg писал(а):Не совсем понятно, в чём вопрос, но если он в том, как рассчитать формулу из строки, то это баян, иди в Кирпичи и бери любой эвалюатор.


Нафиг все эти эвалюторы - есть же ScriptControl на котором можно делать практически что угодно...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

yaama
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 07.03.2007 (Ср) 21:59

Сообщение yaama » 18.03.2007 (Вс) 11:47

GSerg писал(а):Не совсем понятно, в чём вопрос, но если он в том, как рассчитать формулу из строки, то это баян, иди в Кирпичи и бери любой эвалюатор.


я находил поиском строковый калькулятор, но это не совсем то.
Это скорее обратная задача. т.е. это функция, анализирующая формулу и возвращающая строчную запись этой формулы с подстановкой в нее чисел. Я немного неправильно записал, правильно будет:

Код: Выделить всё
Искомая функция(символьное выражение для xxx1 As String, x1..xn As Double) As String.



Я не думаю, что это злостный баянище, предварительно осведомлялся у доморощенных вбистов.
Вообще я хочу решить или найти кирпич для этой задачи для VB и VBA.

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 18.03.2007 (Вс) 22:50

Помойму кроме парсинга строки здесь ничего такого нет...
А как оно на самом деле - Х.З. !


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot и гости: 53

    TopList