Дан двумерный массив размером n*m, заполненный случайным образом - VB

Узнай цену своей работы

Формулировка задачи:

Дан двумерный массив размером n*m, заполненный случайным образом. 1.Вставить после каждой строки, содержащей максимальный по модулю элемент, строку из нулей.

Решение задачи: «Дан двумерный массив размером n*m, заполненный случайным образом»

textual
Листинг программы
  1. Option Explicit
  2. Private Sub Command1_Click()
  3.     Dim A() As Integer, B() As Integer, n  As Integer, m As Integer, f As Boolean
  4.     Dim i As Integer, j As Integer, Max As Integer, k As Integer
  5.     n = Val(InputBox("Введите количество строк", "Ввод данных", 9))
  6.     m = Val(InputBox("Введите количество столбцов", "Ввод данных", 8))
  7.     ReDim A(1 To n, 1 To m)
  8.     Me.AutoRedraw = True
  9.     Randomize
  10.     Cls
  11.     Print "Исходная матрица:"
  12.     For i = 1 To n
  13.         For j = 1 To m
  14.              A(i, j) = Int(Rnd * 21 - 10)
  15.              Print A(i, j) & vbTab;
  16.         Next j
  17.         Print
  18.     Next i
  19.     B = A
  20.     Max = A(1, 1)
  21.     For i = 1 To n
  22.         For j = 1 To m
  23.              If Abs(Max) < Abs(A(i, j)) Then Max = A(i, j)   'определяем максим. по модулю
  24.        Next j
  25.     Next i
  26.     Print "Максимальный по модулю элемент матрицы равен " & Max '
  27.    For i = 1 To n
  28.         For j = 1 To m
  29.             If Abs(Max) = Abs(A(i, j)) Then k = k + 1: Exit For 'считаем количество строк содержащих макс. по модулю элемент
  30.        Next j
  31.     Next i
  32.     ReDim A(1 To n + k, m) 'увеличиваем количество строк массива на количество строк содержащих макс. по модулю элемент
  33.    k = 0
  34.     For i = 1 To UBound(A)
  35.         k = k + 1
  36.         f = False
  37.         For j = 1 To m
  38.             A(i, j) = B(k, j)
  39.             If Abs(Max) = Abs(A(i, j)) Then f = True
  40.         Next j
  41.         If f Then i = i + 1
  42.     Next i
  43.     Print "Результат:"
  44.     For i = 1 To UBound(A)
  45.         For j = 1 To m
  46.              Print A(i, j) & vbTab;
  47.         Next j
  48.         Print
  49.     Next i
  50. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы