0 / 0 / 0
Регистрация: 05.06.2019
Сообщений: 1
|
|
1 | |
Как преобразовать математическое уравнение в, введенное в lineEdit, в код и посчитать его?05.06.2019, 19:04. Показов 1766. Ответов 4
Вопрос такой. Есть LineEdit, в него вводится выражение, например 4*5-10/2 и нужно чтобы программа посчитала результат, как будто я это выражение присвоил переменной, но я не понимаю, как преобразовать это в код. Говорят, что это в одну строчку делается. У меня была идея сделать через Qstringlist или QChar, но там получается явно не одна строка
0
|
05.06.2019, 19:04 | |
Ответы с готовыми решениями:
4
Как преобразовать текстовую строку типа (y = x + 2) в уравнение чтобы можно было посчитать его зная x Строку преобразовать в математическое выражение. Как доработать код? Преобразовать введённое слово в последовательность кодов его букв C# Есть код алгоритма Дейкстры на C++, как его можно преобразовать на язык C#? |
715 / 675 / 110
Регистрация: 29.05.2015
Сообщений: 4,063
|
|
05.06.2019, 19:43 | 2 |
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
05.06.2019, 19:53 | 3 |
Если не писать собственный компилятор (или вызывать имеющийся), то никак. Можно распарсить в стеки переменных и действий, и их потом последовательно обрабатывать. Можно попробовать поискать готовую считалку выражений, и ей на вход подавать в нужном ей формате файл с выражением и потом забирать результаты вычислений. В последнем случае - да, делается относительно просто. Но в Qt подобной проги нет, а где есть - сам не знаю.
0
|
279 / 88 / 37
Регистрация: 10.06.2015
Сообщений: 261
|
||||||
06.06.2019, 08:19 | 4 | |||||
Ну если уж слишком сильно не придираться к словам про одну строчку, то можно сделать через QJSEngine. Что-то похожее на:
0
|
715 / 675 / 110
Регистрация: 29.05.2015
Сообщений: 4,063
|
|
06.06.2019, 20:14 | 5 |
"Вручную" распарсить можно, и не сложно. Я уже (за пару часов) написал функцию, которая из арифметической строки "вырезает" подстроку, которая должна считаться первой (т.е. с умножением или делением). Наример:
12*22+24/8-30/10 --> 12*22 12+22+24/8-30/10 --> 24/8 Идея понятна?
0
|
06.06.2019, 20:14 | |
06.06.2019, 20:14 | |
Помогаю со студенческими работами здесь
5
Как посчитать математическое ожидание Как преобразовать строку в математическое выражение Как преобразовать математическое выражение в число? Как решать сложное математическое уравнение? Как преобразовать файл в биты (в нули и единицы), чтобы потом можно было его зашифровать в код Грея? Нужно преобразовать предел так, чтобы его можно было посчитать по Лопиталю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |