22-05-20, 10:22 PM
حاولت برمجة برنامج آلة حاسبة
نجحت فى تنفيذ عملية بسيطة فقط مثل 2 + 2
ولكن عند محاولة أداء عملية أعقد مثل:
2 + 2 + 2
أو مثلاُ
2 + 2 - 5 * 8
لم أنجح فى أدائها
وهذا كود البرنامج بالكامل
علماً بأن function هنا تعطى عند التنفيذ دائماً Invalid Operation
نجحت فى تنفيذ عملية بسيطة فقط مثل 2 + 2
ولكن عند محاولة أداء عملية أعقد مثل:
2 + 2 + 2
أو مثلاُ
2 + 2 - 5 * 8
لم أنجح فى أدائها
وهذا كود البرنامج بالكامل
علماً بأن function هنا تعطى عند التنفيذ دائماً Invalid Operation
كود :
Private Function DoMath(equation) As String
Dim equationString As String = (equation)
Dim lettersAloud() As Char = {"+", "-", "/", "*"}
Dim mOperator As String = (equationString.IndexOfAny(lettersAloud))
Dim num1 As String = (Mid(equationString, 1, mOperator - 1))
Dim num2 As String = (Mid(equationString, mOperator + 1, equationString.Length))
Dim answer As Double
If (mOperator = ("+")) Then
answer = (CInt(num1) + CInt(num2))
ElseIf (mOperator = ("-")) Then
answer = (CInt(num1) - CInt(num2))
ElseIf (mOperator = ("*")) Then
answer = (CInt(num1) * CInt(num2))
ElseIf (mOperator = ("/")) Then
answer = CInt(num1) / CInt(num2)
Else
Return ("Invalid Operation")
End If
Return (answer.ToString)
End Function
Private Sub buttons(sender As Object, e As EventArgs) Handles Btn0.Click, Btn1.Click, Btn2.Click, Btn3.Click, Btn4.Click, Btn5.Click, Btn6.Click, Btn7.Click, Btn8.Click,
Btn9.Click
If CalculatorText.Text = "" Then
CalculatorText.Text = sender.text
Else CalculatorText.Text = CalculatorText.Text & sender.text
End If
End Sub
Private Sub BtnPoint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPoint.Click
CalculatorText.Text += BtnPoint.Text
End Sub
Private Sub BtnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClear.Click
CalculatorText.Clear()
CalculatorResult.Clear()
End Sub
Private Sub BtnPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPlus.Click
CalculatorText.Text += "+"
End Sub
Private Sub BtnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMinus.Click
CalculatorText.Text += "-"
End Sub
Private Sub BtnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDivide.Click
CalculatorText.Text += "/"
End Sub
Private Sub BtnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMultiply.Click
CalculatorText.Text += "*"
End Sub
Private Sub BtnResult_Click(sender As Object, e As EventArgs) Handles BtnResult.Click
CalculatorResult.Text = DoMath(CalculatorText.Text)
End Sub