
5.Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnПуск.Click
Dim n, u, h As Integer
Dim SumA, Sumb As Single
Dim a() As Single, b() As Single
txtЖурнал.Clear()
n = InputBox _
("Задайте количество ячеек векторов а и б")
txtЖурнал.AppendText("n = " & n & vbCrLf)
u = InputBox _
("Задайте порог")
txtЖурнал.AppendText("u= " & u & vbCrLf)
ReDim a(n), b(n)
InputVector(a, "a")
txtЖурнал.AppendText("Матрица a" & vbCrLf)
OutputVector(a, txtЖурнал)
InputVector(b, "b")
txtЖурнал.AppendText("Матрица b" & vbCrLf)
OutputVector(b, txtЖурнал)
Упр(a, SumA)
Упр(b, Sumb)
h = SumA - Sumb
If h <= u Then
txtЖурнал.AppendText("А и В равнозначны" & vbCrLf)
Else
txtЖурнал.AppendText("Средне арифм А " & SumA & vbCrLf)
txtЖурнал.AppendText("Средне арифм В " & Sumb & vbCrLf)
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Label1.Click
End
End Sub
Private Sub Упр(ByVal x() As Single, ByRef Сумма As Single)
Dim i, Sum, kol As Integer
For i = 1 To x.GetUpperBound(0)
Sum = Sum + x(i)
kol = kol + 1
Next
Сумма = Sum / kol
End Sub
Private Sub InputMatrix(ByRef x(,) As Single, Optional _
ByVal ArrayName As String = "элемент")
Dim i, j As Integer
For i = 1 To x.GetUpperBound(0)
For j = 1 To x.GetUpperBound(1)
x(i, j) = InputBox(ArrayName & _
"(" & i & "," & j _
& ") = ?")
Next
Next
End Sub
Private Sub OutputMatrix(ByVal x(,) As Single, _
ByVal y As TextBox)
Dim i, j As Integer
For i = 1 To x.GetUpperBound(0)
For j = 1 To x.GetUpperBound(1)
y.AppendText(x(i, j) & vbTab)
Next
y.AppendText(vbCrLf)
Next
End Sub
Private Sub InputVector(ByRef x() As Single, Optional _
ByVal ArrayName As String = "элемент")
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
x(i) = InputBox(ArrayName & "(" & i & ") = ?")
Next
End Sub
Private Sub OutputVector(ByVal x() As Single, _
ByVal y As TextBox)
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
y.AppendText(x(i) & vbTab)
Next
y.AppendText(vbCrLf)
End Sub
End Class
Задача 6
Составьте функцию, проверяющую эквивалентность двух одномерных целочисленных массивов. Имеющие равное количество элементов массивы эквивалентны, если их соответствующие элементы имеют одинаковые значения. Используя эту функцию, проверьте эквивалентность трех заданных одномерных целочисленных массивов А , В и С. Если массивы эквивалентны, должно быть выведено сообщение «Объекты эквивалентны», иначе – сообщение «Объекты не эквивалентны».
6.Private Sub Command1_Click()
Dim m As Integer
Dim n As Integer
Dim k As Integer
Dim a() As Integer
Dim b() As Integer
Dim c() As Integer
Cls
m = InputBox("Задайте кол-во элементов массива А")
n = InputBox("Задайте кол-во элементов массива B")
k = InputBox("Задайте кол-во элементов массива C")
Print "Кол-во элементов массива А = "; m
Print "Кол-во элементов массива B = "; n
Print "Кол-во элементов массива C = "; k
ReDim a(1 To m)
ReDim b(1 To n)
ReDim c(1 To k)
Print "Массив А"
Ввод_вектора a
Print "Массив B"
Ввод_вектора b
Print "Массив С"
Ввод_вектора c
If проверка(m, n, a, b) Then
Print "Объекты А и В эквивалентны"
Else
Print "Объекты А и В не эквивалентны"
End If
If проверка(m, k, a, c) Then
Print "Объекты А и C эквивалентны"
Else
Print "Объекты А и C не эквивалентны"
End If
If проверка(n, k, b, c) Then
Print "Объекты B и C эквивалентны"
Else
Print "Объекты B и C не эквивалентны"
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Function проверка(ka As Integer, kb As Integer, x() As Integer, y() As Integer) As Boolean
Dim i As Integer
проверка = True
If ka = kb Then
For i = 1 To ka
If x(i) <> y(i) Then
проверка = False
End If
Next
Else: проверка = False
End If
End Function
Private Sub Ввод_вектора(x() As Integer)
Dim i As Integer
Dim i_min As Integer
Dim i_max As Integer
i_min = LBound(x, 1)
i_max = UBound(x, 1)
For i = i_min To i_max
x(i) = InputBox("Элемент целочисленного массива (" & i & ")= ?", "Ввод вектора", , 0, 0)
Print x(i),
Next
End Sub
Задача 7
Составьте процедуру для определения минимального элемента матрицы. Используя эту процедуру, для трех заданных матриц А , В, и С установите наибольшее значение среди их минимальных элементов.
7.Private Sub Command1_Click()
Dim ma As Integer, na As Integer
Dim mb As Integer, nb As Integer
Dim mc As Integer, nc As Integer
Dim mina As Single, minb As Single, minc As Single
Dim a() As Single
Dim b() As Single
Dim c() As Single
Cls
ma = InputBox("Задайте кол-во строк Матрицы А")
na = InputBox("Задайте кол-во столбцов Матрицы А")
mb = InputBox("Задайте кол-во строк Матрицы B")
nb = InputBox("Задайте кол-во столбцов Матрицы B")
mc = InputBox("Задайте кол-во строк Матрицы C")
nc = InputBox("Задайте кол-во столбцов Матрицы C")
Print "кол-во строк Матрицы А = "; ma
Print "кол-во столбцов Матрицы А = "; na
Print "кол-во строк Матрицы B = "; mb
Print "кол-во столбцов Матрицы B = "; nb
Print "кол-во строк Матрицы C = "; mc
Print "кол-во столбцов Матрицы C = "; nc
ReDim a(1 To ma, 1 To na)
ReDim b(1 To mb, 1 To nb)
ReDim c(1 To mc, 1 To nc)
Print "Матрица А"
Ввод_матрицы a
Print "Матрица B"
Ввод_матрицы b
Print "Матрица C"
Ввод_матрицы c
проверка ma, na, a, mina
проверка mb, nb, b, minb
проверка mc, nc, c, minc
If mina > minb Then
If mina > minc Then
Print "Наибольшее значение среди минимальных элементов (элемент массива А)"; mina
Else
Print "Наибольшее значение среди минимальных элементов (элемент массива C)"; minc
End If
ElseIf minb > minc Then
Print "Наибольшее значение среди минимальных элементов (элемент массива B)"; minb
Else
Print "Наибольшее значение среди минимальных элементов (элемент массива C)"; minc
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub проверка(m As Integer, n As Integer, x() As Single, min As Single)
Dim i As Integer
Dim j As Integer
min = x(1, 1)
For i = 1 To m
For j = 1 To n
If x(i, j) < min Then min = x(i, j)
Next
Next
End Sub
Private Sub Ввод_матрицы(x() As Single)
Dim i As Integer
Dim i_min As Integer
Dim i_max As Integer
i_min = LBound(x, 1)
i_max = UBound(x, 1)
Dim j As Integer
Dim j_min As Integer
Dim j_max As Integer
j_min = LBound(x, 2)
j_max = UBound(x, 2)
For i = i_min To i_max
For j = j_min To j_max
x(i, j) = InputBox("Элементы матрици (" & i & ", " & j & ") = ?", "Ввод матрицы", , 0, 0)
Print x(i, j),
Next
Next
End Sub
Задача 8
Составьте процедуру для определения индексов элемента матрицы, значение которого наименее отличается от среднего значения элементов этой же матрицы. Используя эту процедуру, установите, в какой из двух заданных матриц А или В сумма этих индексов имеет наибольшее значение.
8.Private Sub Command1_Click()
Dim ma As Integer, na As Integer
Dim mb As Integer, nb As Integer
Dim a() As Single
Dim b() As Single
Dim sia As Integer, sib As Integer
Dim h As Integer
Dim sr1 As Single, sr2 As Single
Cls
ma = InputBox("Задайте кол-во строк Матрицы А")
na = InputBox("Задайте кол-во столбцов Матрицы А")
mb = InputBox("Задайте кол-во строк Матрицы B")
nb = InputBox("Задайте кол-во столбцов Матрицы B")
Print "кол-во строк Матрицы А = "; ma
Print "кол-во столбцов Матрицы А = "; na
Print "кол-во строк Матрицы B = "; mb
Print "кол-во столбцов Матрицы B = "; nb
ReDim a(1 To ma, 1 To na)
ReDim b(1 To mb, 1 To nb)
Print "Матрица А"
Ввод_матрицы a
Print "Матрица B"
Ввод_матрицы b
проверка ma, na, a, sia, sr1
проверка mb, nb, b, sib, sr2
Print "sr1="; sr1, "sr2="; sr2
If sia > sib Then
Print "Сумма индексов, по условию задачи, в Матрице А больше чем в Матрице В"
End If
If sia < sib Then
Print "Сумма индексов, по условию задачи, в Матрице B больше чем в Матрице A"
End If
If sia = sib Then
Print "Условие задачи не выполнено"
End If
End Sub
Private Sub проверка(m As Integer, n As Integer, x() As Single, si As Integer, sr As Single)
Dim i As Integer
Dim j As Integer
Dim s As Single, p As Single
Dim kol As Integer
kol = 0
s = 0
For i = 1 To m
For j = 1 To n
s = s + x(i, j)
kol = kol + 1
Next
Next
sr = s / kol
p = Abs(sr - x(1, 1))
For i = 1 To m
For j = 1 To n
If Abs(sr - x(i, j)) <= p Then
p = Abs(sr - x(i, j))
si = i + j
End If
Next
Next
End Sub
Private Sub Ввод_матрицы(x() As Single)
Dim i As Integer
Dim i_min As Integer
Dim i_max As Integer
i_min = LBound(x, 1)
i_max = UBound(x, 1)
Dim j As Integer
Dim j_min As Integer
Dim j_max As Integer
j_min = LBound(x, 2)
j_max = UBound(x, 2)
For i = i_min To i_max
For j = j_min To j_max
x(i, j) = InputBox("Элементы матрици (" & i & ", " & j & ") = ?", "Ввод матрицы", , 0, 0)
Print x(i, j),
Next
Next
End Sub