2016-05-15 20 views
0

我正在做一個關於二分法的程序。在執行程序時我沒有遇到任何錯誤,但是當我運行它時,輸入數據,然後按下計算按鈕,不顯示任何答案,但會出現滾動條並凍結程序。當我運行程序時,項目不顯示在列表框中

我不知道什麼是錯,但我想它與邏輯錯誤有關。

Public Class Form1 
    Dim a As Double 
    Dim b As Double 
    Dim c As Double 
    Dim fa As Double 
    Dim fb As Double 
    Dim fc As Double 
    Dim err As Double 
    Dim n As Integer = 1 
    Dim x As Double 
    Dim diserr As String 
    Dim fas As String 
    Dim fbs As String 
    Dim fcs As String 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     a = TextBox1.Text 
     b = TextBox2.Text 
     err = TextBox3.Text 

     fa = a^3 - a - 3 
     fb = b^3 - b - 3 
     c = (a + b)/2 
     fc = c^3 - c - 3 
     x = Math.Abs(a - b) 

     Do While x > err 
      fa = a^3 - a - 3 
      fb = b^3 - b - 3 
      c = (a + b)/2 
      fc = c^3 - c - 3 
      x = Math.Abs(a - b) 


      If err < x Then 
       diserr = "No" 
      Else 
       diserr = "Yes" 
      End If 

      If fa > 0 Then 
       fas = "+" 
      Else 
       fas = "-" 
      End If 

      If fb > 0 Then 
       fbs = "+" 
      Else 
       fbs = "-" 
      End If 

      If fc > 0 Then 
       fcs = "+" 
      Else 
       fcs = "-" 
      End If 

      If diserr = "Yes" Then 
       fcs = Str(x) 
      End If 

      ListBox1.Items.Add(Str(n)) 
      ListBox2.Items.Add(Str(a)) 
      ListBox3.Items.Add(Str(b)) 
      ListBox4.Items.Add(Str(c)) 
      ListBox5.Items.Add(Str(x)) 
      ListBox6.Items.Add(diserr) 
      ListBox7.Items.Add(fas) 
      ListBox8.Items.Add(fbs) 
      ListBox9.Items.Add(fcs) 
      n = n + 1 

      If fas = "-" And fcs = "+" Then 
       b = c 
      End If 
      If fbs = "-" And fcs = "+" Then 
       a = b 
       b = c 
      End If 

     Loop 

    End Sub 
End Class 

回答

0

你需要考慮的情況下,fcs"-"
如果我不是誤解你的方法,你可以用

If fas <> fcs Then 
    b = c 
Else 
    a = b 
    b = c 
End If 
相關問題