Skip to content

Latest commit

 

History

History
149 lines (106 loc) · 4.36 KB

README.md

File metadata and controls

149 lines (106 loc) · 4.36 KB

Programming-calculator

The Great Assignment of 《Data Structure》from Chapter1 to Chapter5. To tell you more, read this instruction manual below.

使用手册✏️


用户在运行程序后,看到如下显示:

截屏2021-11-06 上午1 08 51

然后在终端输入"A","B","C","D","E","F"中的一个,注意需要为【大写】,然后直接按下回车键。

计算模式➕➖✖️➗

如上图可知,该计算器实现6种计算模式,实现了5种计算要求。

  • A:表达式计算
  • B:编程计算
  • C:编程矩阵运算
  • D:向量的相关运算
  • E:用顺序表实现多项式的相关计算
  • F:用链表实现多项式的相关计算

其中,E和F属于同一计算要求,是《数据结构》课程中对两种结构:线性表和链表 的练习和实现。用户可以通过两种结构的实现互相印证,也可以帮我检查一下有没有什么隐藏的bug XD

相关操作和使用🔖

含参表达式计算

用户直接输入需要求取的表达式,然后按下回车即可计算答案。

  • 四则运算表达式求值,操作符包括加('+')、减('-')、乘('*')、除('/')、左右括号,而操作数则包括整数和浮点数等C/C++支持的不同类型的数值。
  • 含单变量表达式的求值,用户设置形如$x,y,x_1,x_2,u,v$等变量。
  • 含多变量表达式的求值,用户可以在一个表达式中输入不同变量的值,按照变量第一次出现的顺序输入。
  • 相同的且重复出现的变量只需要输入一次。

输入示例

请输入表达式:
(5+4)*3/2+1
结果为14.5
请输入表达式x/2+x*3
请输入变量的值1
结果为3.5
请输入表达式:
(5+x1)*x2/x3+1
请输入变量的值4.9
请输入变量的值2
请输入变量的值3
结果为7.6

注意

  1. 表达式中,【不需要】也【无法】加空格,在输入时请注意,会报错(当然因此会简化算法的复杂醒,精力有限hhh)。
  2. 表达式不易过长,会有长度限制,(但目前暂时未知最长是多少)。
编程计算

这是一个由用户自定义函数和运行的模式,现将相关指令和注意事项约定如下:

  • DEF】方法

    • 定义一个函数,格式为DEF f(x)

    • DEF f(x)=x+1
  • RUN】方法

    • 运行一个函数,格式为RUN f(1)

    • RUN f(1)
  • END】方法

    • 结束编程计算环境。直接输入END,按下回车键即可退出程序。
  • ^】方法
    • 函数的次方。格式为DEF g(x)=f(x)^2;
  • 保留了历史函数,可以运行历史函数。

  • 函数的调用。已经定义了$f(x)$,$g(x)$中可以重复调用。

输入示例

DEF f(x)=x+1
你定义了第1个多项式f(x)=x+1
DEF g(x)=3+4*f(x)
你定义了第2个多项式g(x)=3+4*(x+1)
RUN g(2.5)
结果为17
DEF f(x)=x+1
你定义了第1个多项式f(x)=x+1
DEF g(x)=f(x)^2
你定义了第2个多项式g(x)=(x+1)*(x+1)
编程矩阵计算

这是一个由用户自定义函数和运行的模式,现将相关指令和注意事项约定如下:

  • DEF】方法

    • 定义一个矩阵,格式为DEF m1
    • 按下回车之后将输入【行数】和【列数】,格式为row col,row和col为输入的行和列
    • 按下回车后将输入矩阵的值,依次输入,输够后按下回车。
    • 然后将显示矩阵的名字和值。
  • 【**print **】方法

    • 显示已经定义的矩阵,格式为print m1
  • DET】方法

    • 求矩阵的行列式,格式为DET m1
  • EIG】方法

    • 求矩阵的特征值,格式为EIG m1
    • 该方法同时还调用了多个函数,如【DET】方法和判断是否为非奇异矩阵,并且用到了QR分解迭代方法求取矩阵特征值,精度为$1e-5$级别。
  • 矩阵基本运算方法

    • 支持➕,➖,✖️,数乘方法。
    • m1+m2
    • m1*m2
    • 1.5*m1
  • END】方法

    • 使用方法同上。

输入示例

截屏2021-11-06 上午1 09 51