![]() |
Динамическое вырадение
Подкиньте пожалуйста идею.
есть стринг, типа "y=3*x+5" То есть функция. Как сделать так, чтобы этот стринг превратился в настоящую функцию - выражение, готовую к расчётам? Скажем, что-бы я делал иксу риплейс на число, и на выходе получал-бы игрек - число? Спасибо |
прототипы юзать?
|
Задачу дают приматам на первом курсе. Строку надо разложить в какую-то там форму записи, вроде как 5+3*x => 3,x,*,5,+ а потом доставать по элементу и смотреть: если операнд - складывать в стек, а если операция - выполнять действия над двумя последними операндами в стеке и результат класть туда же. до начала выполнения поменять в очереди все переменные на их значения - и вперед.
|
Если тебе нужно на уровне + и *, то можно разбить в массив по знакам - и +, затем умножать или делить.
|
|
Thank's to everybody!
|
| Часовой пояс GMT +4, время: 03:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.