切换到宽版
  • 7218阅读
  • 21回复

[VB]运行到这里卡了,谁帮忙顺一下? [复制链接]

上一主题 下一主题
离线Carneades
 

只看楼主 倒序阅读 楼主  发表于: 2009-03-08
我想编辑一个可以解出复数根的一元二次方程计算器,结果老是卡在红字这里。
麻烦大家帮我看下究竟该怎么改,谢谢!
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
我们耕种,我们建筑,学习创造干劲足!
Laßt uns pflügen, laßt uns bauen, lernt und schafft wie nie zuvor!
离线Francisco

只看该作者 沙发  发表于: 2009-03-08
如果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还有建议少使用“:”这样代码开起来有时会很乱
离线Carneades

只看该作者 板凳  发表于: 2009-03-08
谢谢指点!那些行号是怎么来的?
在VB中认“GOTO某某行”这种语句吗?
我们耕种,我们建筑,学习创造干劲足!
Laßt uns pflügen, laßt uns bauen, lernt und schafft wie nie zuvor!
离线Francisco

只看该作者 地板  发表于: 2009-03-08
[i=s] 本帖最后由 Francisco 于 2009-3-8 14:39 编辑

行号是discus的code代码带的。
GoTo某某行后面可以时行号,也可以是标号,行号就是这个过程中的第几行,标号就是一串字符,以:结尾,如:
.......
if.....then goto line1
.....
line1:
.....
离线Carneades

只看该作者 4楼 发表于: 2009-03-08
谢谢了!
下面把我这个能够解出虚根的一元二次方程计算器发布,欢迎各路高手批评指正!
如果仅仅想用,只要保留那个.exe即可。
附件: 一元二次方程计算器2.rar (5 K) 下载次数:8
我们耕种,我们建筑,学习创造干劲足!
Laßt uns pflügen, laßt uns bauen, lernt und schafft wie nie zuvor!

只看该作者 5楼 发表于: 2009-03-08
VB中认goto某某行 才从QB转VB的时候常用 代码结构会很乱....
哦 马上放假鸟~~实验的季节 ^ ^
离线Francisco

只看该作者 6楼 发表于: 2009-03-08
是的,goto会使代码结构比较混乱,一般是在on error goto....错误处理用,其他时候很少用。

只看该作者 7楼 发表于: 2009-03-08
一般都是goto err_handle

额~vb里call xxx 定义一个函数不是可以代替goto?
哦 马上放假鸟~~实验的季节 ^ ^
离线Carneades

只看该作者 8楼 发表于: 2009-03-08
QB是什么?我以前用文曲星NC1020编写程序的时候经常用GOTO某某行。
我们耕种,我们建筑,学习创造干劲足!
Laßt uns pflügen, laßt uns bauen, lernt und schafft wie nie zuvor!
离线Lucifer

只看该作者 9楼 发表于: 2009-03-08
QB是QBasic吧。Dos下的Basic语言。
vb中不但可以goto 行号,也可以goto 标签。
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个