Дан двумерный массив размером n*m, заполненный случайным образом - VB
Формулировка задачи:
Дан двумерный массив размером n*m, заполненный случайным образом.
1.Вставить после каждой строки, содержащей максимальный по модулю элемент, строку из нулей.
Решение задачи: «Дан двумерный массив размером n*m, заполненный случайным образом»
textual
Листинг программы
- Option Explicit
- Private Sub Command1_Click()
- Dim A() As Integer, B() As Integer, n As Integer, m As Integer, f As Boolean
- Dim i As Integer, j As Integer, Max As Integer, k As Integer
- n = Val(InputBox("Введите количество строк", "Ввод данных", 9))
- m = Val(InputBox("Введите количество столбцов", "Ввод данных", 8))
- ReDim A(1 To n, 1 To m)
- Me.AutoRedraw = True
- Randomize
- Cls
- Print "Исходная матрица:"
- For i = 1 To n
- For j = 1 To m
- A(i, j) = Int(Rnd * 21 - 10)
- Print A(i, j) & vbTab;
- Next j
- Next i
- B = A
- Max = A(1, 1)
- For i = 1 To n
- For j = 1 To m
- If Abs(Max) < Abs(A(i, j)) Then Max = A(i, j) 'определяем максим. по модулю
- Next j
- Next i
- Print "Максимальный по модулю элемент матрицы равен " & Max '
- For i = 1 To n
- For j = 1 To m
- If Abs(Max) = Abs(A(i, j)) Then k = k + 1: Exit For 'считаем количество строк содержащих макс. по модулю элемент
- Next j
- Next i
- ReDim A(1 To n + k, m) 'увеличиваем количество строк массива на количество строк содержащих макс. по модулю элемент
- k = 0
- For i = 1 To UBound(A)
- k = k + 1
- f = False
- For j = 1 To m
- A(i, j) = B(k, j)
- If Abs(Max) = Abs(A(i, j)) Then f = True
- Next j
- If f Then i = i + 1
- Next i
- Print "Результат:"
- For i = 1 To UBound(A)
- For j = 1 To m
- Print A(i, j) & vbTab;
- Next j
- Next i
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д