随笔分类 - C#计算器
采用C#实现的计算器,可以输入表达式进行计算,可多行计算,选中部分表达式计算,并支持更多运算扩展。
摘要:本文在之前实现的计算器的基础上进行完善,添加了对变量的支持,新增了部分函数,并实现了根据输入的函数绘制波形的功能,支持多个波形的绘制,且多个波形之间可以有关联。程序中还有一些可以改进的地方,有需要的朋友可以自行完善。
阅读全文
摘要:本系列文章介绍如何用C#实现一个类似于查询分析器的计算器。该计算器接受表达式输入,支持多行表达式,可选择部分表达式进行计算,能定位语法错误的位置,并且支持数值、字符串和逻辑值的计算,内置多种运算符和函数,并且可以根据需要扩展出更多的运算符和函数。程序中包含一些细节上的bug,有兴趣的朋友可以完善一下。
本篇介绍如何调用之前实现的词法分析和语法分析类以实现计算,以及如何在界面上实现多行表达式计算、选中部分表达式计算和错误定位。
阅读全文
摘要:本系列文章介绍如何用C#实现一个类似于查询分析器的计算器。该计算器接受表达式输入,支持多行表达式,可选择部分表达式进行计算,能定位语法错误的位置,并且支持数值、字符串和逻辑值的计算,内置多种运算符和函数,并且可以根据需要扩展出更多的运算符和函数。程序中包含一些细节上的bug,有兴趣的朋友可以完善一下。
本篇介绍如何实现语法分析,将记号列表分析成树视图。
阅读全文
摘要:本系列文章介绍如何用C#实现一个类似于查询分析器的计算器。该计算器接受表达式输入,支持多行表达式,可选择部分表达式进行计算,能定位语法错误的位置,并且支持数值、字符串和逻辑值的计算,内置多种运算符和函数,并且可以根据需要扩展出更多的运算符和函数。程序中包含一些细节上的bug,有兴趣的朋友可以完善一下。
本篇介绍如何将表达式分析成程序可以识别的记号对象列表,其中使用了依赖注入来提高灵活性。
阅读全文
摘要:上一篇提出用树视图分解表达式,但那只是抽象的表示,程序并不理解表达式的含义。本篇介绍如何将字符串形式的表达式表示成程序所能理解的信息。这里构造了一个数据类型用来存储表达式中的运算单元,叫做记号对象,而这些记号对象就是树视图中的节点。下一篇将介绍如何把表达式分解成一个个记号对象。
阅读全文
摘要:本系列文章介绍如何用C#实现一个类似于查询分析器的计算器。该计算器接受表达式输入,支持多行表达式,可选择部分表达式进行计算,能定位语法错误的位置,并且支持数值、字符串和逻辑值的计算,内置多种运算符和函数,并且可以根据需要扩展出更多的运算符和函数。程序中包含一些细节上的bug,有兴趣的朋友可以完善一下。
阅读全文