Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Определение математических функции в Edit (Delphi)


Автор: Michail140890 23.10.2011, 19:54
Как сделать ввод математических функций в edit? К примеру X^X+5*sin(x)??? Пожалуйста помогите или дайте ссылку Заранее спасибо smile

Код

f:real; // значение функции 
 
Edit1.Text:='y-2*x/y+1';
 
f:=StrToFloat(Edit1.Text);

Автор: Данкинг 23.10.2011, 20:39
Т.е.? Ну, парсить только вручную, иных способов я пока что не придумал.

Автор: Michail140890 23.10.2011, 20:50
А как это сделать? Что нибудь скинь, а то не каких идей нет  smile 

Автор: Данкинг 23.10.2011, 21:06
Цитата(Michail140890 @  23.10.2011,  21:50 Найти цитируемый пост)
А как это сделать?

С использованием строковых функций вроде COPY, POS, DELETE и т.п.
Цитата(Michail140890 @  23.10.2011,  21:50 Найти цитируемый пост)
Что нибудь скинь

Сейчас футболку скину. smile 

Автор: chip_and_dayl 23.10.2011, 21:39
http://www.delphisources.ru/pages/faq/base/formulas_comp.html

Автор: Данкинг 23.10.2011, 22:59
chip_and_dayl, я так понимаю, что требуется именно разобрать функцию и выполнить вычисления в ней.

Автор: northener 23.10.2011, 23:05
Одно из двух. Или http://yandex.ru/yandsearch?text=%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F+%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C&from=fx3&clid=46510&lr=213 или http://www.delphikingdom.com/asp/viewitem.asp?catalogid=718

Автор: Michail140890 24.10.2011, 08:46
Причем тут обратная польская запись???  smile 

Нужно в Edit написать типа x^x+5sinx и потом ее занести в значение f:=StrToFloat(Edit1.Text); при нажатии кнопки. Как сделать незнаю :(

Автор: rodnover 24.10.2011, 08:52
Нужно найти функцию 
Код

function CalculateMyMegaSuperFormulaFromStringToFloat(Formula: string; arg: array of Real): Real;


И все будет работать.

Вообще, я писал такую штуку для курсовой по вычмату, могу поискать дома, правда это было лет 8 назад, но она даже работала. smile

Автор: AndreyIQ 24.10.2011, 09:11
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=10

Автор: Michail140890 24.10.2011, 11:31
А как сделать с sin, cos, tg .... ?

Автор: AndreyIQ 24.10.2011, 12:09
Цитата(Michail140890 @ 24.10.2011,  11:31)
А как сделать с sin, cos, tg .... ?

В чем имено проблема? Алгоритм реализации подобных задач описан в статье (см. http://forum.vingrad.ru/index.php?showtopic=340396&view=findpost&p=2417248).

Автор: Michail140890 24.10.2011, 12:28
Спасибо большое!!! smile  smile 

Автор: Akella 24.10.2011, 12:58
Цитата(Michail140890 @ 24.10.2011,  08:46)
Причем тут обратная польская запись???  smile 

Нужно в Edit написать типа x^x+5sinx и потом ее занести в значение f:=StrToFloat(Edit1.Text); при нажатии кнопки. Как сделать незнаю :(

1. Использовать специальные компоненты: http://forum.vingrad.ru/forum/topic-307217.html
2. Нанять программиста.

Автор: CROTishka 24.10.2011, 13:03
Э, батенька, вам сюда: 
http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B8%D0%BD%D0%B2%D0%B5%D1%80%D1%81%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C
Там же и пример реализации есть.

и да, наймите программиста.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)