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