Как ввести значение для количества строк в массиве? - PullRequest
1 голос
/ 09 февраля 2020

Я хотел бы ввести количество строк в треугольнике Pascal, которое будет использоваться в строке Dim i(10, 10) As Integer.

Ниже приведен код без этой функции:

Sub PascalTriangle()

    Dim i(10, 10) As Integer
    Dim p, j As Integer

    i(0, 0) = 1
    i(1, 0) = 1
    i(1, 1) = 1

    For p = 2 To 10 'put one for the first column, here the number of row is 10
        i(p, 0) = 1

        For j = 1 To p
            i(p, j) = i(p - 1, j - 1) + i(p - 1, j)
        Next
    Next

    For p = 0 To 10
        For j = 0 To p
            Cells(p + 1, j + 1) = i(p, j)
        Next
    Next
End Sub

1 Ответ

0 голосов
/ 09 февраля 2020

Попробуйте, пожалуйста:

Sub PascalTriangle_ChooseNoOfRows()
    Dim i() As Long, p As Long, j As Long, lngR As Long, inpAns As String

    inpAns = InputBox("Now much rows must Pascal function process?", "Choose the number of rows", 10)
    If inpAns = "" Then Exit Sub
    If IsNumeric(inpAns) Then
        lngR = CLng(inpAns)
    Else
        MsgBox "You must write a number!": Exit Sub
    End If
    ActiveSheet.Cells.Clear
    ReDim i(lngR, lngR)
    i(0, 0) = 1: i(1, 0) = 1: i(1, 1) = 1

    For p = 2 To lngR
        i(p, 0) = 1
        For j = 1 To p
            i(p, j) = i(p - 1, j - 1) + i(p - 1, j)
        Next j
    Next
    For p = 0 To lngR
        For j = 0 To p
            Cells(p + 1, j + 1) = i(p, j)
        Next j
    Next
End Sub
...