Здравствуйте.
Я программирую на MFC. Необходимо создать интерфейс ввода произвольных алгебраических выражений,
то есть реализовать возможность ввода индексов, степеней и дробей.
Выражения должны выглядить на экране также, как они записываются на бумаге (или, например,как в MS Word формулы,
полученные с помощью MS Equation)
Хотелось бы организовать это в виде отдельного диалогового окна, в котором
имеется поле редактирования выражения, 3 кнопочки для переключения между вводом индексов,
степеней и дробей, соответсвенно. Поле редактирование позволяет бегать по выражению и редактировать
его непосредственно.
Как лучше организовать это поле редактирования:
создать пользовательский элемент управления или использовать какой-то другой вариант.
Заранее благодарен.
Здравствуйте, Lastudent, Вы писали:
L>Необходимо создать интерфейс ввода произвольных алгебраических выражений, L>то есть реализовать возможность ввода индексов, степеней и дробей.
Здравствуйте, Axc, Вы писали:
Axc>Здравствуйте, Lastudent, Вы писали:
L>>Необходимо создать интерфейс ввода произвольных алгебраических выражений, L>>то есть реализовать возможность ввода индексов, степеней и дробей.
Axc>Если произвольных, то индексами и дробями дело не исчерпывается. Axc>http://img.lj.com.ua/axc/formula.gif
Axc>Если интегралы не алгебраичны, можно заменит на суммы.
Да, я согласен: произвольность в данном случае не равносильна реализации
указанных мною возможностей. Спасибо за поправку. Допустим мне нужны не произвольные выражения,
а тольок те которые можно записать с помощью степеней, индексов и дробей. Какие подходы
использовать в этом случае для организации такого ввода?
Здравствуйте, Lastudent, Вы писали:
L>Да, я согласен: произвольность в данном случае не равносильна реализации L>указанных мною возможностей. Спасибо за поправку. Допустим мне нужны не произвольные выражения, L>а тольок те которые можно записать с помощью степеней, индексов и дробей. Какие подходы L>использовать в этом случае для организации такого ввода?
Если целевая аудитория -- люди, пишушие научные статьи, то можно просто пользоваться синтаксисом TEX'а (спасибо, товарищу Кнуту), его многие знают, и не париться.
\sum\limits_{n=1}^{6}{x_{n} * \frac{1}{x_{n}^{2}}}, и т.д.
Lastudent wrote: > Как лучше организовать это поле редактирования: > создать пользовательский элемент управления или использовать какой-то другой вариант. > Заранее благодарен.
Лет 5 назад я интересовался этим вопросом и набрел на язык под названием
MathML (Mathematical Markup Language). ИМХО это то, что тебе надо, если
только есть компоненты для ввода. Поищи на гугле, может, найдешь.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Лет 5 назад я интересовался этим вопросом и набрел на язык под названием PD>MathML (Mathematical Markup Language). ИМХО это то, что тебе надо, если PD>только есть компоненты для ввода. Поищи на гугле, может, найдешь.
MathML -- это всего лишь расширение XML для записи математических выражений. Поэтому может подойти любой редактор XML'я...
Здравствуйте, Kislookhin, Вы писали:
K>Здравствуйте, Lastudent, Вы писали:
L>>Да, я согласен: произвольность в данном случае не равносильна реализации L>>указанных мною возможностей. Спасибо за поправку. Допустим мне нужны не произвольные выражения, L>>а тольок те которые можно записать с помощью степеней, индексов и дробей. Какие подходы L>>использовать в этом случае для организации такого ввода?
K>Если целевая аудитория -- люди, пишушие научные статьи, то можно просто пользоваться синтаксисом TEX'а (спасибо, товарищу Кнуту), его многие знают, и не париться.
K>\sum\limits_{n=1}^{6}{x_{n} * \frac{1}{x_{n}^{2}}}, и т.д.
Приятно слышать от людей о Кнуте. Действительно хороший редактор придумал. И его искусство программирования — отличная вещь. Еще приятней слышать о людях науки, когда-то я тоже занимался ей вплотную.) Однако в данном случае целевой аудиторией являются студенты, школьники и т.д. Приследуется цель создания максимально понятного
интерфейса для непродвинутого юзера.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Привет!
PD>Lastudent wrote: >> Как лучше организовать это поле редактирования: >> создать пользовательский элемент управления или использовать какой-то другой вариант. >> Заранее благодарен.
PD>Лет 5 назад я интересовался этим вопросом и набрел на язык под названием PD>MathML (Mathematical Markup Language). ИМХО это то, что тебе надо, если PD>только есть компоненты для ввода. Поищи на гугле, может, найдешь.
PD>-- PD>With best regards, PD> Pavel Dvorkin
Интересная информация. Попытаюсь поискать такой компонет. Однако хотелось бы знать как они разрабытываются. Спасибо.
sc>Приследуется цель создания максимально понятного
L>>интерфейса для непродвинутого юзера.
sc>Тогда лучше всего подходит MS Equation Editor.
Наверное я немного неправильно поставил вопрос. Опишу полную картину. Я хочу
написать программу, которая будет решать различные задачки из школьного курса
и институтского. Программа должна иметь максимально понятный и удобный интерфейс, чтобы пользователи программы
— школьники и студенты — без проблем могли решить нужную задачу или пример. В связи с этим
возникает подзадача: Как выполнять ввод формул, выражений, систем и т.д., а точнее как сделать этот
ввод условий задач максимально упрощенным и приближенным к реальным описаниям условий задач на бумаге.