• [VB]运行到这里卡了,谁帮忙顺一下?

    Carneades Sun, 08 Mar 2009 12:48:59 +0000

    我想编辑一个可以解出复数根的一元二次方程计算器,结果老是卡在红字这里。
    麻烦大家帮我看下究竟该怎么改,谢谢!
    Private Sub CmdSolve_Click()
    Dim a As Single: a = Val(Text1.Text)
    Dim b As Single: b = Val(Text2.Text)
    Dim c As Single: c = Val(Text3.Text)
    Dim p As Single: p = b ^ 2 - 4 * a * c
    Dim x1 As Single, X2 As Single, e As Single, f As Single
    If a = 0 Then
    Text4.Text = "无解"
    Text5.Text = "无解"
    Else: If p >= 0 Then x1 = (-b + Sqr(p)) / (2 * a): X2 = (-b - Sqr(p)) / (2 * a): Text4.Text = x1: Text5.Text = X2
    Else: e = -b / (2 * a): f = (Sqr(-p)) / (2 * a): Text4.Text = Str(e) & "+" & Str(f) & "i": Text5.Text = Str(e) & "+" & Str(f) & "i"
    End If
    End If
    End Sub

  • # 1

    Francisco Sun, 08 Mar 2009 14:18:09 +0000

    如果If.....else要分行使用,那么then后面要换行,而且要有end If
    否则if和else要用在同一行。
    下面这两种都是可以的If a = 0 Then
        Text4.Text = \"无解\"
        Text5.Text = \"无解\"
    Else
        If p >= 0 Then
            x1 = (-b + Sqr(p)) / (2 * a): X2 = (-b - Sqr(p)) / (2 * a)
            Text4.Text = x1
            Text5.Text = X2
        Else
            e = -b / (2 * a): f = (Sqr(-p)) / (2 * a)
            Text4.Text = Str(e) & \"+\" & Str(f) & \"i\"
            Text5.Text = Str(e) & \"+\" & Str(f) & \"i\"
        End If
    End If If a = 0 Then
        Text4.Text = \"无解\"
        Text5.Text = \"无解\"
    Else: If p >= 0 Then x1 = (-b + Sqr(p)) / (2 * a): X2 = (-b - Sqr(p)) / (2 * a): Text4.Text = x1: Text5.Text = X2 Else: e = -b / (2 * a): f = (Sqr(-p)) / (2 * a): Text4.Text = Str(e) & \"+\" & Str(f) & \"i\": Text5.Text = Str(e) & \"+\" & Str(f) & \"i\"
    End If还有建议少使用“:”这样代码开起来有时会很乱

  • # 2

    Carneades Sun, 08 Mar 2009 14:20:29 +0000

    谢谢指点!那些行号是怎么来的?
    在VB中认“GOTO某某行”这种语句吗?

  • # 3

    Francisco Sun, 08 Mar 2009 14:33:48 +0000

    [i=s] 本帖最后由 Francisco 于 2009-3-8 14:39 编辑
    行号是discus的code代码带的。
    GoTo某某行后面可以时行号,也可以是标号,行号就是这个过程中的第几行,标号就是一串字符,以:结尾,如:
    .......
    if.....then goto line1
    .....
    line1:
    .....

  • # 4

    Carneades Sun, 08 Mar 2009 15:52:57 +0000

    谢谢了!
    下面把我这个能够解出虚根的一元二次方程计算器发布,欢迎各路高手批评指正!
    如果仅仅想用,只要保留那个.exe即可。

  • # 5

    山寨实验室 Sun, 08 Mar 2009 19:26:38 +0000

    VB中认goto某某行 才从QB转VB的时候常用 代码结构会很乱....