从 Visual Studio 命令行参数求解一个简单的方程(不使用库)

我想在 Visual Studio 中准备 ac# 程序,作为一个简单的方程求解器。方程求解器仅使用运算符(+、-、*、/)从命令行 args 运行

因此输入的格式为“calc 3X + 5 = 8”,输出将为您提供 X = 1


慕婉清6462132
浏览 237回答 2
2回答

绝地无双

您必须创建一个解析器 => 分析参数,例如解析器例如:https://github.com/mariuszgromada/MathParser.org-mXparser如果没有库,我建议考虑像“3 * X = 2”这样的参数,如果你发现 X 它是变量,你可以循环每个字符,你可以分析 * , - , + 和 / 作为运算符:foreach char c in args[0]{  if (c == '*')...  if (c == '+')...  if (c == 'X') => you have identify the variable}在你编写逻辑来解决方程之后这是一个开始......}谷歌数学解析器或数学方程解析器

肥皂起泡泡

那么,您需要做的第一件事就是编写一个解析器。根据语法的复杂性,您可以手动完成。但是,如果它很复杂,您可能想要使用工具/库来完成它。传统上,您会使用词法分析器将您的输入转换为令牌流。然后,您将使用另一个工具使用您的语法来解析令牌流。典型的例子是 Unix 的 Lex 和 YACC 工具集。Antlr 是一种更现代(且更易于使用)的输入解析方式。而且,它往往会链接到每个 C# 项目中。如果您购买主要的 Antlr 4 书,我认为您的问题是第一个示例。一旦你解释并理解了输入,那么你需要想出一个求解器来求解方程。祝你好运。顺便说一句,“不使用库”是相对的。如果您使用 .NET 框架的任何部分,您就是在“使用库”。如果您不想使用任何 3rd 方库,请阅读我提到的一些内容以了解它们如何做事(例如,它们如何使用正则表达式)并从那里开始。一旦您有一些代码要显示并遇到一些问题,请返回并提出 Stack Overflow 可回答的问题。
打开App,查看更多内容
随时随地看视频慕课网APP