帮我看看这个程序的错误!

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:41:57
Private Sub Command1_Click()
d = 1
i = 1
r = 1
min = 100000
n = Val(InputBox("n=", "请输入x,y的数量,不少于3个"))
For i = 1 To n
g(i) = Val(InputBox("x" & "=", "请输入x的值"))
h(i) = Val(InputBox("y" & "=", "请输入y的值"))
Next i '输入
Do
i = r
d = 1
Do
x(d) = g(i)
y(d) = h(i)
i = i + 1
d = d + 1
Loop Until d > 3 '将值赋在x1,x2,x3上
Call Qua
E = 0
Do
E = E + Abs(h(i) - (a * x(i) ^ 2 + b * x(i) + c))
i = i + 1
Loop Until i > n 'E为数值偏差的累加
If E < min Then
min = E
End If
r = r + 1
Loop Until r > n - 2
'目标:找到min对应的a,b,c
i = 1
r = 1
d = 1
Do
i = r
Do
x(d) = g(i)
y(d) = h(i)
i = i + 1
d = d + 1
Loop Until d > 3 '将值赋在x1,x2,x3上
Call Qua
i =

If E = min Then
Text1.Text = a & " " & b & " " & c
这一句好象总不能满足啊!我试了n次!
会不会以上的计算错了?
E基本上不能等于min.

你的循环可以说是混乱的。什么样的工作会用到这么多循环,还都是do...Loop Until循环看了一下下,就不记得那个对那个了。我脑子里怎么就不会压栈出栈呢。
因为不知道你要实现的功能,也不知道完整的程序所没法给你建议了。

看着像混沌分形的算法

难度很大!

Dim g(100) As Integer
Dim h(100) As Integer
Dim x(100) As Integer
Dim y(100) As Integer

Private Sub Command1_Click()
d = 1
i = 1
r = 1
min = 100000
n = Val(InputBox("n=", "请输入x,y的数量,不少于3个"))
For i = 1 To n
g(i) = Val(InputBox("x" & "=", "请输入x的值"))
h(i) = Val(InputBox("y" & "=", "请输入y的值"))
Next i '输入
Do
i = r
d = 1
Do
x(d) = g(i)
y(d) = h(i)
i = i + 1
d = d + 1
Loop Until d > 3 '将值赋在x1,x2,x3上
Call Qua
E = 0
Do
E = E + Abs(h(i) - (a * x(i) ^ 2 + b * x