2015-07-12 92 views
-1

我必須編寫一個計算二次方程並找到其根源的程序。根據必須通過MsgBox-es顯示,變量A,B和C 必須通過InputBox-es輸入。現在我已經寫了這個,但它不知何故不起作用,我不明白爲什麼。 **我是新來的Visual Basic ..二次方程Visual Basic 2010+

Public Class Form1 
Dim A As Integer 
Dim B As Integer 
Dim C As Integer 
Dim Det As Double 
Dim x1 As Double 
Dim x2 As Double 


Private Sub txtA_Click(sender As Object, e As EventArgs) Handles txtA.Click 
    txtA.Text = InputBox("Please, enter value of the variable A.", "Enter A") 
End Sub 

Private Sub txtB_Click(sender As Object, e As EventArgs) Handles txtB.Click 
    txtB.Text = InputBox("Please, enter value of the variable B.", "Enter B") 
End Sub 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

End Sub 

Private Sub cmdCalculate_Click(sender As Object, e As EventArgs) Handles cmdCalculate.Click 
    A = Val(txtA.Text) 
    B = Val(txtB.Text) 
    C = Val(txtC.Text) 
    Det = B^2 + 4 * A * C 
    If Det > 0 Then 
     x1 = (-B + Math.Sqrt(Det))/(2 * A) 
     x2 = (-B - Math.Sqrt(Det))/(2 * A) 
     MsgBox("The roots are " + x1 + " and " + x2 + " ! ", 64, "2 Roots") 
    ElseIf Det = 0 Then 
     x1 = -B/(2 * A) 
     MsgBox("The roots are " + x1 + " ! ", 64, "1 Double Root") 
    ElseIf Det < 0 Then 
     MsgBox("No roots ! ", 64, "No Roots") 
    End If 

End Sub 

Private Sub txtC_Click(sender As Object, e As EventArgs) Handles txtC.Click 
    txtC.Text = InputBox("Please, enter value of the variable C.", "Enter C") 
End Sub 

Private Sub cmdExit_Click(sender As Object, e As EventArgs) Handles cmdExit.Click 
    End 
End Sub 

Private Sub cmdClear_Click(sender As Object, e As EventArgs) Handles cmdClear.Click 
    txtA.Text = "" 
    txtB.Text = "" 
    txtC.Text = "" 
End Sub 

末級

http://imgur.com/hIcDxFv < - 屏幕視圖

回答

0

呵呵,問題只是由於X1和X2必須在海峽()..

If Det > 0 Then 
     x1 = (-B + Math.Sqrt(Det))/(2 * A) 
     x2 = (-B - Math.Sqrt(Det))/(2 * A) 
     MsgBox("The roots are " + Str(x1) + " and " + Str(x2) + " ! ", 64, "2 Roots") 
    ElseIf Det = 0 Then 
     x = -B/(2 * A) 
     MsgBox("The roots are " + Str(x) + " ! ", 64, "1 Double Root")