2016-05-15 18 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 
相关问题