hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 928|回复: 5

落叶高精度表达式计算器v1.1版

[复制链接]

579

主题

591

帖子

1876

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1876
发表于 2024-4-14 15:45:47 | 显示全部楼层 |阅读模式
落叶高精度表达式计算器v1.1版
   
针对1.0版作了以下更改:
     纠正了开立方程序某一些特殊数精度不够的问题,纠正了自然对数函数中的一个辅助子函数的问题,万位精度自然对数运算时间由1.0版的7秒,变回现在的6秒,
     纠正了乘方运算符和阶乘运算符运算等级定位不准的问题,填加了乘方程序对一些特殊值的判断。纠正了乘方运算小位数,高精度运算过慢的问题,例:123^10000万位精度时过慢的问题。1.0版需要1.5秒,现0.2秒左右。
     取消了原程序中的公式,算式存入功能,用更加强大的预定义变量和赋值语句代替。

1.1版增加了四大功能:详情看帮助!

    1.多次运算结果显示功能,对已运算的内容保持在程序文体框中,方便查看,你可以复制它的内容为你所用,但却不可编缉它!

   
    2.批量处理或计算功能,可以对以分号隔开的各赋值语句,函数定义语句,表达式进行批量处理:
       例:输入1+2;a=3;b=4;c= a*b;c*2;效果如下:


然后点击计算按钮,效果如下:



     3.预设了25个变量,变量名为25个小写字母(26个小写字母中的e 除外),配合简单的赋值语句可以应对各种运算,来个简单的例子,详情看帮助!
       例:输入a=5;b=6;c= 7;((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))√/4 效果如下:


然后点击计算按钮,效果如下:


上面的表达式是计算三角形的表面积公式。

4.增加了函数定义功能,支持所有的可以用表达式表达的函数,并且支持中文函数名,
例:定义一个正多面形表面积函数用用,在程序文本框中输入:
正多边形表面积(a,n)=n*a^2*cos(π/n)/(4*sin(π/n));    这里a代表边长,n代表有几个边,效果如下:


然后点击计算按钮,函数加入系统完成,可以在自定义函数组合框选定该函数运算:
然后输入a=5;n=21;正多边形表面积(a,n);或直按输入:正多边形表面积(5,21);效果如下:




下载地址:落叶高精度表达式计算器v1.1版

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

219

帖子

86

积分

关内侯

Rank: 2

积分
86
发表于 2024-4-14 15:45:59 | 显示全部楼层
非常不错,建议把点键输入和表达式输入分开,弄成两种输入模式。在点键模式中√代表根号,根号3是根据点击顺序3、√来计算,类似微软的输入顺序。但在表达式输入时,则是按正常顺序写√3。你目前计算器就是这两种模式混淆了,导致表达式也成了倒着根号。

还有变量不能只限定为一个字母,应该在栈上建立一个变量表,专门存放变量名。


sqrt2+sqrt3

建议增加sqrt()开方函数,方便用户键盘录入根号。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

262

主题

439

帖子

973

积分

中郎将

Rank: 4

积分
973
发表于 2024-4-14 15:46:41 | 显示全部楼层
好的,谢谢,这些都是我没想到的,下版改正!!!
第一个问题可以快速解决,第二个问题我先想想!
我会为每一个特殊且难输入的运算符提供对应的函数。方便键盘输入。
变量方面准备增加自定义变量语句。
回复

使用道具 举报

0

主题

187

帖子

163

积分

关内侯

Rank: 2

积分
163
发表于 2024-4-14 15:47:34 | 显示全部楼层
正好试试自定义函数功能:sqrt(x)=x√;
sqrt(2) = 1.4142135623730950488016887242097
Natural√ = 1.6487212707001281468486507878142
sqrt(Natural) = 1.6487212707001281468486507878142
a=5
b=6
c=7
((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))√/4 = 1.4696938456699068589183704448235E1
sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c))/4 = 1.4696938456699068589183704448235E1
好了,第一个问题初步解决!下次再从内部代码解决。
其它如度,分,秒也可以用你喜欢的函数名代替。也可对你不喜欢的函数名重新定义:
如:开立方(x)=cuberoot(x);
cuberoot(Natural) = 1.3956124250860895286281253196026
开立方(Natural) = 1.3956124250860895286281253196026

如果你不介意变量名后有一个"()",自定义变量现也可简单实现,如:mytemp1()=0;mytemp2()=0;好了,两个函数形式的变量已定义,
mytemp2()=8;
mytemp1()=9;
菱形周长(mytemp2(),mytemp1()) = 2.4083189157584590960256482060757E1
菱形周长(8,9) = 2.4083189157584590960256482060757E1
好了,现在有了两个非常难看的变量,变量的内容也是长期保存的,只到下一次赋值。
回复

使用道具 举报

0

主题

180

帖子

25

积分

新手上路

Rank: 1

积分
25
发表于 2024-4-14 15:47:42 | 显示全部楼层
还有Natural这名字不好,应该用exp(1)表示自然对数e,要与标准一致。
回复

使用道具 举报

0

主题

172

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-4-14 15:48:39 | 显示全部楼层
64位系统无法运行,可能是COMDLG32.OCX版本问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-5-8 05:55 , Processed in 0.078279 second(s), 22 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表