Показать сообщение отдельно
  #5  
Старый 12.04.2012, 18:10
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Сообщение от Kingcss
2) И второй вопрос, каким образом можно реализовать интерпритатор (помоему так называется), тоесть я ввожу выражение: x^2 или (x-1)/(x^3+5) , а компьютер подставлял бы координату x, и считал y.
На данный момент работает только если, вручную писать в функцию.
Писал один раз построитель графиков. Анализировал формулу самым простым методом - методом обратной польской польской нотации (примеры в гугле). Докачал до синусов и логарифмов, потом забил. Предварительно делал ломовую подготовку: все знаки операций (+, -, *, /, ^, sin, cos, tg, log, ...) заменял в строке на их номера (+ на #1, - на #2,...). При подсчете уже брал очередной элемент, если символ #1-#20 - вызывал соответствующую функцию, если цифра - дописывал к операнду, если буква - брал соответствующую переменную/константу (поддерживало pi, e, x; pi я заменял на греческую "пи"). Вообщем всё наиболее простым способом. Знаю, что есть намного более продуктивные методы, нежели польская нотация, но тогда не было желания копаться в сложном.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием