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

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

Print

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

Print

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

Print

Next

End Sub