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

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

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

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

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

textual
Листинг программы
Private Sub Command1_Click()
Dim a(), n%, m%, t%, i%, j%
Dim tmp, i_mn%, i_mx%
n = 10: m = 5
ReDim a(1 To n, 1 To m)
Cls
For i = 1 To n
  For j = 1 To m
     a(i, j) = Int(Rnd * 89) + 10
  Next
Next
 
 i_mn = ind_mm%(a(), -1)
 i_mx = ind_mm%(a(), 1)
 
Call print_m("исходный массив", a(), i_mn, i_mx)
 
For j = 1 To m
 tmp = a(i_mn, j)
   a(i_mn, j) = a(i_mx, j)
     a(i_mx, j) = tmp
Next
 
 
Call print_m("полученный массив", a(), i_mn, i_mx)
End Sub
Function ind_mm%(mass(), t%)
Dim i%, j%, ui%, uj%, mm
ui = UBound(mass, 1): uj = UBound(mass, 2)
mm = mass(1, 1): ind_mm = 1
For i = 1 To ui
For j = 1 To uj
 If mm * t < mass(i, j) * t Then
     mm = mass(i, j): ind_mm = i
 End If
Next
Next
End Function
Sub print_m(z$, mass(), r1%, r2%)
Dim i%, j%, ui%, uj%
ui = UBound(mass, 1): uj = UBound(mass, 2)
Print: Print z: Print
For i = 1 To ui
For j = 1 To uj
Me.ForeColor = IIf((r1 > 0 And r1 = i) Or (r2 > 0 And r2 = i), vbRed, 0)
 Print mass(i, j); vbTab;
Next
Print
Next
End Sub

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


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

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

13   голосов , оценка 4.308 из 5
Похожие ответы