Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- 'Процедура ввода массива
- Public Sub form_mass(ByRef x() As Single, ByVal a As Single, ByVal b As Single, ByVal n As Integer)
- ReDim x(n - 1) 'задаем кол-во элементов в массиве
- For i = 0 To n - 1
- x(i) = a + (b - a) * Rnd() 'вводим рандомно эл-ты массива
- Next
- End Sub
- 'Процедура вывода массива
- Public Sub PrintL(ByRef x() As Single, ByRef LB As ListBox)
- LB.Items.Clear()
- For i = 0 To UBound(x)
- LB.Items.Add(Format(x(i), "00.00"))
- Next
- End Sub
- 'Процедура формирования нового массива
- Public Sub new_mass(ByVal X() As Single, ByRef Y() As Single, ByVal n1 As Integer, ByVal n2 As Integer)
- Dim k As Integer 'номер элемента в массиве Y
- ReDim Y(n2 - n1 - 2) 'задаем кол-во элементов в массиве Y
- k = 0
- For i = n1 + 1 To n2 - 1 'переносим массива эл-ты Х в массив Y
- Y(k) = X(i)
- k = k + 1
- Next
- End Sub
- 'ф-ция нахождения номера минимального эл-та массива
- Public Function number_min(ByVal x() As Single) As Integer
- Dim imin As Integer = 0 'номер мин. эл-та массива (предполагаем что он стоит первым)
- For i = 1 To UBound(x)
- 'сравниваем мин. элемент массива с другими эл-тами, и если он больше, то сохраняем его номер
- If x(i) < x(imin) Then imin = i
- Next
- number_min = imin
- End Function
- 'ф-ция нахождения номера максимального эл-та массива
- Public Function number_max(ByVal x() As Single) As Integer
- Dim imax As Integer = 0 'номер макс. эл-та массива (предполагаем что он стоит первым)
- For i = 1 To UBound(x)
- 'сравниваем макс. элемент массива с другими эл-тами, и если он мееньше, то сохраняем его номер
- If x(i) > x(imax) Then imax = i
- Next
- number_max = imax
- End Function
- 'ф-ция нахождения произведения
- Public Function proizv(ByVal x() As Single, ByVal n1 As Integer, ByVal n2 As Integer) As Integer
- Dim pr As Integer = 1 'переменная для вычисления произведения
- For i = n1 + 1 To n2 - 1
- pr = pr * x(i)
- Next
- proizv = pr
- End Function
- 'событийная процедура
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim X(), Y(), a, b As Single
- Dim n, n1, n2 As Integer
- 'ввод исходных данных
- a = Val(TextBox1.Text)
- b = Val(TextBox2.Text)
- n = Val(TextBox3.Text)
- form_mass(X, a, b, n) 'формируем массив рандомом и после выводим его в листбокс
- PrintL(X, ListBox1)
- n1 = number_max(X)
- n2 = number_min(X)
- 'в условии мы проверям, какой эл-т стоит первым - min или max и находим произв. и нов. массив исходя из этого
- 'так же мы проверяем, если ли элементы между min или max значениями
- If n1 > n2 And (n1 - n2) > 2 Then
- TextBox4.Text = Str(proizv(X, n2, n1)) 'выводим произведение эл-тов массива
- new_mass(X, Y, n2, n1) 'формирование нового массива
- PrintL(Y, ListBox2) 'вывод нового массива
- ElseIf n1 < n2 And (n2 - n1) > 2 Then
- TextBox4.Text = Str(proizv(X, n1, n2)) 'выводим произведение эл-тов массива
- new_mass(X, Y, n1, n2) 'формирование нового массива
- PrintL(Y, ListBox2) 'вывод нового массива
- Else
- MsgBox("вычислить произведение и сформировать новый массив невозможно")
- End If
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- Me.Close()
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement