Дан двумерный массив размером 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 Print 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 Print Next i End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д