Как реализовать математический анализатор на шарпах - C#
Формулировка задачи:
В целях обучения решил написать мат анализатор, который умел-бы:
1) Считать строку.
2) Выполнить примитивные мат вычисления (+, -, /, *)
3) Прожевать эту всю кашу, и вывести ответ.
Как это разумно реализовать? Буду очень признателен за ссылки и предложения алгоритмов.
Решение задачи: «Как реализовать математический анализатор на шарпах»
textual
Листинг программы
namespace Analizator { class Program { static void Main(string[] args) { Console.WriteLine("Для выхода из программы введите пустое выражение."); for (; ; ) { Console.Write("Введите математическое выражение: "); string Nach = Console.ReadLine(); if (Nach == "") break; Console.WriteLine("{0} = {1}",Nach, Scet(Nach)); } } static public double Scet(string a) { int found0 = a.LastIndexOf("+"); if (found0 >= 0) return Scet(a.Substring(0, found0)) + Scet(a.Substring(found0 + 1)); int found1 = a.LastIndexOf("-"); if (found1 >= 0) return Scet(a.Substring(0, found1)) - Scet(a.Substring(found1 + 1)); int found2 = a.LastIndexOf("*"); if (found2 >= 0) return Scet(a.Substring(0, found2)) * Scet(a.Substring(found2 + 1)); int found3 = a.LastIndexOf("/"); if (found3 >= 0) return Scet(a.Substring(0, found3)) / Scet(a.Substring(found3 + 1)); int found4 = a.LastIndexOf("^"); if (found4 >= 0) return Math.Pow(Scet(a.Substring(0, found4)),Scet(a.Substring(found4 + 1))); return Convert.ToDouble(a); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д