@slupoke

Как преобразовать string выражение?

Даны переменные типа string
string y1 = "34*x^2+2*x+7";
string y2 = "x^17+1";
string y3 = "2*sin(13*x)";
string y4 = "ln(2x)"
//и т.д.

Вопрос: Как мне найти значение выражения в точке?
Есть ли встроенная функция или определенный алгоритм для таких задач?
Желательно решение на C#

UPD: мне нужно общее решение, к примеру я в string y могу ввести любое выражение, а из него хочу получить значение в точке

Наглядно это будет выглядеть так:

>Введите выражение у = [*ожидание ввода выражения]
>Введите x = [*ввод x]
>Значение Выражения в точке X = [значение выражение в точке]
  • Вопрос задан
  • 138 просмотров
Решения вопроса 2
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
мне нужно общее решение
Введите выражение у = [*ожидание ввода выражения]
Введите x = [*ввод x]
Значение Выражения в точке X = [значение выражение в точке]

  1. Получить выражение
  2. Проверить корректность выражения
  3. Получить дополнительные данные
  4. Проверить корректность введенных данных
  5. Распарсить выражение
  6. Распарсить введенные данные
  7. Произвести вычисления выражения с учетом введенных ранее данных
  8. Показать результат вычисления
Ответ написан
Комментировать
myjcom
@myjcom
double y1 = 34*Math.Pow(x, 2)+2*x+7;
//и т.д.

Ну или калькулятор написать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
Есть ли встроенная функция или определенный алгоритм для таких задач?

Вот самое "убийственное" решение проблемы:
eval("34*x/2+2*x+7".replace(/x/g,"12"))
Только вот это не шарп. На нём это немного сложнее сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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