Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C#] чиенме функции из textbox


Автор: Randol 11.11.2007, 17:59
помогите решить задачу
нужно вести любую f(x) функцию на  textbox и получить ответ.
как прочесть из  textbox функцию?

Автор: Walker 12.11.2007, 09:10
Прочесть-то легко - свойство Text есть для этого, анализировать трудно! И проблема здесь в том, что функция может быть по условию "любой". Вы думали, например о том, как будете парсить полином? О соглашениях ввода дробной иррациональной степени. А то, что пользователь может руками набрать это вообще как угодно - без пробела перед '=' и с пробелом после, например? Как вариант, предлагаю использовать combobox  с набором заранее определённых Вами функций. А дальше вводите различные градации и комбинации.

Успехов!

Автор: Randol 12.11.2007, 20:35
а нету-ли какои нибуть готовый контрол или можна как нибуть связать форму с exsel, можноже писать в  exsel функции.

Автор: MFSham 12.11.2007, 21:04
Я писал где-то год назад разбор выражения. Только вот делал это на С++ и набор используемых операторов был не так велик. Алгоритм на алголист'е лежит.

А насчет "любой" функции это конечно круто)) Все как известно не предусмотришь, но если очень стараться, то работы много получается))

Автор: Walker 13.11.2007, 08:23
Цитата

... можна как нибуть связать форму с exsel, можноже писать в  exsel функции.


Агаsmile, а это уже другой вопрос. Скорее всего, можно. У Microsoft написана большая куча классов для доступа к сервисам MS Office. В частности, если Вы используете Visul Studio, то для Вас может быть полезен инструментарий http://msdn2.microsoft.com/ru-ru/office/aa905533.aspx. Самому мне использовать это не приходилось, но http://forum.vingrad.ru/forum/s/3e33464d7fdca9694a554cce29085774/dotnet-winforms-csharp.html Вам, скорее всего, помогут разобраться. Во всяком случае, ответы на большинство интересующих вопросов Вы обязательно найдёте.

Второе - если Вы, всё-таки, решите писать контрол с разбором функций, то советую для однозначности использовать соглашение об http://ru.wikipedia.org/wiki/%D0%9E%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.

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