Перевод текстового выражения в математическую формулу
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Перевод текстового выражения в математическую формулу

Перевод текстового выражения в математическую формулу

Ответ
Поиск в этой теме
Непрочитано 17.06.2005, 14:12 #1
Перевод текстового выражения в математическую формулу
Владимир В
 
машиностроение
 
Москва
Регистрация: 22.03.2005
Сообщений: 56

Всем добрый день (вечер или чего там).
Вопрос, который, может, напрямую к Автокаду и не относится, но все же.
Допустим в написаной програмке заданы переменные. Пользователь вводит строковое математическое выражение, в котором эти переменные используются. Задача программы перевести это текстовое выражение в такой формат, чтобы можно было вычислить значение этого выражения.
Например:
В программе есть переменные a,b,c, которым заранее присвоены какие-то значения. Пользователь вводит выражение
a+b*c/+a^2*4-tg(30)
Программа должна подставить в это выражение значения переменных и выдать результат.
Кто-нибудь может подсказать алгоритм решения такой задачи, или дать ссылку, где можно посмотреть подобную тему? Буду очень признателен.
Да, предположим, что пользователь строго придерживается правил ввода, использует только существующие переменные и т.д. То есть обработка исключений совсем необязательна.
Просмотров: 4747
 
Непрочитано 17.06.2005, 14:19
#2
Haos

инженер-строитель
 
Регистрация: 17.05.2005
E-burg
Сообщений: 696
<phrase 1=


Насколько мне известно "MathCAD" это делает.
Haos вне форума  
 
Автор темы   Непрочитано 17.06.2005, 14:22
#3
Владимир В

машиностроение
 
Регистрация: 22.03.2005
Москва
Сообщений: 56


а как он это делает, неизвестно?
Владимир В вне форума  
 
Непрочитано 17.06.2005, 14:32
#4
Haos

инженер-строитель
 
Регистрация: 17.05.2005
E-burg
Сообщений: 696
<phrase 1=


Я не программист, метод не могу объяснить.
Haos вне форума  
 
Автор темы   Непрочитано 17.06.2005, 14:50
#5
Владимир В

машиностроение
 
Регистрация: 22.03.2005
Москва
Сообщений: 56


жаль...
Владимир В вне форума  
 
Непрочитано 17.06.2005, 14:54
#6
eax

проектирование транспортных сооружений
 
Регистрация: 26.04.2005
Москва
Сообщений: 107
<phrase 1=


Один из таких методов - метод с использованием обратной польской записи. Для программистов на Delphi можно почитать Архангельского "Примеры программирования в Delphi".
eax вне форума  
 
Непрочитано 17.06.2005, 15:29
#7
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


>>Владимир В
По Маскаду:
Например, чтобы назначить a=3 набираем a:=3 (знак := вводится одновременным нажатием SHIFT+":").
После определения всех значений можно писать результирующую формулу. Только в конце тоже знак :=. И сразу получаем результат.
Torino вне форума  
 
Непрочитано 17.06.2005, 15:52
#8
eax

проектирование транспортных сооружений
 
Регистрация: 26.04.2005
Москва
Сообщений: 107
<phrase 1=



а есчё тама можна графики всякие рисовать
eax вне форума  
 
Непрочитано 17.06.2005, 15:58
#9
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Владимир. Вы не уточнили где и как Вы собираетесть использовать такую программу, на каком языке программирования собираетесь ее писать, или хотите использовать готовую, не вникая в алгоритм работы программы. Если Вы умеете программировать на C/C++, то я готов Вам прислать исходники программы СAL, которая входила в поставку AutoCAD R12 и позволяла вычислять такие значения в AutoCAD. Переменными, о которых Вы упомянули, были переменные lisp. Т.е., например:
Код:
[Выделить все]
(setq A 100)
(setq B 200)
(cal "(A+B)/3*12.1")
Если это то, что Вам нужно то напишите мне на e-mail и я пришлю исходники. Вам, правда, придется над ними попотеть, т.к. они на C в старой его редкции и кое-что там сразу не скомпилируется. Но результат может превысить все ваши ожидания!
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 17.06.2005, 17:36
#10
Владимир В

машиностроение
 
Регистрация: 22.03.2005
Москва
Сообщений: 56


это похоже то, что нужно
Тока в делфях пишу, и потребуется, видимо, все-таки алгоритм
Пока я домой, так что до понедельника
Владимир В вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Перевод текстового выражения в математическую формулу