Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1144891320
dyd
2006-04-13 05:22
2006.05.07
Рецепт бодрости :)


3-1142401925
гога
2006-03-15 08:52
2006.05.07
Копирование данных в компонент RxMemoryData1.


15-1145023037
iamdanil
2006-04-14 17:57
2006.05.07
Глюк винды (фотка)


2-1145603620
makar
2006-04-21 11:13
2006.05.07
TRichEdit


15-1145094377
Volf_555
2006-04-15 13:46
2006.05.07
Текст в Internet Explorer стал отображаться курсивом!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский