| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > EVAL как в РНР есть? |
| Автор: MCDeveloper 31.5.2006, 20:28 |
| Дано: Edit1 - Вводят значение Х Edit2 - Вводят математическу строку, пример: 2*x-1 Жмут кнопку, и в Edit3 написать результат.. советуют парсить, но могут вводить x^2, arcsin, cos, x^e... может есть какие-то компоненты калькулятора? |
| Автор: DeadSoul 31.5.2006, 20:44 |
| Скинь мыло в приват. Отправлю готовый проект под Borland C++ 3.0. Умеет рисовать граффик. Писал правда лет 5 назад..... |
| Автор: BreakPointMAN 31.5.2006, 21:18 | ||
| Теория: (http://algolist.manual.ru) http://algolist.manual.ru/syntax/index.php (http://alglib.sources.ru) http://alglib.sources.ru/expressions Реализация: (вариант 1, http://www.rsdn.ru) http://www.rsdn.ru/article/files/Classes/tparser.xml (вариант 2, http://rxlib.ru) http://rxlib.ru/Downl/Downl.htm Что касается последнего, то...
Вообщем, сначала подключается соответствующий заголовочный файл директивой препроцессора #include, затем объявляется указатель на объект класса TRxMathParser, который впоследствии инициализируется адресом, возвращенным операцией new при динамическом создании объекта данного класса. Класс имеет метод Exec, принимающий параметр типа AnsiString (строка с выражением) и возвращающий результат вычисления(не помню точно) типа float. После использования удаляется операцией delete... Допустимые операторы: + , - , * , / , ^, кроме того в выражении могут быть использованы следующие функции: Cos, Sin, Tan, ArcTan, ArcSin, ArcCos, Abs, Exp, Ln, Log, Sqrt, Sqr, Int, Fraq, Trunc, Round, Sign, Not. Если надо просчитывать значение какой-то функции, то, вероятно, придется формировать строку с фактическим значением параметров, которую в дальнейшем передавать парсеру. |
| Автор: DeadSoul 31.5.2006, 22:16 |
| BreakPointMAN, ты просто ссылкомет. MCDeveloper, я умываю руки. Данных ссылок более чем достаточно. |
| Автор: BreakPointMAN 31.5.2006, 22:52 |
Просто сам как-то сталкивался с подобной задачей... |
| Автор: ano360 9.10.2006, 22:50 |
#include <parsing.hpp> У меня в ворланд с++ вуилдер 6 такого файла нет. Такое может быть? |
| Автор: Guest 9.10.2006, 23:07 |
| Извините чтото ступил. |
| Автор: Guest 9.10.2006, 23:39 |
| Чтото я всёравно не въесжаю. Скачал Библиотека RXLib, только не 275, а поновее, ну это мне кажется несутьважно, а даже лучше. Читаю Ридменя: 1 Разархивируйте 2 Скопируйте все .bpl файлы из папки bpl - в папку bpl к Билдеру. (обычно это папка C:\Program Files\Borland\CBuilder6\Projects\Bpl) а все .lib и .bpi файлы из папки lib - в папку lib к Билдеру. (обычно это папка C:\Program Files\Borland\CBuilder6\Projects\Lib) 3 Пропишите в C++Builder6 путь к разархивированной папке ..\RX\units (те если вы разархивировали в C:\Program Files\Borland\CBuilder6\RX, этот путь будет C:\Program Files\Borland\CBuilder6\RX\units) 4 Инсталируйте эти библиотеки компонент как обычно: Вкладка Component->InstallPackages->Add выбираете эти .bpl файлы в папке bpl и все ! Работайте... КАК ПРОПИСАТЬ из пункта 3?Не подскажите? |
| Автор: Vyacheslav 10.10.2006, 09:41 |
| Есть еще вариант. Использовать Microsoft Script Control. С помощью него подключить скриптовые языки( VBScript, Javascript и т.д на свой выбор) и заставлять их выполнять эти вычисления. |
| Автор: ano360 10.10.2006, 18:19 | ||
так как всётаки
Никто чтоть не знает? |
| Автор: ano360 10.10.2006, 18:56 |
| Ну тогда хоть напишите, что такого нет в borland c++ builder,чтоб я успокоился |
| Автор: BreakPointMAN 10.10.2006, 22:10 | ||
| Кстати говоря, возможно, ты кривой релиз скачал... если лил с http://rxlib.ru, ибо есть там такие... У тебя C++ Builder какой версии? Если 6, то скачай http://rxlib.ru/arh/Comp/rxlib275.zip и http://rxlib.ru/arh/Comp/rx275pch2.zip... гммм... Вот откопал у себя на компе текстовый файлик следующего содержания:
насколько я помню, я делал все по этому файлику + еще пришлось вручную прописывать пути в CBuilder6\Bin\*.cfg-файлах... Наверное, это слишком большой изврат, но у меня RxLib после этого работал на все 100%... И еще... ммм... там не все пакеты надо устанавливать... они двух типов - времени проектирования и времени выполнения... только те, что времени проектирования ставить надо... вот. |