Поменять строки матрицы с наибольшим и наименьшим элементами между собой - VB

  1. Дана матрица размером NxM.Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой.


textual

Код к задаче: «Поменять строки матрицы с наибольшим и наименьшим элементами между собой - VB»

Option Explicit
Private Sub Command1_Click()
Dim a() As Single, n As Integer, m As Integer, i As Integer, j   As Integer
Dim temp As Single, min As Single, max As Single, i_min As Integer, i_max As Integer
n = InputBox("Количество строк =", "Ввод данных", 10): m = InputBox("Количество столбцов =", "Ввод данных", 5)
ReDim a(1 To n, 1 To m)
Cls
Randomize
Print "Исходный массив": Print
 
For i = 1 To n
  For j = 1 To m
     a(i, j) = Int(Rnd * 89) + 10
     Print vbTab; a(i, j);
  Next
  Print
Next
Print
 
min = a(1, 1): max = a(1, 1): i_min = 1: i_max = 1
 
For i = 1 To n
  For j = 1 To m
    If min > a(i, j) Then min = a(i, j): i_min = i
    If max < a(i, j) Then max = a(i, j): i_max = i
  Next
Next
 
If i_min = i_max Then Print "Максимальный и минимальный элемент находятся в одной строке"
Print
Print "Минимальный элемент = " & min & " , в " & i_min & " строке."
Print "Максимальный элемент = " & max & " , в " & i_max & " строке."
Print
 
For j = 1 To m
   temp = a(i_min, j): a(i_min, j) = a(i_max, j): a(i_max, j) = temp
Next
 
Print "Полученный массив"
Print
 
For i = 1 To n
  For j = 1 To m
      Print vbTab; a(i, j);
  Next
  Print
Next
 
End Sub

СДЕЛАЙТЕ РЕПОСТ

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



Похожие ответы
  1. Дана матрица 3х3 Найти сумму элементов первой строки и первого столбца?

  1. Сформировал двумерный массив A(10,8). Как поменять местами правую и левую часть этого массива?

  1. Даны строки S и S0. Найти кол-во вхождений строки S0 в строку S

  1. Когда свойство TextBox, MultiLine, равно true, появляется возможность писать в несколько строк, а не в одну. Вопрос: как обратиться к каждой строке в отдельности?

  1. Здравствуйте, подскажите, пожалуйста, как сделать, чтобы при нажатии Command записывались по порядку переменные в Excel файл в определенные строки. У меня код перезаписывает (предлагает заменить файл)

  1. Тыыыыысяча извинений за столь необычное название топика, но иначе на скорую руку ничего не придумывалось больше. Вот такая задача: а) В коде постоянно поступают числа от 1 до 99999 рандомно. б) Полученное число надо сконкатенировать к ранее полученному через запятую. когда чисел было немного, то особо проблемы не было, но теперь чисел сотни и даже тысячи, то переменная раздувается до неузнаваемости. А если учесть то, что эта переменная ещё шлётся в SQL Server, то ещё и траф(конечно немного, но для убедительности). В результате, в стринге очень много смежных чисел. Например: 2333,45,5443,2332,2331,5444,5445.... Срочно надо ваш совет: как перед конкатенацией сверять "концы" на предмет рядом стоячести. Т.е. из полученной строки можно сделать диапазон так: 45,2331-2333,5443-5445. К тому же поступающие числа могут повторятся! Редко, но могут. В списке может присутствовать один раз. Закидывать их в массив, а при каждом новом айтеме проходить по нему и прибавлять/отнимать единицу? Если да, то заменять нижний/верхний предел диапазона? Надо идеи. Прошу совета.

  1. В text1.text 10 строк. В text2.text 3 строки. Эти 3 строки идентичны 3-ём строкам из 10 с первого текстбокса. Как определить, что именно эти 3 строки из 10 совпадают со строками из второго текстбокса и убрать их, чтобы в 1-ом тексбоксе осталось только 7 записей. Помогите, плз. Буду очень благодарен.

  1. Братья выручайте! Сессия! А с информатикой не дружу.3. Текстовый файл А содержит две строки с текстом, а файл В – одну строку. Создать файл С, в котором будут эти же три строки, но строка из файла В должна оказаться между строками из файла А. Помогите кто сможет! в долгу не останусь

  1. Подскажите, пожалуйста, как задать число строк, чтобы отображение текста в файле txt начиналось, например, с 50-той строки?

  1. Доброй ночи! Помогите пожалуйста исправить код. Не могу найти ошибку. Он мне первую строку копирует вообще на все строки, но правильно увеличивает массив. Нужно решить именно без дополнительного массива! Код записан в модуле.