| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 518 人关注过本帖
标题:编了个计算器不会用”(“和”)“优先级不会啊。怎么弄啊。。
只看楼主 加入收藏
赤热的心
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-25
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
编了个计算器不会用”(“和”)“优先级不会啊。怎么弄啊。。
Dim shu1 As Single, shu2 As Single, suanfu As String
Private Sub Command1_Click(Index As Integer)
Text1.Text = Text1.Text & Command1(Index).Caption
End Sub

Private Sub Command10_Click()

End Sub

Private Sub Command2_Click(Index As Integer)
 shu1 = Val(Text1.Text) '将shu1隐藏起来
 suanfu = Command2(Index).Caption
 Text1.Text = ""
End Sub
Private Sub Command4_Click()
Text1.Text = Text1.Text + "."
If (InStr(Text1.Text, ".") = 1) Then '第一位不能为小数
 Text1.Text = ""
 End If
If InStr(Text1.Text, ".") < Len(Text1.Text) Then
'防止出现两个小数点
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End If
End Sub
Private Sub Command5_Click() '开始加减乘除的运算
shu2 = Val(Text1.Text)
Select Case suanfu
Case "+"
Text1.Text = shu1 + shu2
Case "-"
Text1.Text = shu1 - shu2
Case "*"
Text1.Text = shu1 * shu2
Case "平方"
Text1.Text = shu1 * shu1
Case "立方"
Text1.Text = shu1 * shu1 * shu1
Case "^"
Text1.Text = (shu1) ^ (shu2)
Case "/"
Text1.Text = shu1 / shu2
Case "sin"
Text1.Text = Sin(shu2 * 3.14 / 180)
Case "cos"
Text1.Text = Cos(shu2 * 3.14 / 180)
Case "tan"
Text1.Text = Tan(shu2 * 3.14 / 180)

End Select
End Sub
Private Sub Command3_Click() '假如输入错误,可每次退后一格
If Text1.Text = "" Then
Exit Sub
End If
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End Sub
Private Sub Command6_Click()
Text1.Text = "" '清除
End Sub
Private Sub Command7_Click()
End
End Sub

Private Sub Command8_Click()
a = Int(Rnd() * 255)
b = Int(Rnd() * 255)
c = Int(Rnd() * 255)
Form1.BackColor = RGB(a, b, c)
End Sub
搜索更多相关主题的帖子: 计算器 优先级 
2013-12-25 18:31
vbvcr51
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:18
帖 子:364
专家分:1724
注 册:2013-11-3
收藏
得分:7 
和什么意思,是说and吗?
2013-12-25 21:57
赤热的心
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-25
收藏
得分:0 
回复 2楼 vbvcr51
是优先级的意思。我想编一个能加减乘除混合运算的。
2013-12-25 21:59
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:7 
先搜索 () ,然后把这中间的部分当做一个完整的 表达式 进行运算,运算完成后,再替换到原来的式里去继续运算。

  搜索,先从左边找第一 ) ,然后再这个 ) 向左找第一个 ( 。找到后,这部分去去运算,换掉。
然后再继续搜索
直到没找到 ) 为止,然后再去运算。

慢慢想吧。
这个比较复杂,我以前写过一个,结果有BUG,后面没再去修改了。

授人于鱼,不如授人于渔
早已停用QQ了
2013-12-26 12:37
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:7 
do
搜索最后一个()
运算
替换
loop

无知
2013-12-26 14:09
赤热的心
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-25
收藏
得分:0 
回复 5楼 Artless
嗯,谢了,我试试。
2013-12-26 17:23
赤热的心
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-12-25
收藏
得分:0 
回复 4楼 风吹过b
嗯,谢了哈。我试一试。
2013-12-26 17:24
快速回复:编了个计算器不会用”(“和”)“优先级不会啊。怎么弄啊。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016561 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved