Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры задачи.docx
Скачиваний:
1
Добавлен:
22.09.2019
Размер:
30.95 Кб
Скачать

Сортировка столбцов по возрастанию

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