задрот в различнейших областях
Пока не горит, но все же...
Маячит на горизонте курсовая, C++. И тема у меня - учебно-демонстрационная программа нахождения корня уравнения численными методами.
Состоит из 3 частей - теории, примера и теста. Теория и тест примерно реализованы, с ними нет сильных сложностей. А вот с примером есть.
Теперь собственно вопрос - как снять с клавиатуры пример? например 2*x*x+36x-855 или cos2x + 36 и т.д. то есть, если бы просто квадратное уравнение, или тригонометрическое или еще что-нибудь одно, было бы легко. а вот универсально? В голову ни одна идея не идет, может быть для реализации есть библиотека или метод? За подсказку заранее спасибо.
P.S. И что реально осилить для создания оконного приложения (для этой же программы) - Microsoft Foundation Class, c#, QT4 или что-нибудь еще. Если можно - литературу на эту тему.
Спасибо.

@темы: Вопрос, C++

Комментарии
03.08.2011 в 11:43

Вариантов два.
Либо написать (найти готовый) парсер выражений, либо сделать чит.
Как писать парсеры я вам не расскажу. Это тема отдельной курсовой. И, если это не стоит требованием работы, я бы не советовал так делать.
Под "читом" подразумеваю несколько полей в GUI:
- коэффициент при x^2
- коэффициент при x^1
и т.д.

Опять же, зависит от вашей задачи. Какая максимальная степень вашего многочлена? Предлагайте ее выбирать, например. Потом генерить поля для ввода всех коээфициентов.

Это примитивно, но, мне кажется, лишняя морока вам не очень нужна.
03.08.2011 в 11:44

Освоить GUI - вообще не проблема. Я бы выбрал Qt, но это личные предпочтения.
Там много примеров есть, в них легко разобраться.
03.08.2011 в 13:41

задрот в различнейших областях
Феаринг у меня стоит требованием работы - спрашивать у пользователя пример уравнения. Так что..
Ээх, жаль, я надеялась на какую-нибудь библиотеку, мееетод. Спрашивать у пользователя коэффициенты при переменных? А вот если он захочет в одном уравнении и косинус и синус и квадратное? Да и как отдавать в функции пока не пойму. Радует одно - время еще есть
03.08.2011 в 13:58

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
C# + code emission могут помочь. Но тогда выражения надо будет принимать в стиле C#.
03.08.2011 в 14:19

задрот в различнейших областях
Flex Ferrum мм, а какая литература по вашему мнению в этом случае подходит? Желательно, с примерами)
03.08.2011 в 14:40

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
MSDN? :hmm: Конкретных книг, увы, предложить не могу.
03.08.2011 в 14:45

задрот в различнейших областях
Феаринг спасибо) если бы не вы, я б даже сформулировать не смогла)
Flex Ferrum ох, ясно)
03.08.2011 в 14:53

[TrusT]
Если очень хотите, я могу попробовать "на пальцах" рассказать процесс создания своего анализатора.
Но это сложно, муторно и лениво :)
Лучше уж найти готовое решение.
03.08.2011 в 15:08

задрот в различнейших областях
Феаринг я пока попробую поискать, а точнее, отложила себе в копилку.
Доделаю практику, которая 2/3 курсовой == и с новыми силами примусь за самую сложную часть программы.
Спасибо))
03.08.2011 в 15:29

[TrusT]
пожалуйста
03.08.2011 в 15:42

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
[TrusT], вот здесь продемонстрирован пример кода на C#, который "на лету" в рантайме генерирует реализацию класса.
03.08.2011 в 15:54

задрот в различнейших областях
Flex Ferrum спасибо)