Мне нужно сделать функцию в C++
для вычисления интегралов.Я использую simpsone rule
для вычисления значения данного интеграла.Я знаю, как рассчитать это.У меня нет проблем с математикой.Мне нужно знать, как я могу передать целое выражение, чтобы сделать мою программу гибкой.
У меня есть 4 f(x)
функции, для которых я должен делать вычисления.Например:
f(x)=2e^x
f(x)=x^3e
etc.
У меня есть два варианта сделать это.
1) Я могу сделать отдельную функцию для каждой функции f(x)
.
double function1() {
...
calculations 2e^x
...
return resault;
}
double function2() {
...
calculations x^3e
...
return resault;
}
Этот способ легко и быстро написать, но код совсем не гибкий.В этом случае мне нужно сделать новую функцию для каждой новой заданной функции f (x).
Я хотел бы иметь одну функцию, в которую я могу передать выбранную f(x)
функцию.
2) Второй случай, который я предпочитаю, - это сделать какой-то интерпретатор выражений.Я думал о том, чтобы поместить части выражения в std::vector
и затем сделать вычисления для каждой ячейки vector
.
Я уже видел идею разобрать строку в выражении, но я думаю, что в конце она будет почти такой же, как идея с vector
.Я могу ошибаться.
Каков наилучший способ сделать мой код гибким и простым в использовании для пользователей (не программистов)?