Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.07;
Скачать: CL | DM;

Вниз

Математическое приложение - разбор формулы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.044 c
2-1145596469
vegarulez
2006-04-21 09:14
2006.05.07
Про неподключенную БД.


2-1145213719
Мде
2006-04-16 22:55
2006.05.07
иконки


2-1145290585
cava
2006-04-17 20:16
2006.05.07
С математикой не лады


2-1145259990
ttt_111
2006-04-17 11:46
2006.05.07
Сортировка


15-1144769258
chizra
2006-04-11 19:27
2006.05.07
Как пользоваться программой tar.exe для распаковки...