2010-11-11 31 views
1

HI 如何在简单的基本数组中存储简单的轮廓线?如何在Visual Basic数组中存储简单的轮廓线?

示例:如果有一个5​​×5的阵列,所述边缘= 100和阵列的中心= 110。然后:

100 100 100 100 100 

100 105 105 105 100 

100 105 110 105 100 

100 105 105 105 100 

100 100 100 100 100 

外环= 100,1个步骤内圈= 105然后中心= 110。

有没有一个这样做的通用程序?如果数组是偶数(如6 x 6),会发生什么? 6 x 6没有中心和奇数。

谢谢!

+0

要创建一个数组在Visual Basic中您可以使用 暗淡simpleContour(5 ,5)As Integer 但你的问题似乎是如何获得该数组中的值。我对吗? – dirbacke 2010-11-11 13:41:57

+0

是的,你是对的。事实上,我已经宣布了一切,但我只需要按照我解释的方式存储价值的方式。谢谢! – 2010-11-11 13:59:45

回答

1

这里是一些代码来创建数组:

Dim a(1 To 5, 1 To 5) As Integer 

Private Sub SetRing(lvl As Long, dimSize As Long, value As Long) 
    Call SetHValues(lvl, dimSize, value) 
    Call SetVValues(lvl, dimSize, value) 
End Sub 

Private Sub SetHValues(lvl As Long, dimSize As Long, value As Long) 
    Dim i As Long, k As Long 

    If lvl > (dimSize/2) + 1 Then Exit Sub 

    For i = lvl To dimSize - lvl + 1 
     ' horizontal values' 
     a(lvl, i) = value 
     a(dimSize - lvl + 1, i) = value 
    Next 
End Sub 

Private Sub SetVValues(lvl As Long, dimSize As Long, value As Long) 
    Dim i As Long, k As Long 

    If lvl > (dimSize/2) + 1 Then Exit Sub 

    For i = lvl To dimSize - lvl + 1 
     ' vertical values' 
     a(i, lvl) = value 
     a(i, dimSize - lvl + 1) = value 
    Next 
End Sub 

以及创建样本数组,你会打电话:

Call SetRing(1, 5, 100) 
Call SetRing(2, 5, 105) 
Call SetRing(3, 5, 110)