![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Математическое приложение - разбор формулы
Leshas © (2006-04-17 14:17:00)Здравствуйте!
Есть Edit, в который я ввожу функцию.
Необходимо по этой функции постоить график.
Как построить график знаю, как разобрать формулу - приблизительно представляю: прочитал статью http://www.cyberinfo.ru/cgi-bin/view.cgi?id=269&cat_id=5&print=1
В этой статье есть функция rasstr(a).
У меня вопрос: как эту функцию реализовать?
P.S. Функции в Edit будут простые: y=x, y=2+x, y=2*x+3 и т.п.
kilkennyCat (2006-04-17 16:23:00) [1]
> Leshas © (17.04.06 14:35) [6]
Это был ответ на "как перевести строку в число".
Юрий Зотов (2006-04-17 16:09:00) [2]> Leshas
Ежели подходить к делу умеючи, то интерпретатор математических выражений (строчный калькулятор) пишется максимум за один день. Причем полный, со всеми операциями (включая возведение в степень), с поддержкой скобок (в том числе, вложенных), со встроенными функциями и всем прочим. Кстати, можно обойтись и без польской записи.
А чтобы подойти к делу умеючи, проштудируйте вот эту статью:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=10
Leshas (2006-04-17 15:01:00) [3]Ega23, а что скажешь относительно статьи (ссылка в самом 1-ом сообщении)?????
Ega23 (2006-04-17 15:00:00) [4]
> Хм... это, к сожалению, я не знаю, поэтому конкретно это
> можно изучить))
А это и есть приоритетность операций.
Сергей М. (2006-04-17 15:00:00) [5]
> Leshas © (17.04.06 14:39) [9]
http://www.activeserverpages.ru/iishelp/VBScript/htm/VBStoc.htm
Leshas (2006-04-17 14:55:00) [6]
> Чему равно FE40 and not (A2B1 or 5D) xor AEC
Хм... это, к сожалению, я не знаю, поэтому конкретно это можно изучить))
Ega23 (2006-04-17 14:44:00) [7]
> Про приоритетность операций всё понятно с начальных классов,
Уверен?
Чему равно FE40 and not (A2B1 or 5D) xor AEC ?
(Это из уроков Юрия Зотова, http://www.delphikingdom.com/lyceum/seminar.asp?ID=1)
Leshas (2006-04-17 14:39:00) [8]
> На то есть, к примеру, VBScript.
> И изобретать при этом ничего не надо
Где про это можно почитать?
Сергей М. (2006-04-17 14:38:00) [9]
> Leshas © (17.04.06 14:35) [6]
На то есть, к примеру, VBScript.
И изобретать при этом ничего не надо.
Leshas (2006-04-17 14:38:00) [10]Сергей и "народ", извините, что я вас всех опустил ниже плинтуса, назвав функции "простыми" вместо "линейных" с одной целью, чтобы меня поняли.
Для начала мне нужно написать разбор линейныхфункций))
Ega23
Спасибо!
Посмотрю, что есть по "Польской записи". Про приоритетность операций всё понятно с начальных классов, а вот парсер никогда не писал.
Leshas (2006-04-17 14:35:00) [11]kilkennyCat, а если Edit.Text = " 25+10*2" и я воспользуюсьStrToInt, StrToFloat, то результат будет 45??? Хм... мне кажется, что будет ошибка... или я не прав?
Сергей М. (2006-04-17 14:34:00) [12]
> иногда приходится объясняться именно так
Ты уж местный народ совсем до плинтуса опустил) ... постыдился бы)
Судя по вопросу речь идет о построении графиков линейныхфункций ?
Ega23 (2006-04-17 14:32:00) [13]
> Как перевести строку в число, чтобы выполнились математические
> операции?
1. Изучить и понять то, чем является т.н. "Польская запись"
2. Изучить приоритетность операций.
3. Написать парсер простых функций.
В своё время у меня на всё на это ушло где-то 2 дня.
kilkennyCat (2006-04-17 14:28:00) [14]strtoint, strtofloat
Leshas (2006-04-17 14:27:00) [15]Да, Сергей, иногда приходится объясняться именно так.
В статье написано, что функция rassrt– подпрограмма для решения строчек, в которых нет приоритетных скобок (только арифметические действия).
Последний раз rasstr применяется для решения конечной строки, из которой мы убрали все приоритетные скобки. Переводим строку в число, и получаем значение исходной строки с формулой, т.е. результат.
Как перевести строку в число, чтобы выполнились математические операции?
Сергей М. (2006-04-17 14:22:00) [16]Любопытно было бы услышать определение термина "простая функция"