吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5754|回复: 25
收起左侧

[原创工具] 长表达式计算器 1.1 by hez2010

[复制链接]
hez2010 发表于 2016-8-2 14:06
本帖最后由 hez2010 于 2016-8-2 19:44 编辑

暂时没有加入函数的计算支持,目前只实现了+、-、*、/、^五种运算。关于函数的支持你们可以直接把代码小改一下就能实现。本计算器为科学计算器,能判断运算顺序。
实现方法:手工模拟栈

思路:
计算过程中将中缀表达式转换为后缀表达式进行计算:
从左到右扫描整个中缀表达式
一、遇到数值则将数值入到数值栈
二、遇到算符时:
1、如果算符栈为空:入栈
2、否则:
(1)、如果遇到的是“(”,则入栈
(2)、如果遇到的是“)”,反复弹出两个数值和一个算符进行计算,并将结果入数值栈,直到弹到最近的一个“(”为止,然后将“(”弹出
(3)、如果遇到不是“(”也不是“)”,判断算符栈顶的算符和当前算符的优先级,如果当前算符优先级高,直接入算符栈,否则,反复弹出两个数值和一个算符进行计算,并将结果入数值栈,直到弹到最近的一个“(”或当前算符优先级高于算符栈顶的算符优先级为止
三、最后,数值栈底的数值便是最终结果


对于那种超级长的表达式,程序本身的运算速度很快,慢在了显示步骤,如果你把步骤回调函数里的编辑框加入文本那行代码注释掉,就能非常快的得出结果

支持显示运算步骤。

程序及源码:
hcalculator.7z (320.41 KB, 下载次数: 45)

来张图:
calc.PNG

在这里不得不吐槽一下易语言在数组方面有多恶心,它从1开始,简直无法正常写程序了!当初各种bug就是因为万恶的1开始的数组。就不能像C++一样数组从0开始吗!!!


免费评分

参与人数 7热心值 +7 收起 理由
ddawx123 + 1 支持楼主!同时希望添加静默参数调用接口,支持把计算结果输出到某个文件或.
zeveve + 1 谢谢@Thanks!
独行风云 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jsh2099 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qn542231788 + 1 支持一下新人
飞翔yh007 + 1 用心讨论,共获提升!
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| hez2010 发表于 2016-8-2 19:43
本帖最后由 hez2010 于 2016-8-2 19:45 编辑
cqr2287 发表于 2016-8-2 17:25
可以手动输入?用的分割文本么?

可以手动输入。不是分割文本,分割文本是无法处理优先级的,我这个是科学计算器,能处理优先级,是字符串一个一个往过扫,遇到数值进数值栈,遇到算符进算符栈,判断优先级,弹出两个数值进行计算。我编辑了下帖子,你可以看帖子里的步骤。具体你可以看源码
 楼主| hez2010 发表于 2016-8-11 20:26
ddawx123 发表于 2016-8-11 17:59
支持楼主!同时希望添加静默参数调用接口,支持把计算结果输出到某个文件或传入到某个注册表键值供其他appl ...

本身就是开源的,并且采用了单独的程序集来实现。你只需要小改一下就能写成一个dll让其他程序调用
gxhanzy 发表于 2016-8-2 14:36
头像被屏蔽
傲天~昊龙 发表于 2016-8-2 14:37
提示: 作者被禁止或删除 内容自动屏蔽
taxuewuhen 发表于 2016-8-2 14:40
下载来看看
Ⅸ夏天 发表于 2016-8-2 16:06
这样啊,不错
旧忆如梦 发表于 2016-8-2 17:16
感谢发布原创作品,吾爱破解论坛因你更精彩!
KaQqi 发表于 2016-8-2 17:25
可以手动输入?用的分割文本么?
KaQqi 发表于 2016-8-2 19:47
hez2010 发表于 2016-8-2 19:43
可以手动输入。不是分割文本,分割文本是无法处理优先级的,我这个是科学计算器,能处理优先级,是字符串 ...

好的,懂了,先用文本型输入数据,碰到运算符号再分辨
 楼主| hez2010 发表于 2016-8-2 19:48
cqr2287 发表于 2016-8-2 19:47
好的,懂了,先用文本型输入数据,碰到运算符号再分辨

差不多,但是运算符优先级是个比较麻烦的问题,需要用到栈。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-7 00:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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