编辑2: *修正了一些语法,使其更容易理解。
我需要有关在vb.net中构建PEMDAS应用程序的帮助。我希望它能解决这样输入的方程式,例如:4 - 3(4 -2(6 - 3))÷2。我试图使它在输入文本框中然后单击按钮时将在标签上显示该等式的答案。我首先尝试编写用于查找括号的部分,但它不起作用。我试图让程序在等式中查找括号,然后根据括号内的运算符,它将对内部的两个数字进行加,减,除或乘。我的代码是:
Public Class Form1
Private Property ValidChars As String
Private Property Num2 As Object
Private Property Num1 As Object
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ValidChars = ("()")
If TextBox1.Text = ValidChars Then
TextBox1.Text() = Num1 + Num2
End If
End Sub
End Class
任何帮助都将受到赞赏。
谢谢,再见!
编辑1:
您好我需要有关构建PEMDAS应用程序的帮助,我需要帮助。我有一个文本框和一个按钮,我需要按下才能得到答案,答案将在标签上。我首先做了括号,这是我没有工作的部分。我需要的是一个可以在括号中找到数字然后如果它显示+,/, - ,*的东西,那么它会做的事情但我需要帮助。我的代码是:像这样的操作顺序程序,例如:4 - 3(4 -2(6 - 3))÷2及其答案。
Public Class Form1
Private Property ValidChars As String
Private Property Num2 As Object
Private Property Num1 As Object
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ValidChars = ("()")
If TextBox1.Text = ValidChars Then
TextBox1.Text() = Num1 + Num2
End If
End Sub
End Class
任何帮助都将受到赞赏。
谢谢再见!
答案 0 :(得分:1)
这应该是你正在寻找的。这个内置函数有其局限性,特别是如果表达式涉及三角函数,但这应该足以满足您的需求。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim answer = New DataTable().Compute(TextBox1.Text, Nothing)
MsgBox(answer)
Catch ex As Exception
MsgBox("Syntax Error")
End Try
End Sub
如果你想要一个更具挑战性的方法,我建议你这样做,你可以创建自己的算法来操纵字符串并获取数字来解决表达式。字符串操作函数应该是您需要的函数,如Mid,Split,Contains等。