Главная страница
    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.011 c
3-1142000076
RomanH
2006-03-10 17:14
2006.05.07
Обновление данных в трехзвенной архитектуре


15-1144959563
qazwsx
2006-04-14 00:19
2006.05.07
Правда что Borland забил на Delphi?


2-1145336717
vegarulez
2006-04-18 09:05
2006.05.07
Как из фомы 1 передать занчение параметры в форму 2?


2-1145438383
koleg
2006-04-19 13:19
2006.05.07
вывести окно диалога


3-1142329236
_white_
2006-03-14 12:40
2006.05.07
Как заменить сообщения системы своими





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский