- •Максимальный в строке выводим справа
- •Минимальный справа в столбец
- •Обратная диагональ с минимальными значениями
- •Сортировка столбцов по возрастанию
- •Сортировка строк по возрастанию
- •Среднее значение справа
- •Среднее по столбцам снизу
- •Сумма столбцов снизу
- •Минимальный в столбце на обратнуую диагональ
Среднее по столбцам снизу
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 + 1, m)
Call fillMatrix
Label1.Caption = getStr(arr, n, m)
Call actionWithMatrix
Label2.Caption = getStr(arr2, n + 1, m)
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
For j = 0 To m
avg = 0
For i = 0 To n + 1
If i = n + 1 Then
avg = avg / (n + 1)
arr2(i, j) = Format(avg, "0.0")
' Format округляет число avg до 1 знака после запятой
Else
avg = avg + arr(i, j)
arr2(i, j) = arr(i, j)
End If
Next i
Next j
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
Сумма столбцов снизу
Dim m, n As Integer
Dim arr(), summ(), ext() As Integer
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), summ(m), ext(n + 1, m)
Call Fillmatrix
Call findsumm
Call concatArrays
Label1.Caption = getstr(arr, n, m)
Label2.Caption = getstr(ext, n + 1, m)
End Sub
Sub Fillmatrix()
For i = 0 To n
For j = 0 To m
arr(i, j) = Int(Rnd * 10)
Next j
Next i
End Sub
Sub findsumm()
Dim sum As Integer
For j = 0 To m
sum = 0
For i = 0 To n
sum = sum + arr(i, j)
Next i
summ(j) = sum
Next j
End Sub
Sub concatArrays()
For i = 0 To n + 1
For j = 0 To m
If i = n + 1 Then
ext(i, j) = summ(j)
Else
ext(i, j) = arr(i, j)
End If
Next j
Next i
End Sub
Function getstr(ar, an, am) As String
getstr = ""
For i = 0 To an
For j = 0 To am
getstr = getstr & ar(i, j) & " "
Next j
getstr = getstr & Chr(13)
Next i
End Function