Russian Qt Forum
Апрель 29, 2024, 01:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вычисление формулы  (Прочитано 5713 раз)
Quty
Гость
« : Декабрь 15, 2012, 12:01 »

Необходимо вычислить формулу (функция от одной переменной), введенной пользователем в LineEdit, например "x^2 + 2*x + 4", где x - переменная, и он будет заменяться конкретными значениями.
Записан
mutineer
Гость
« Ответ #1 : Декабрь 15, 2012, 12:09 »

А в чем вопрос?
Записан
Dancing_on_water
Гость
« Ответ #2 : Декабрь 15, 2012, 12:11 »

Если делаем на плюсах, то городить парсер. Если нет, то я бы смотрел в сторону QtScript
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Декабрь 15, 2012, 12:38 »

Необходимо вычислить формулу (функция от одной переменной), введенной пользователем в LineEdit, например "x^2 + 2*x + 4", где x - переменная, и он будет заменяться конкретными значениями.
Это называется "интерпретатор" и никакого отношения к алгоритмам не имеет.
Да, сначала надо разобрать строку и получить контейнер элементами которого будут числа, переменные и операции. Затем выбирается операция с наивысшим приоритетом и 3 элемента контейнера заменяются на один - до тех пор пока не останется 1 значение. Хорошая задачка - для тех кто хочет учиться  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Декабрь 15, 2012, 13:32 »

если хочется побыстрячку, то QtScript
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Quty
Гость
« Ответ #5 : Декабрь 15, 2012, 21:50 »

Всем спасибо, с QtScript не работал, разбираться некогда, буду пользоваться готовым парсером. Вопрос закрыт.
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #6 : Декабрь 16, 2012, 17:16 »

Всем спасибо, с QtScript не работал, разбираться некогда, буду пользоваться готовым парсером. Вопрос закрыт.
Лучше бы разобрался.
Как тебе плюшка:
Код:
 QScriptEngine engine;
 QScriptProgram program("1 + 2");
 QScriptValue result = engine.evaluate(program);
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.058 секунд. Запросов: 22.