Показать сообщение отдельно
Старый 20.10.2011, 14:58   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Символьное интегрирование

Первое что в голову приходит, так это задача разбить строку на блоки, исходя из приоритетов по вычислениям.
Если начать с начала "2*x+sin(e^(cos(x*x)))", то будет:
[1] = 2*x
[2] = [1] + [3]
[3] = sin([4])
[4] = e ^ [5]
[5] = cos([6])
[6] = x * x
Исходя из скобок и т.п., можно вычислить приоритеты. Если по пути выражения бало найдено выражение со скобками, то нужно повысить приоритет относительно контейнера выражений в котором он находится. Каждое выражение может быть контейнером других, и приоритеты локальны (в скобках и т.п.).
Разбив так вот, можно уже интерпретировать в мат функции, т.к. компоненты намного проще.
Далее уже двигаться далее, тут уже математика, я хз в этом..

Кто-то у нас на форуме делал подобное..
(Offline)
 
Ответить с цитированием