Интерфейс ввода алгебраического выражения
От: Lastudent  
Дата: 19.10.04 06:59
Оценка:
Здравствуйте.
Я программирую на MFC. Необходимо создать интерфейс ввода произвольных алгебраических выражений,
то есть реализовать возможность ввода индексов, степеней и дробей.
Выражения должны выглядить на экране также, как они записываются на бумаге (или, например,как в MS Word формулы,
полученные с помощью MS Equation)
Хотелось бы организовать это в виде отдельного диалогового окна, в котором
имеется поле редактирования выражения, 3 кнопочки для переключения между вводом индексов,
степеней и дробей, соответсвенно. Поле редактирование позволяет бегать по выражению и редактировать
его непосредственно.

Как лучше организовать это поле редактирования:
создать пользовательский элемент управления или использовать какой-то другой вариант.
Заранее благодарен.
Re: Интерфейс ввода алгебраического выражения
От: Axc  
Дата: 19.10.04 07:15
Оценка: +1
Здравствуйте, Lastudent, Вы писали:

L>Необходимо создать интерфейс ввода произвольных алгебраических выражений,

L>то есть реализовать возможность ввода индексов, степеней и дробей.

Если произвольных, то индексами и дробями дело не исчерпывается.
http://img.lj.com.ua/axc/formula.gif

Если интегралы не алгебраичны, можно заменит на суммы.
Re[2]: Интерфейс ввода алгебраического выражения
От: Lastudent  
Дата: 19.10.04 07:36
Оценка:
Здравствуйте, Axc, Вы писали:

Axc>Здравствуйте, Lastudent, Вы писали:


L>>Необходимо создать интерфейс ввода произвольных алгебраических выражений,

L>>то есть реализовать возможность ввода индексов, степеней и дробей.

Axc>Если произвольных, то индексами и дробями дело не исчерпывается.

Axc>http://img.lj.com.ua/axc/formula.gif

Axc>Если интегралы не алгебраичны, можно заменит на суммы.


Да, я согласен: произвольность в данном случае не равносильна реализации
указанных мною возможностей. Спасибо за поправку. Допустим мне нужны не произвольные выражения,
а тольок те которые можно записать с помощью степеней, индексов и дробей. Какие подходы
использовать в этом случае для организации такого ввода?
Re[3]: Интерфейс ввода алгебраического выражения
От: Kislookhin  
Дата: 19.10.04 07:42
Оценка: 1 (1)
Здравствуйте, Lastudent, Вы писали:

L>Да, я согласен: произвольность в данном случае не равносильна реализации

L>указанных мною возможностей. Спасибо за поправку. Допустим мне нужны не произвольные выражения,
L>а тольок те которые можно записать с помощью степеней, индексов и дробей. Какие подходы
L>использовать в этом случае для организации такого ввода?

Если целевая аудитория -- люди, пишушие научные статьи, то можно просто пользоваться синтаксисом TEX'а (спасибо, товарищу Кнуту), его многие знают, и не париться.

\sum\limits_{n=1}^{6}{x_{n} * \frac{1}{x_{n}^{2}}}, и т.д.
Re: Интерфейс ввода алгебраического выражения
От: Pavel Dvorkin Россия  
Дата: 19.10.04 07:49
Оценка: 2 (1)
Привет!

Lastudent wrote:
> Как лучше организовать это поле редактирования:
> создать пользовательский элемент управления или использовать какой-то другой вариант.
> Заранее благодарен.

Лет 5 назад я интересовался этим вопросом и набрел на язык под названием
MathML (Mathematical Markup Language). ИМХО это то, что тебе надо, если
только есть компоненты для ввода. Поищи на гугле, может, найдешь.

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.9 gamma
With best regards
Pavel Dvorkin
Re[2]: Интерфейс ввода алгебраического выражения
От: Kislookhin  
Дата: 19.10.04 07:53
Оценка: 2 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Лет 5 назад я интересовался этим вопросом и набрел на язык под названием

PD>MathML (Mathematical Markup Language). ИМХО это то, что тебе надо, если
PD>только есть компоненты для ввода. Поищи на гугле, может, найдешь.

MathML -- это всего лишь расширение XML для записи математических выражений. Поэтому может подойти любой редактор XML'я...
Re[4]: Интерфейс ввода алгебраического выражения
От: Lastudent  
Дата: 19.10.04 07:56
Оценка:
Здравствуйте, Kislookhin, Вы писали:

K>Здравствуйте, Lastudent, Вы писали:


L>>Да, я согласен: произвольность в данном случае не равносильна реализации

L>>указанных мною возможностей. Спасибо за поправку. Допустим мне нужны не произвольные выражения,
L>>а тольок те которые можно записать с помощью степеней, индексов и дробей. Какие подходы
L>>использовать в этом случае для организации такого ввода?

K>Если целевая аудитория -- люди, пишушие научные статьи, то можно просто пользоваться синтаксисом TEX'а (спасибо, товарищу Кнуту), его многие знают, и не париться.


K>\sum\limits_{n=1}^{6}{x_{n} * \frac{1}{x_{n}^{2}}}, и т.д.


Приятно слышать от людей о Кнуте. Действительно хороший редактор придумал. И его искусство программирования — отличная вещь. Еще приятней слышать о людях науки, когда-то я тоже занимался ей вплотную.) Однако в данном случае целевой аудиторией являются студенты, школьники и т.д. Приследуется цель создания максимально понятного
интерфейса для непродвинутого юзера.
Re[2]: Интерфейс ввода алгебраического выражения
От: Lastudent  
Дата: 19.10.04 08:08
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Привет!


PD>Lastudent wrote:

>> Как лучше организовать это поле редактирования:
>> создать пользовательский элемент управления или использовать какой-то другой вариант.
>> Заранее благодарен.

PD>Лет 5 назад я интересовался этим вопросом и набрел на язык под названием

PD>MathML (Mathematical Markup Language). ИМХО это то, что тебе надо, если
PD>только есть компоненты для ввода. Поищи на гугле, может, найдешь.

PD>--

PD>With best regards,
PD> Pavel Dvorkin

Интересная информация. Попытаюсь поискать такой компонет. Однако хотелось бы знать как они разрабытываются. Спасибо.
Re[3]: Интерфейс ввода алгебраического выражения
От: Pavel Dvorkin Россия  
Дата: 19.10.04 08:23
Оценка:
Привет!

Kislookhin wrote:
> MathML -- это всего лишь расширение XML для записи математических выражений. Поэтому может подойти любой редактор XML'я...

Если расширение, то почему подойдет ?

--
With best regards,
Pavel Dvorkin
Posted via RSDN NNTP Server 1.9 gamma
With best regards
Pavel Dvorkin
Re[5]: Интерфейс ввода алгебраического выражения
От: sc Россия  
Дата: 19.10.04 08:24
Оценка: 1 (1)

Приследуется цель создания максимально понятного
L>интерфейса для непродвинутого юзера.

Тогда лучше всего подходит MS Equation Editor.
Re[6]: Интерфейс ввода алгебраического выражения
От: Lastudent  
Дата: 19.10.04 08:34
Оценка:
Здравствуйте, sc, Вы писали:

sc>

sc>Приследуется цель создания максимально понятного
L>>интерфейса для непродвинутого юзера.

sc>Тогда лучше всего подходит MS Equation Editor.

Наверное я немного неправильно поставил вопрос. Опишу полную картину. Я хочу
написать программу, которая будет решать различные задачки из школьного курса
и институтского. Программа должна иметь максимально понятный и удобный интерфейс, чтобы пользователи программы
— школьники и студенты — без проблем могли решить нужную задачу или пример. В связи с этим
возникает подзадача: Как выполнять ввод формул, выражений, систем и т.д., а точнее как сделать этот
ввод условий задач максимально упрощенным и приближенным к реальным описаниям условий задач на бумаге.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.