![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
MCMK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.5.2006 Репутация: нет Всего: нет |
Доброго времени суток!
Вопрос следующий: Необходима программа для решения интегралов. Решение в консольном приложении написал. Но это все необходимо сделать на форме. Как я представил это - textBox для ввода самого подынтегрального уравнения, кнопочка для решения и например label для вывода ответа... В итоге столкнулся с проблемой: Не могу организовать ввод с помощью textBox. Т.е. не могу сделать так, чтобы программа распознавала введенное не как обычный текст, а как уравнение... Надеюсь понятно объяснил. Если нет, постараюсь еще раз, только скажите... (язык C#) Заранее спасибо! ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 9 Всего: 149 |
||||
|
||||
MCMK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.5.2006 Репутация: нет Всего: нет |
В консоли задается в самом тексте программы, а не вводиться
![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 9 Всего: 149 |
Ах, так... Тогда придется анализироватьтекстовую строку и вытаскивать из нее функцию. Даже не знаю чем тебе помочь ![]() Дело это довольно таки трудоемкое, ИМХО. ![]() Хотя я могу ошибаться ![]() |
|||
|
||||
MCMK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.5.2006 Репутация: нет Всего: нет |
Надеюсь на твою последнюю строку!
![]() Хотелось бы услышать еще советы! |
|||
|
||||
MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Когда я делал что-то подобное, то реализовывал этот метод
http://algolist.manual.ru/syntax/revpn.php Только мне надо было не интеграл, а просто решить уравнение. В твоем случае этот метод будет ресурсоемкий, т.к. каждый раз придется анализировать строку при изменении аргумента. --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
MCMK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.5.2006 Репутация: нет Всего: нет |
MFSham, Спасибо!
Это единственный способ??? ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
Один раз генерируем в байт-код простейшей стековой машины, потом функция вычисляется существенно быстрее. Можно еще сгенерить метод с помощью System.Reflection.Emit. MCMK, собственно, если интеграл берется численно, то берем библиотечку вычисления выражений в рантайме с CodeProject или любую другую, что найдет Google. Если аналитически — проблема крайне сложная, и разбор выражения в AST будет самой простой задачей. Это сообщение отредактировал(а) Void - 12.5.2006, 19:45 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 9 Всего: 149 |
В любом случае нужно делать анализ строки, этот, ИМХО, неплохой. Можешь поискать готовый алгоритм на C#. Где не знаю ![]() |
|||
|
||||
MFSham |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 28.8.2005 Где: Беларусь, Гродно Репутация: 1 Всего: 3 |
Еще можно представить строку в виде дерева. Этот вариант будет намного лучше, т.к. дерево строится только один раз.
Сам не реализовывал. Попробуй на бумажке представить функцию в виде дерева, думаю алгоритм поймешь сам. --------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
Кстати, можно взять еще Spart (аналог Boost.Spirit на C#). Полноценный генератор парсеров вроде Coco/R в данном случае, имхо, overkill.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
MCMK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 12.5.2006 Репутация: нет Всего: нет |
Спасибо всем огромное!!!
Буду ковырять... ![]() |
|||
|
||||
ffldove |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.5.2006 Репутация: нет Всего: нет |
подскажите что-то неправильно в class что именно как ввести с клавиатуры n если можно пишите на мыло [email protected]
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |