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