当前位置:编程学习 > VB >>

数组赋值与存储

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 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
--------------------编程问答--------------------
引用 4 楼 Tiger_Zhao 的回复:
VB codeRedim preserve z(i)
Redim preserve w(i)


加了 preserve 才会保留原先数组中的值,这样最后就可以求 Max 了。


哦,还真是的。你真细心。 --------------------编程问答-------------------- 怎么给分的啊?
我想给 lyserver 分喔! --------------------编程问答-------------------- 点“结帖去…”,就可以了。 --------------------编程问答--------------------
引用 7 楼 ling0722 的回复:
怎么给分的啊? 
我想给 lyserver 分喔!

想给分不容易啊,看你的结贴率是0啊
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,