这是我编写的,调试时说下表越界,不知怎么回事,高手帮我啊!Option Explicit
Dim xl, yt, xr, yb As Double
Dim i, x1, y1, j, k As Variant
Dim c As Integer
Dim x(1 To 6000) As Long
Dim y(1 To 6000) As LongPrivate Sub Command1_Click()
xl = Text1.Text
yt = Text2.Text
xr = Text3.Text
yb = Text4.TextPicture1.Scale (Val(xl), Val(yt))-(Val(xr), Val(yb))
Picture1.Line (-100, 0)-(100, 0)
Picture1.Line (95, 3)-(100, 0)
Picture1.Line (95, -3)-(100, 0)
Picture1.CurrentX = 90
Picture1.CurrentY = 15
Picture1.Print "x"
'画x
Picture1.Line (0, 100)-(0, -100)
Picture1.Line (3, 95)-(0, 100)
Picture1.Line (-3, 95)-(0, 100)
Picture1.CurrentX = 5
Picture1.CurrentY = 95
Picture1.Print "y"
 '画y
 Picture1.CurrentX = 2
Picture1.CurrentY = 0
  Picture1.Print "o"                            '画圆点Command1.Enabled = FalseFor i = 1 To 6000 Step 1
x(i) = 1 - 1.4 * x(i - 1) * x(i - 1) + y(i - 1)
y(i) = 0.3 * x(i - 1)
Picture1.PSet (x(i), y(i))
c = DoEvents()
Next i
End Sub

解决方案 »

  1.   

    //For i = 1 To 6000 Step 1
    x(i) = 1 - 1.4 * x(i - 1) * x(i - 1) + y(i - 1)当i=1 时,你的语句相当于
    x(1) = 1 - 1.4 * x(0) * x(0) + y(0)
    而你又是:
    Dim x(1 To 6000) As Long
    Dim y(1 To 6000) As Long
    这样定义数组的,所以x(0)、 y(0)下标越界
      

  2.   

    Dim x(1 To 6000) As Long
    Dim y(1 To 6000) As Long
    改为
    Dim x(6000) As Long
    Dim y(6000) As Long