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