Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Function Rand(ByVal Low As Long, _
- ByVal High As Long) As Long
- Rand = Int((High - Low + 1) * Rnd) + Low
- End Function
- Dim N As Integer ' ко-во строк
- Dim M As Integer 'кол-во столбцов
- Dim Arr() As Integer ' наш массив
- Dim tmpArr() As Integer ' временный массив
- Dim newRow() As Integer ' строка, которую необходимо будет "приклеить" снизу к исходному массиву
- Dim I As Integer
- Dim J As Integer
- Dim outString As String
- Dim vbCrLf As String = Chr(13) + Chr(10) ' для перехода на новую строку
- Dim vbTab As String = Chr(9)
- ' запросить размер массива
- Input "N = ", N
- Input "M = ", M
- ' инициализация размеров массивов
- ReDim Arr(N, M) As Integer
- ReDim tmpArr(N, M) As Integer
- ReDim newRow(M) As Integer
- ' я хз инициализируются ли массивы в этом говне нулями, но на всякий случай сделаем это ручками
- For I = 0 To M - 1
- newRow(I) = 0
- Next I
- ' заполнить массив случайными числами
- Randomize()
- For I = 0 To N - 1 ' по строкам
- For J = 0 To M - 1 ' по столбцам
- Arr(I, J) = Rand(-50, 50)
- newRow(J) = newRow(J) - Arr(I, J)
- outString = outString + vbTab + Str(Arr(I, J))
- Next J
- outString = outString + vbCrLf
- Next I
- Print "Original array:"
- Print outString
- ' --------------------------------
- ' добавляем новую строку
- ' с сохранением данных можно изменять только последнее "измерение"(dimension) - в нашем случае кол-во столбцов
- ' чтобы не потерять данные, сохраним их сначала во временный массив, а затем скопируем обратно
- 'Copy original array into temp array:
- For I = 0 To N - 1 'Loop for 1st dimension
- For J = 0 To M - 1 'Loop for 2nd dimension
- tmpArr(I, J) = Arr(I, J)
- Next J
- Next I
- 'Redim original array (destroying it)
- N = N + 1
- ReDim Arr(N, M)
- 'Put values back from temporary array
- For I = 0 To N - 2 'Loop for 1st dimension
- For J = 0 To M - 1 'Loop for 2nd dimension
- Arr(I, J) = tmpArr(I, J)
- Next J
- Next I
- For J = 0 To M - 1
- Arr(N-1, J) = newRow(J)
- Next J
- ' --------------------------------
- ' выводим новый массив
- outString = ""
- For I = 0 To N - 1
- For J = 0 To M - 1
- outString = outString + vbTab + Str(Arr(I, J))
- Next J
- outString = outString + vbCrLf
- Next I
- Print "New array:"
- Print outString
- Input N
Add Comment
Please, Sign In to add comment