1. Составьте процедуру, изменяющую одномерный массив чисел делением его положительных элементов на свои индексы и определяющую число измененных элементов. Используя эту процедуру, определите, в каком из двух заданных одномерных массивов А или В больше измененных элементов, а также выведите измененные массивы А и В. Если же число измененных элементов одинаково, то выведите соответствующее сообщение.
Public Class Form1
____________________________________________________________________________________
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n, m As Integer
Dim A(), B(), IA, IB As Single
TextBox1.Clear()
n = InputBox("Задайте длину вектора А, n = ")
m = InputBox("Задайте длину вектора B, m = ")
ReDim A(n)
ReDim B(m)
TextBox1.AppendText("Вектор А" & vbCrLf)
InputVector(A, "A")
OutputVector(A, TextBox1)
TextBox1.AppendText("Вектор B" & vbCrLf)
InputVector(B, "B")
OutputVector(B, TextBox1)
IA = Izmenenie(A)
IB = Izmenenie(B)
If IA = IB Then
TextBox1.AppendText("Число измененных элементов в векторе одинаково" & vbCrLf)
TextBox1.AppendText("Измененный вектор A " & vbCrLf)
OutputVector(A, TextBox1)
TextBox1.AppendText("Измененный вектор В " & vbCrLf)
OutputVector(B, TextBox1)
Else
If IA > IB Then
TextBox1.AppendText("Число измененных эл-тов вектора А>В" & vbCrLf)
TextBox1.AppendText("Измененный вектор A " & vbCrLf)
OutputVector(A, TextBox1)
TextBox1.AppendText("Измененный вектор В " & vbCrLf)
OutputVector(B, TextBox1)
Else
TextBox1.AppendText("Число измененных эл-тов вектора B>A" & vbCrLf)
TextBox1.AppendText("Измененный вектор A " & vbCrLf)
OutputVector(A, TextBox1)
TextBox1.AppendText("Измененный вектор В " & vbCrLf)
OutputVector(B, TextBox1)
End If
End If
End Sub
_____________________________________________________________________________________
Function Izmenenie(ByVal x() As Single) As Single
Dim i, N As Integer
N = 0
For i = 1 To x.GetUpperBound(0)
If x(i) > 0 Then
x(i) = x(i) / i
N = N + 1
End If
Next
Izmenenie = N
End Function
_____________________________________________________________________________________
Private Sub InputVector(ByRef x() As Single, Optional ByVal VectorName As String = "элемент")
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
x(i) = InputBox(VectorName & "(" & 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. Составьте функцию, проверяющую упорядоченность всех элементов одномерного массива целых чисел по убыванию их значений. Используя эту функцию, выведите каждый из двух заданных одномерных массивов А и В, если его элементы не упорядочены в порядке убывания их значений. В противном случае выведите сообщение "Массив А ( или В) упорядочен".
Public Class Form1
_____________________________________________________________________________________
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim A(), B() As Single
Dim n, m As Integer
TextBox1.Clear()
n = InputBox("Задайте длину одномерного массива А")
m = InputBox("Задайте длину одномерного массива В")
ReDim A(n)
ReDim B(m)
InputVector(a, "a")
InputVector(b, "b")
If Poryadok(A) = True Then
TextBox1.AppendText("Одномерный массив А упорядочен" & vbCrLf)
Else
OutputVector1(A, TextBox1)
End If
If Poryadok(B) = True Then
TextBox1.AppendText("Одномерный массив B упорядочен" & vbCrLf)
Else
OutputVector2(B, TextBox1)
End If
End Sub
_____________________________________________________________________________________
Private Function Poryadok(ByVal x() As Single) As Boolean
Dim i, K As Integer
For i = 1 To x.GetUpperBound(0) - 1
If x(i) > x(i + 1) Then
K = K + 1
End If
Next
If K = x.GetUpperBound(0) - 1 Then
Poryadok = True
Else
Poryadok = False
End If
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 OutputVector1(ByRef x() As Single, ByVal TextBox1 As TextBox)
Dim i As Integer
TextBox1.AppendText("Одномерный массив A =")
For i = 1 To x.GetUpperBound(0)
TextBox1.AppendText(" " & x(i))
Next
TextBox1.AppendText(vbCrLf)
End Sub
_____________________________________________________________________________________
Private Sub OutputVector2(ByRef x() As Single, ByVal TextBox1 As TextBox)
Dim i As Integer
TextBox1.AppendText("Одномерный массив B =")
For i = 1 To x.GetUpperBound(0)
TextBox1.AppendText(" " & x(i))
Next
TextBox1.AppendText(vbCrLf)
End Sub
_____________________________________________________________________________________
End Class
3. Составьте функцию проверяющую, что все элементы одномерного массива имеют значения, больше заданной величины. Используя эту функцию, определите для двух заданных одномерных массивов А и В, у скольких из них значение всех элементов больше заданной величины h.
Public Class Form1
_____________________________________________________________________________________
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n, m As Integer
Dim h, A(), B(), PA, PB As Single
TextBox1.Clear()
n = InputBox("Задайте длину вектора А, n = ")
m = InputBox("Задайте длину вектора В, m = ")
h = InputBox("Задайте величину h = ")
ReDim A(n)
ReDim B(m)
TextBox1.AppendText("h = " & h & vbCrLf)
TextBox1.AppendText("Вектор А" & vbCrLf)