
Задача 1
Составьте процедуру, изменяющую одномерный массив чисел делением его положительных элементов на свои индексы и определяющую число таких замен. Используя эту процедуру, определите, в каком из двух заданных одномерных массивов А или В больше измененных элементов, а также выведите измененные массивы А и В. Если же число измененных элементов одинаково, то выведите соответствующее сообщение.
1.Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnПуск.Click
Dim n, i, za, zb As Integer
Dim a() As Single, b() As Single
txtЖурнал.Clear()
n = InputBox _
("Задайте количество ячеек векторов а и б")
txtЖурнал.AppendText("n = " & n & 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, za)
Изм(b, zb)
If za > zb Then
txtЖурнал.AppendText("В векотре А замен больше" & vbCrLf)
txtЖурнал.AppendText("Матрица a" & vbCrLf)
OutputVector(a, txtЖурнал)
End If
If za < zb Then
txtЖурнал.AppendText("В векторе В замен больше" & vbCrLf)
txtЖурнал.AppendText("Матрица b" & vbCrLf)
OutputVector(b, txtЖурнал)
End If
If za = zb Then
txtЖурнал.AppendText("Одинаковое колличество замен" & 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 Изм(ByRef x() As Single, ByRef числоЗамен As Single)
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
If x(i) > 0 Then
x(i) = x(i) / i
числоЗамен = числоЗамен + 1
End If
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
Задача 2
Составьте функцию, проверяющую упорядоченность всех элементов одномерного массива целых чисел по убыванию их значений. Используя эту функцию, напечатайте каждый из двух заданных одномерных массивов А и В, если его элементы не упорядочены в порядке убывания их значений. В противном случае выведите сообщение "Массив А ( или В) упорядочен".
2.Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnПуск.Click
Dim na, nb As Integer
Dim a() As Single, b() As Single
txtЖурнал.Clear()
na= InputBox _
("Задайте количество ячеек векторов а и б") nb=Inputbox("задайте количество элементов")
ReDim a(na), b(nb)
InputVector(a, "a")
InputVector(b, "b")
Упр(a, n)
Упр(b, n)
If Упр(a, na) Then
messagebox("Массив а упорядочен") else outputvector(a,textжурнал)
End If
If Упр(b, nb) Then messagebox("Массив b упорядочен") else outputvector(b,textжурнал)
End If
End Sub
Function Упр(ByVal x() As Single, ByVal nx As Integer) As Boolean Dim f as boolean
Dim i As Integer
f = True
For i = 1 To (nx - 1)
If x(i) <= x(nx(или i ?) + 1) Then
f = False
End If
Next
End Function
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
Задача 3
Составьте функцию проверяющую, что все элементы одномерного массива имеют значения, больше заданной величины. Используя эту функцию, определите для двух заданных одномерных массивов А и В, у скольких из них значение всех элементов больше заданной величины h .
3.Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnПуск.Click
Dim n, h As Integer
Dim a() As Single, b() As Single
txtЖурнал.Clear()
n = InputBox _
("Задайте количество ячеек векторов а и б")
txtЖурнал.AppendText("n = " & n & vbCrLf)
h = InputBox _
("Задайте порог")
txtЖурнал.AppendText("h= " & h & 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, h)
Упр(b, h)
If Упр(a, h) Then
txtЖурнал.AppendText("Массив A" & vbCrLf)
OutputVector(a, txtЖурнал)
ElseIf Упр(b, h) Then
txtЖурнал.AppendText("Массив B" & vbCrLf)
OutputVector(b, txtЖурнал)
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 Function Упр(ByVal x() As Single, ByVal Порог As Single) As Boolean
Dim i As Integer
Упр = True
For i = 1 To x.GetUpperBound(0)
If x(i) <= Порог Then
Упр = False
End If
Next
End Function
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
Задача 4
Составьте функцию, вычисляющую количество элементов одномерного массива, значение которых больше заданной величины h1, но в тоже время меньше заданной величины h2. Используйте эту функцию для одномерных массивов А и В и выведите имя массива, у которого количество таких элементов окажется больше.