Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы - VB
Формулировка задачи:
Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы. найденные минимальные элементы элементы занести в массив MinMas, а максимальные элементы в массив MaxMas и расположить их соответственно по убыванию. и возрастанию. напечатать все массивы.
всё на что хватило ума это заполнить массив, а дальше вообще без понятий...
Решение задачи: «Определить минимальный элемент в каждом столбце и максимальный элемент в каждой строке матрицы»
textual
Листинг программы
Option Explicit
Private Sub Command1_Click()
Dim Mac() As Single, MinMas() As Single, MaxMas() As Single
Dim i As Integer, j As Integer
Dim n As Integer, m As Integer
Randomize
Cls
m = Val(InputBox("Введите количество строк ", , 10))
n = Val(InputBox("Введите количество столбцов ", , 10))
ReDim Mac(1 To n, 1 To n), MinMas(1 To n), MaxMas(1 To m) As Single
'Заполняем массив и печатаем его
For i = 1 To m
For j = 1 To n
Mac(i, j) = Int(Rnd * 100)
Print vbTab; Mac(i, j);
Next j
Print
Next i
'Находим в каждой строке максимальный элемент и записываем его в массив MaxMas
For i = 1 To m
MaxMas(i) = Mac(i, 1)
For j = 1 To n
If MaxMas(i) < Mac(i, j) Then MaxMas(i) = Mac(i, j)
Next j
Next i
'Находим в каждом столбце минимальный элемент и записываем его в массив MinMas
For i = 1 To n
MinMas(i) = Mac(1, i)
For j = 1 To m
If MinMas(i) > Mac(j, i) Then MinMas(i) = Mac(j, i)
Next j
Next i
Print
Print "Массив максимальных элементов каждой строки исходного массива несортированный"
For i = 1 To m
Print MaxMas(i);
Next i
Print
Print "Массив минимальных элементов каждого столбца исходного массива несортированный"
For i = 1 To n
Print MinMas(i);
Next i
Print
'Cортируем массив максимальных элементов по возрастанию, а минимальных -по убыванию.
Call BubbleSortMin(MinMas, n)
Call BubbleSortMax(MaxMas, m)
Print "Массив максимальных элементов каждой строки исходного массива по возрастанию"
For i = 1 To m
Print MaxMas(i);
Next i
Print
Print "Массив минимальных элементов каждого столбца исходного массива по убыванию"
For i = 1 To n
Print MinMas(i);
Next i
End Sub
' Сортировка по возрастанию
Public Sub BubbleSortMax(ByRef Arr() As Single, ByRef n As Integer)
Dim i As Long
Dim j As Long
Dim Tmp As Double
For i = 1# To n + 1 Step 1
For j = 1# To n - i Step 1
If Arr(j) > Arr(j + 1#) Then
Tmp = Arr(j)
Arr(j) = Arr(j + 1#)
Arr(j + 1#) = Tmp
End If
Next j
Next i
End Sub
'Сортировка по убыванию
Public Sub BubbleSortMin(ByRef Arr() As Single, ByRef n As Integer)
Dim i As Long
Dim j As Long
Dim Tmp As Double
For i = 1# To n + 1 Step 1
For j = 1# To n - i Step 1
If Arr(j) < Arr(j + 1#) Then
Tmp = Arr(j)
Arr(j) = Arr(j + 1#)
Arr(j + 1#) = Tmp
End If
Next j
Next i
End Sub