вычисление определяемых пользователем формул (с C++)

Не совсем ..

цитата из docs

Псевдокласс класса :nth-child соответствует элементу с + b -1 братья и сестры перед ним в дереве документов, для данного положительного или нулевого значения для n и имеет родительский элемент.

blockquote>

Он является селектором и не сочетается с классами , В вашем правиле он просто должен удовлетворять обоим селекторам одновременно, поэтому он отображает строки таблицы :nth-child(even), если они также имеют класс .row.

10
задан bernhardrusch 26 August 2008 в 14:07
поделиться

8 ответов

Если это будет часто использоваться и если бы это будет расширено в будущем, я почти рекомендовал бы добавить или Python или Lua в Ваш код. Lua является очень легким языком сценариев, в который можно сцепиться и обеспечить новые функции, операторы и т.д. Если Вы хотите сделать больше устойчивых и сложных вещей, используйте Python вместо этого.

3
ответ дан 4 December 2019 в 03:40
поделиться

Можно представить формулу как дерево операций и подвыражений. Можно хотеть определить типы или константы для Операционных типов и Переменных.

Можно затем легко достаточно записать метод, который рекурсивно вызывает через дерево, применяя соответствующие операции к любым значениям, в которых Вы передаете.

1
ответ дан 4 December 2019 в 03:40
поделиться

Создание Вашего собственного синтаксического анализатора для этого должно быть простой операцией:

) преобразуйте уравнение от инфикса до постфиксной записи (типичное compsci присвоение) (я использовал бы стек)), ожидают для получения значений, которые Вы хотите), выталкивают стопку инфиксных объектов, отбрасывая значение для переменной в при необходимости), результаты дисплея

1
ответ дан 4 December 2019 в 03:40
поделиться

Используя Дух (например), для парсинга (и 'семантические действия' это обеспечивает для построения дерева выражений, которым можно затем управлять, например, оценить) походит на настоящее простое решение. Можно найти грамматику для арифметических выражений там, например, в случае необходимости... (довольно просто придумать собственное).

Примечание: Дух очень прост учиться, и вполне адаптированный к таким задачам.

0
ответ дан 4 December 2019 в 03:40
поделиться

Обычно существует два способа сделать его с тремя возможными реализациями:

  1. поскольку Вы затронули себя, библиотека для оценки формул
  2. компиляция формулы в код

Вторая опция здесь обычно делается или путем компиляции чего-то, что может быть загружено в как своего рода плагин, или это может быть скомпилировано в отдельную программу, которая затем вызывается и производит необходимый вывод.

Для C++ я предположил бы, что библиотека для оценки будет, вероятно, существовать где-нибудь, таким образом, это будет то, где я запустил бы.

0
ответ дан 4 December 2019 в 03:40
поделиться

Для создания жизни легче я думаю, получая этот вид входа, лучше всего сделан через GUI, где пользователи ограничиваются в том, что они могут ввести.

Если Вы планируете выполнение его из командной строки (который является впечатлением, которое я получаю из Вашего сообщения), то необходимо, вероятно, определить строгий набор допустимых исходных данных (например, только однобуквенные переменные, никакой пробел и только определенные математические символы: () +-*/и т.д.).

Затем Вы должны будете:
Читайте во входном массиве символов
Проанализируйте его для создания списка переменных и действий
Выполните те действия - в порядке BOMDAS

0
ответ дан 4 December 2019 в 03:40
поделиться

С ANTLR можно создать синтаксический анализатор/компилятор, который интерпретирует ввод данных пользователем, затем выполнить вычисления с помощью Шаблона "посетитель". Хороший пример здесь, но это находится в C#. Необходимо смочь адаптировать его быстро к потребностям и остаться использовать C++ в качестве платформы разработки.

0
ответ дан 4 December 2019 в 03:40
поделиться

Если Вы хотите записать свое собственное, ищите "формальные автоматы" и/или "грамматику конечного автомата"

В целом то, что Вы сделаете, проанализировать строку, продвигая символы на стеке, когда Вы идете. Затем начните выталкивать символы прочь и выполните задачи на основе того, что выталкивается. Легче кодировать при принуждении уравнений к обратной польской записи.

0
ответ дан 4 December 2019 в 03:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: