- •Максимальный в строке выводим справа
- •Минимальный справа в столбец
- •Обратная диагональ с минимальными значениями
- •Сортировка столбцов по возрастанию
- •Сортировка строк по возрастанию
- •Среднее значение справа
- •Среднее по столбцам снизу
- •Сумма столбцов снизу
- •Минимальный в столбце на обратнуую диагональ
Сортировка столбцов по возрастанию
Option Explicit
Dim i, j, k As Integer
Dim n, m As Integer
Dim arr() As Integer
Private Sub cancel_btn_Click()
Form1.Hide
End Sub
Private Sub Command1_Click()
If Option1.Value = True Then
m = Int(Rnd * 10)
n = Int(Rnd * 10)
Else
m = Val(InputBox("Введите число столбцов", "Ввод данных")) - 1
n = Val(InputBox("Введите число строк", "Ввод данных")) - 1
End If
ReDim arr(n, m)
Call fillMatrix
Label1.Caption = getStr(arr, n, m)
Call sortMatrix
Label2.Caption = getStr(arr, n, m)
End Sub
Private Sub fillMatrix()
For i = 0 To n
For j = 0 To m
arr(i, j) = Int(Rnd() * 10)
Next j
Next i
End Sub
Private Sub sortMatrix()
Dim k As Integer
Dim temp As Integer
For k = 0 To m
For i = 0 To n
For j = 0 To n - 1
If arr(j, k) > arr(j + 1, k) Then
temp = arr(j, k)
arr(j, k) = arr(j + 1, k)
arr(j + 1, k) = temp
End If
Next j
Next i
Next k
End Sub
Private Function getStr(ar, an, am) As String
getStr = ""
For i = 0 To an
For j = 0 To am
getStr = LTrim(getStr + Str(ar(i, j)) + " ")
Next j
getStr = getStr + vbNewLine
Next i
End Function
Сортировка строк по возрастанию
Dim i, j, k As Integer
Dim n, m As Integer
Dim arr() As Integer
Private Sub cancel_btn_Click()
Form1.Hide
End Sub
Private Sub ok_btn_Click()
If first_rb.Value = True Then
m = Int(Rnd * 10)
n = Int(Rnd * 10)
Else
m = Val(InputBox("Введите число столбцов", "Ввод данных")) - 1
n = Val(InputBox("Введите число строк", "Ввод данных")) - 1
End If
ReDim arr(n, m)
Call fillMatrix
Label1.Caption = getStr(arr, n, m)
Call sortMatrix
Label2.Caption = getStr(arr, n, m)
End Sub
Private Sub fillMatrix()
For i = 0 To n
For j = 0 To m
arr(i, j) = Int(Rnd() * 10)
Next j
Next i
End Sub
Private Sub sortMatrix()
Dim k As Integer
Dim temp As Integer
For k = 0 To n
For i = 0 To m
For j = 0 To m - 1
If arr(k, j) > arr(k, j + 1) Then
temp = arr(k, j)
arr(k, j) = arr(k, j + 1)
arr(k, j + 1) = temp
End If
Next j
Next i
Next k
End Sub
Private Function getStr(ar, an, am) As String
getStr = ""
For i = 0 To an
For j = 0 To am
getStr = LTrim(getStr + Str(ar(i, j)) + " ")
Next j
getStr = getStr + vbNewLine
Next i
End Function
Среднее значение справа
Option Explicit
Dim i, j As Integer
' m - Число столбцов
' n - Число строк
Dim n, m As Integer
' Двумерный массив в котором записана матрица
Dim arr(), arr2() As Single
' Функция вызывается при нажатии на кнопку "Отмена"
' Скрывает первую форму
Private Sub cancel_btn_Click()
Form1.Hide
End Sub
' Функция вызывается при нажатии на кнопку "ОК"
Private Sub ok_btn_Click()
If first_rb.Value = True Then
m = Int(Rnd * 10)
n = Int(Rnd * 10)
Else
m = Val(InputBox("Введите число столбцов", "Ввод данных")) - 1
n = Val(InputBox("Введите число строк", "Ввод данных")) - 1
End If
ReDim arr(n, m), arr2(n, m + 1)
Call fillMatrix
Label1.Caption = getStr(arr, n, m)
Call actionWithMatrix
Label2.Caption = getStr(arr2, n, m + 1)
End Sub
' Заполняет указанный массив случайными целыми числами от 0 до 10
' z - Двумерный массив
Private Sub fillMatrix()
For i = 0 To n
For j = 0 To m
arr(i, j) = Int(Rnd() * 10)
Next j
Next i
End Sub
Private Sub actionWithMatrix()
Dim avg As Single
Dim sum As Single
For i = 0 To n
sum = 0
avg = 0
For j = 0 To m
sum = sum + arr(i, j)
arr2(i, j) = arr(i, j)
Next j
avg = sum / (m + 1)
arr2(i, j) = Format(avg, "0.0")
' Format округляет число avg до 1 знака после запятой
Next i
End Sub
' Возвращает строку-матрицу составленную из массива
' ar - Двумерный массив
' an - Число строк
' am - Число столбцов
Private Function getStr(ar, an, am) As String
getStr = ""
For i = 0 To an
For j = 0 To am
getStr = LTrim(getStr + Str(ar(i, j)) + " ")
Next j
getStr = getStr + vbNewLine
Next i
End Function