新手学VB

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:55:37
Private Sub Command1_Click()
Dim a As Double
Dim b As Double
Dim c As Double
Dim X1 As Double
Dim X2 As Double
Dim delt As Double
a = Txt_a.Text
b = Txt_b.Text
c = Txt_b.Text
delt = Sqr(b ^ 2 - 4 * a * c)
X1 = (-b + delt) / (2 * a)
X2 = (-b - delt) / (2 * a)
Txt_X1.Text = X1
Txt_X2.Text = X2
End Sub
求根,找不出哪错了??

Private Sub Command1_Click()
Dim a As Double
Dim b As Double
Dim c As Double
Dim X1 As Double
Dim X2 As Double
Dim delt As Double
a = Val(Txt_a.Text)
b = Val(Txt_b.Text)
c = Val(Txt_b.Text)
If b ^ 2 - 4 * a * c < 0 Then Exit Sub
delt = Sqr(b ^ 2 - 4 * a * c)
X1 = (-b + delt) / (2 * a)
X2 = (-b - delt) / (2 * a)
Txt_X1.Text = X1
Txt_X2.Text = X2
End Sub

delt = Sqr(b ^ 2 - 4 * a * c) 这里出错咯

首先检查一下c=txt_c.text是否打错了?是txt_b.text吗?其次把那三句换成a=val(txt_a.text)等,这样更严密。最后,用一个判断句判断一下b*b-4*a*c是否为非负数。
编程要有一个好习惯。

你不判断b^2-4ac是否小于0,就开方,自然就会出错了。应该这样写:
Dim a As Double
Dim b As Double
Dim c As Double
Dim X1 As Double
Dim X2 As Double
Dim delt As Double
a = Txt_a.Text
b = Txt_b.Text
c = Txt_b.Text

if (b ^ 2 - 4 * a * c)>=0 then
delt = Sqr(b ^ 2 - 4 * a * c)
else