0 / 0 / 0
Регистрация: 05.06.2019
Сообщений: 1
|
|
Как преобразовать математическое уравнение в, введенное в lineEdit, в код и посчитать его?05.06.2019, 19:04. Показов 1855. Ответов 4
Вопрос такой. Есть LineEdit, в него вводится выражение, например 4*5-10/2 и нужно чтобы программа посчитала результат, как будто я это выражение присвоил переменной, но я не понимаю, как преобразовать это в код. Говорят, что это в одну строчку делается. У меня была идея сделать через Qstringlist или QChar, но там получается явно не одна строка
0
|
05.06.2019, 19:04 | |
Ответы с готовыми решениями:
4
Как преобразовать текстовую строку типа (y = x + 2) в уравнение чтобы можно было посчитать его зная x Строку преобразовать в математическое выражение. Как доработать код?
|
зомбяк
![]() 1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
05.06.2019, 19:53 | |
Если не писать собственный компилятор (или вызывать имеющийся), то никак. Можно распарсить в стеки переменных и действий, и их потом последовательно обрабатывать. Можно попробовать поискать готовую считалку выражений, и ей на вход подавать в нужном ей формате файл с выражением и потом забирать результаты вычислений. В последнем случае - да, делается относительно просто. Но в Qt подобной проги нет, а где есть - сам не знаю.
0
|
279 / 88 / 37
Регистрация: 10.06.2015
Сообщений: 261
|
||||||
06.06.2019, 08:19 | ||||||
Ну если уж слишком сильно не придираться к словам про одну строчку, то можно сделать через QJSEngine. Что-то похожее на:
0
|
732 / 693 / 110
Регистрация: 29.05.2015
Сообщений: 4,184
|
|
06.06.2019, 20:14 | |
"Вручную" распарсить можно, и не сложно. Я уже (за пару часов) написал функцию, которая из арифметической строки "вырезает" подстроку, которая должна считаться первой (т.е. с умножением или делением). Наример:
12*22+24/8-30/10 --> 12*22 12+22+24/8-30/10 --> 24/8 Идея понятна?
0
|
06.06.2019, 20:14 | ||||||
Помогаю со студенческими работами здесь
5
C# Есть код алгоритма Дейкстры на C++, как его можно преобразовать на язык C#? Как посчитать математическое ожидание Как преобразовать строку в математическое выражение
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Как использовать Behavior Graph в Unity при создании игрового AI
GameUnited 14.04.2025
Искусственный интеллект в играх прошел долгий путь эволюции. От простейших алгоритмов, движущих призраками в Pac-Man, до сложных систем, управляющих поведением персонажей в современных AAA-проектах. . . .
|
Создание и стилизация списков в SwiftUI
mobDevWorks 14.04.2025
Списки — фундаментальный элемент мобильных интерфейсов. От списка контактов до ленты новостей, от настроек до каталога товаров — трудно представить приложение, которое не использовало бы этот. . .
|
Паттерн SAGA и распределённые транзакции в микросервисной архитектуре
stackOverflow 14.04.2025
Переход от монолитной архитектуры к микросервисам принес множество преимуществ: гибкость разработки, независимость развертывания и масштабирования отдельных компонентов. Однако этот переход создал и. . .
|
Кастомные аллокаторы в C++ и оптимизация управления памятью
bytestream 14.04.2025
Работа с памятью в С++ всегда была и остаётся одной из самых увлекательных и сложных задач для программиста. Любой опытный C++ разработчик подтвердит: стандартные механизмы аллокации памяти – штука. . .
|
Организация сетей в Kubernetes и эффективное развертывание
Mr. Docker 14.04.2025
Сетевая инфраструктура Kubernetes представляет собой сложную, но хорошо спроектированную систему, которая позволяет контейнерам взаимодействовать между собой и с внешним миром. За кажущейся простотой. . .
|
Многопоточность в Rust: Fearless concurrency и практические примеры
golander 14.04.2025
Многопоточное программирование связано с рядом известных проблем. Наиболее распространенные из них — гонки данных (data races), взаимные блокировки (deadlocks) и условия гонки (race conditions). Эти. . .
|
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
|
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
|
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
|
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
|