急...Visual Basic编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 07:52:50
我做了一个二次函数分析器,代码如下:

Private Sub Command4_Click()
Dim a
Dim b
Dim c
Dim h
Dim i
Dim xa
Dim xb
Dim x
Dim y
Dim m
Dim n
Dim r
Dim fm
Dim fn
Dim fa
Dim fb
If Text1.Text = 0 Then
Label1.ForeColor = &HFF&
Label1.Caption = "二次项系数不能为0!"
Else
a = Text1.Text
b = Text2.Text
c = Text3.Text
Label1.ForeColor = &HFF00&
Label1.Caption = "输入正确,以下显示结果:"
h = b * b - 4 * a * c
x = -b / (2 * a)
y = -h / (4 * a)
Text4.Text = h
Text8.Text = x
Text9.Text = y
If h >= 0 Then
i = h ^ 0.5
xa = (-b - i) / (2 * a)
xb = (-b + i) / (2 * a)
Text5.Text = i
If xa < xb Then
Text6.Text = xa
Text7.Text = xb
Else
Text6.Text = xb
Text7.Text = xa
End If
Else
Text5.Text = "不存在"
Text6.Text = "不存在"
Text7.Text = "不存在"
End If

你的逻辑,虽然看起来是基本正确的(得把If m <= x <= n Then
改成if m<=x and x<=n then),但是程序还是不要这么写哦,太不清晰啦

你得不到正常的结果,就因为你把变量都定义成变体类型啦,变体类型的值赋值给数值类型的变量没问题,但变体类型之间比较大小,一不留神就会出错的,因为它们不是按照数值类型来比较大小的,如果你
Dim x as single
Dim m as single
dim n as single
你再看看结果

if text1.text =0 then
mgsbox"程序出错,二次向系数不能为零。"

本来就是这样写的 If m <= x And x <= n Then

看不懂m,n是什么意思,text17,text18 输出的什么.
这个程序要分析的是什么?

哇,好大一段代码!!!!!看得我都眼花缭乱了,用得着那么多的代码和控件么?