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

Максимальный в строке выводим справа

Dim m, n As Integer

Dim arr(), maxs(), 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), maxs(n), ext(n, m + 1)

Call Fillmatrix

Call findmax

Call concatArrays

Label1.Caption = getstr(arr, n, m)

Label2.Caption = getstr(ext, n, m + 1)

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 findmax()

Dim max As Integer

For i = 0 To n

max = arr(i, 0)

For j = 0 To m

If arr(i, j) > max Then max = arr(i, j)

Next j

maxs(i) = max

Next i

End Sub

Sub concatArrays()

For i = 0 To n

For j = 0 To m + 1

If j = m + 1 Then

ext(i, j) = maxs(i)

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

Минимальный справа в столбец

Dim n, m As Integer

Dim arr() As Integer

Dim mins() As Integer

Dim ext() As Integer

Private Sub cancel_btn_Click()

Form1.Hide

End Sub

Private Sub ok_btn_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), mins(n), ext(n, m + 1)

Call fillMatrix(arr)

Call findMinimalElems(arr, mins)

Call concatArrays(arr, mins, ext)

Label1.Caption = getStr(arr, n, m)

Label2.Caption = getStr(ext, n, m + 1)

End Sub

Private Sub fillMatrix(z)

For i = 0 To n

For j = 0 To m

z(i, j) = Int(Rnd() * 10)

Next j

Next i

End Sub

Private Sub findMinimalElems(z, t)

Dim min As Integer

For i = 0 To n

min = z(i, 0)

For j = 0 To m

If z(i, j) < min Then min = z(i, j)

Next j

t(i) = min

Next i

End Sub

Private Sub concatArrays(z, t, k)

For i = 0 To n

For j = 0 To m + 1

If j = m + 1 Then

k(i, j) = t(i)

Else

k(i, j) = z(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

Обратная диагональ с минимальными значениями

Option Explicit

Dim i, j As Integer

' m - Число столбцов

' n - Число строк

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 * 5)

Else

m = Val(InputBox("Введите число столбцов", "Ввод данных")) - 1

n = Val(InputBox("Введите число строк", "Ввод данных")) - 1

End If

ReDim arr(n, m)

Call fillMatrix

Label1.Caption = getStr(arr, n, m)

Call actionWithMatrix

Label2.Caption = getStr(arr, n, 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 min, temp, jk As Integer

For i = 0 To n

min = arr(0, 0)

For j = 0 To m

If arr(i, j) < min Then

min = arr(i, j)

jk = j

End If

Next j

arr(i, jk) = arr(i, m - i)

arr(i, m - i) = min

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