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

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

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

Дана матрица размером NxM.Поменяйте строки с наибольшим и наименьшим элементами этой матрицы между собой. Вопрос: размерность этой матрицы не дана, как тогда определить наибольший и наименьший элемент?

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

textual
Листинг программы
  1. Private Sub Command1_Click()
  2. Dim a(), n%, m%, t%, i%, j%
  3. Dim tmp, i_mn%, i_mx%
  4. n = 10: m = 5
  5. ReDim a(1 To n, 1 To m)
  6. Cls
  7. For i = 1 To n
  8.   For j = 1 To m
  9.      a(i, j) = Int(Rnd * 89) + 10
  10.   Next
  11. Next
  12.  
  13.  i_mn = ind_mm%(a(), -1)
  14.  i_mx = ind_mm%(a(), 1)
  15.  
  16. Call print_m("исходный массив", a(), i_mn, i_mx)
  17.  
  18. For j = 1 To m
  19.  tmp = a(i_mn, j)
  20.    a(i_mn, j) = a(i_mx, j)
  21.      a(i_mx, j) = tmp
  22. Next
  23.  
  24.  
  25. Call print_m("полученный массив", a(), i_mn, i_mx)
  26. End Sub
  27. Function ind_mm%(mass(), t%)
  28. Dim i%, j%, ui%, uj%, mm
  29. ui = UBound(mass, 1): uj = UBound(mass, 2)
  30. mm = mass(1, 1): ind_mm = 1
  31. For i = 1 To ui
  32. For j = 1 To uj
  33.  If mm * t < mass(i, j) * t Then
  34.      mm = mass(i, j): ind_mm = i
  35.  End If
  36. Next
  37. Next
  38. End Function
  39. Sub print_m(z$, mass(), r1%, r2%)
  40. Dim i%, j%, ui%, uj%
  41. ui = UBound(mass, 1): uj = UBound(mass, 2)
  42. Print: Print z: Print
  43. For i = 1 To ui
  44. For j = 1 To uj
  45. Me.ForeColor = IIf((r1 > 0 And r1 = i) Or (r2 > 0 And r2 = i), vbRed, 0)
  46.  Print mass(i, j); vbTab;
  47. Next
  48. Print
  49. Next
  50. End Sub

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


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

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

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

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

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

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