数组赋值与存储
For y = 0 To Picture1.ScaleY(Picture1.Picture.Height, vbHimetric, vbPixels) - 1For x = 0 To Picture1.ScaleX(Picture1.Picture.Width, vbHimetric, vbPixels) - 1
If Picture1.Point(x, y) = RGB(0, 0, 0) Then
ReDim z(i)
ReDim w(i)
z(i) = x
w(i)=y
i = i + 1
k = x
p = y
Debug.Print x, y
End If
Next
Next
z(i)和w(i)都是动态的,i值不知道是多少。
如何将所有符合条件的x,y分别赋值给数组z(i)和w(i)?
赋值之后,使用什么语句可以求的z(i)的最大值和最小值?
重酬50分!!急用!!
--------------------编程问答-------------------- 1、如何将所有符合条件的x,y分别赋值给数组z(i)和w(i)?
感觉你现在写的程序已经完成这一步了吧?
2、赋值之后,使用什么语句可以求的z(i)的最大值和最小值?
这个简单。从0到ubound(z(i))挨个比一遍就得。 --------------------编程问答-------------------- If Picture1.Point(x, y) = RGB(0, 0, 0) Then
建议Picture1.Point(x, y)与RGB(0, 0, 0)都换算成LONG
至于使用什么语句可以求的z(i)的最大值和最小值,求数组最大值与最小值的模块多得很,搜一下就有. --------------------编程问答-------------------- 求最大值最小值的命令应该放在什么位置呢?
试过使用以下语句
Public Function max(x As Integer) As Integer
max = 0
If max < x Then
max = x
End Function
可是求不了z(i)的最大值,又不知道问题出现在那里。
求救啊!!帮帮我吧!! --------------------编程问答--------------------
Redim preserve z(i)
Redim preserve w(i)
加了 preserve 才会保留原先数组中的值,这样最后就可以求 Max 了。 --------------------编程问答-------------------- 求最大值与赋值同时进行,代码如下:
--------------------编程问答--------------------
Private Sub Command1_Click()
Dim i As Long, nMax As Long
Dim z() As Long, w() As Long
For y = 0 To Picture1.ScaleY(Picture1.Picture.Height, vbHimetric, vbPixels) - 1
For x = 0 To Picture1.ScaleX(Picture1.Picture.Width, vbHimetric, vbPixels) - 1
If Picture1.Point(x, y) = RGB(0, 0, 0) Then
ReDim Preserve z(i)
ReDim Preserve w(i)
z(i) = x
w(i) = y
If z(i) > nMax Then nMax = z(i)
i = i + 1
k = x
p = y
Debug.Print x, y
End If
Next
Next
Debug.Print "最大值", nMax
Erase z
Erase w
End Sub
哦,还真是的。你真细心。 --------------------编程问答-------------------- 怎么给分的啊?
我想给 lyserver 分喔! --------------------编程问答-------------------- 点“结帖去…”,就可以了。 --------------------编程问答--------------------
想给分不容易啊,看你的结贴率是0啊
补充:VB , 基础类