Надо сделать калькулятор, который считает математические выражения во много действий (без cos() tan() и т.д). Идея такая: пользователь вводит пример в Gui, написанном на WPF, а C# его считает и выводит ответ. Допустим пользователь вводит 2+2*2 и надо вывести ответ, то есть число 6.
Как в C# выполнить данные переменной типа string как код? Если нельзя, то как выполнить данные list с элементами string как код, если каждое число или действие - это отдельный элемент списка?
Если пользователь не может ввести свой код в C# при исполнении программы, то как тогда написать калькулятор?
я на лабу такую штуку делал, самое простое, регуляркой парсишь по приоритету мат. операции и заменяешь эти данные и так до тех пор, пока не останется операцией. Делается элементарно
я на лабу такую штуку делал, самое простое, регуляркой парсишь по приоритету мат. операции и заменяешь эти данные и так до тех пор, пока не останется операцией.
Порядок действий в выражениях: сперва умножение или деление, потом сложение и вычитание. Вот только как навести такой порядок?
Если текущеее действие == *
то переменная результата * следующий элемент массива.
else если текущеее действие == /
то переменная результата / следующий элемент массива.
else если текущеее действие == +
то переменная результата + следующий элемент массива.
else если текущеее действие == -
то переменная результата - следующий элемент массива.
Но будет ли это работать, если у нас такой пример: 2+2 - 3*3 + 1-1 - 4/4?!
приведенный пример мой калькуль решит, а кос синус у меня не было такой задачи, но тоже ничего сложного не вижу. А скобочки не надо, оно парсит в порядке приоритета
Мы ещё не дошли до них. И вообще, сделать полный математический калькультор было моей идеей, преподаватель пока требует 2+2=4, но я пошёл дальше.
Калькулятор - это вводный WPF проект, для разминки. Потом базы данных и в конечном итоге World Skills компетенция 09. ПРОГРАММНЫЕ РЕШЕНИЯ ДЛЯ БИЗНЕСА.