工作好忙。。。所以现在才来更新。。。

有了前面的铺垫,要加入功能就很简单了,下面我们加入对函数的支持

一、函数的要点有3个
1. 名称: 没有名字可程序就不能识别了,呵呵
    例: Sin, Cos, Abs 等
2. 参数:一个函数至少要有一个参数,参数必须放到括号里, 多个参数用逗号(,)分隔
3. 计算:函数必须有一个输出值

二、了解了这几点,加入函数的功能还是比较容易的
1.根据函数的要点定义基类 FunctionBase, 加入一些属性
a.名称
支持函数,变量的算术表达式计算(三、加入函数)        protected string name;
        }
 b.参数
支持函数,变量的算术表达式计算(三、加入函数)        protected decimal?[] data;
        }
c. 计算
 Calc();
2. 解析表达式的时候, 加入对函数的支持
再第二章的ConvertExpression结尾,已经有对函数的支持了,贴一小段看看
;

ProcFunc 函数和其它的 ProcXXXX 函数差不多, 无非就是对字符的解析
支持函数,变量的算术表达式计算(三、加入函数)        private void ProcFunc(ref int index, ref string expression)
        }

3. 修改 CalcOperator 函数, 加入对函数的计算
支持函数,变量的算术表达式计算(三、加入函数)            if (IsBaseOperator(op))
            }
三、编写具体的函数
a . 函数工厂类 FuncFactory , 根据函数名称返回具体的函数类, 略。。。
b. 编写一个 sqrt 函数,作为实例,可自行添加任意函数
    }

PS:前面有个朋友说缺少幂运算, 呵呵, 加上这个很简单
看看加入了函数和幂运算的效果 :)
支持函数,变量的算术表达式计算(三、加入函数)
下载程序

相关文章:

  • 2022-01-14
  • 2021-05-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-10
  • 2021-06-27
猜你喜欢
  • 2021-08-31
  • 2021-07-03
  • 2021-07-31
  • 2021-11-11
  • 2022-02-15
  • 2021-07-16
相关资源
相似解决方案