Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 05.06.2019
Сообщений: 1
1

Как преобразовать математическое уравнение в, введенное в lineEdit, в код и посчитать его?

05.06.2019, 19:04. Просмотров 526. Ответов 4


Вопрос такой. Есть LineEdit, в него вводится выражение, например 4*5-10/2 и нужно чтобы программа посчитала результат, как будто я это выражение присвоил переменной, но я не понимаю, как преобразовать это в код. Говорят, что это в одну строчку делается. У меня была идея сделать через Qstringlist или QChar, но там получается явно не одна строка
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2019, 19:04
Ответы с готовыми решениями:

Как преобразовать текстовую строку типа (y = x + 2) в уравнение чтобы можно было посчитать его зная x
Уважаемые коллеги, подскажите пожалуйста как решить такую задачу. Пользователь вводит в...

Строку преобразовать в математическое выражение. Как доработать код?
//в итоге мы должны получить из введенной строки 2+6+8 значение суммы. //вот мой код, не пойму...

Преобразовать введённое слово в последовательность кодов его букв
Сама задача: Преобразовать введённое слово в последовательность кодов и его букв.Решить и обратную...

C# Есть код алгоритма Дейкстры на C++, как его можно преобразовать на язык C#?
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

4
411 / 376 / 63
Регистрация: 29.05.2015
Сообщений: 2,361
05.06.2019, 19:43 2
Цитата Сообщение от Atex86 Посмотреть сообщение
Говорят, что это в одну строчку делается.
Врут.
0
зомбяк
1439 / 1100 / 313
Регистрация: 14.05.2017
Сообщений: 3,586
05.06.2019, 19:53 3
Цитата Сообщение от Atex86 Посмотреть сообщение
как преобразовать это в код
Если не писать собственный компилятор (или вызывать имеющийся), то никак. Можно распарсить в стеки переменных и действий, и их потом последовательно обрабатывать. Можно попробовать поискать готовую считалку выражений, и ей на вход подавать в нужном ей формате файл с выражением и потом забирать результаты вычислений. В последнем случае - да, делается относительно просто. Но в Qt подобной проги нет, а где есть - сам не знаю.
0
278 / 87 / 37
Регистрация: 10.06.2015
Сообщений: 261
06.06.2019, 08:19 4
Ну если уж слишком сильно не придираться к словам про одну строчку, то можно сделать через QJSEngine. Что-то похожее на:
C++ (Qt)
1
2
QJSEngine myEngine;
QJSValue three = myEngine.evaluate("1 + 2");
Я не смотрел особо, но , скороее всего, там можно всю математику из JS подтянуть.
0
411 / 376 / 63
Регистрация: 29.05.2015
Сообщений: 2,361
06.06.2019, 20:14 5
"Вручную" распарсить можно, и не сложно. Я уже (за пару часов) написал функцию, которая из арифметической строки "вырезает" подстроку, которая должна считаться первой (т.е. с умножением или делением). Наример:

12*22+24/8-30/10 --> 12*22
12+22+24/8-30/10 --> 24/8

Идея понятна?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2019, 20:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как посчитать математическое ожидание
Помогите как посчитать математическое ожидание. Есть несколько студентов, для подготовки к...

Как преобразовать строку в математическое выражение
Доброго времени суток. Собственно по сабжу... Как преобразовать строку в математическое выражение...

Как преобразовать математическое выражение в число?
существует ли возможность преобразовать String в Double, если String равно, например "25 + 17 * 2"...

Как решать сложное математическое уравнение?
Как решить вот такое вот уравнение подскажите пожалуйста. В математике я 0. ...

Как преобразовать файл в биты (в нули и единицы), чтобы потом можно было его зашифровать в код Грея?
Добрый день всем! У меня к вам несколько вопросов, которые касаются следующего: В институте дали...

Нужно преобразовать предел так, чтобы его можно было посчитать по Лопиталю
Добрый день, мне нужно преобразовать предел \lim_{x\rightarrow 0}{ctgx}^{sinx} так, чтобы его можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.