Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1.  
  2. Public Class Form1
  3.  
  4. 'Процедура ввода массива
  5. Public Sub form_mass(ByRef x() As Single, ByVal a As Single, ByVal b As Single, ByVal n As Integer)
  6. ReDim x(n - 1) 'задаем кол-во элементов в массиве
  7. For i = 0 To n - 1
  8. x(i) = a + (b - a) * Rnd() 'вводим рандомно эл-ты массива
  9. Next
  10. End Sub
  11.  
  12. 'Процедура вывода массива
  13. Public Sub PrintL(ByRef x() As Single, ByRef LB As ListBox)
  14. LB.Items.Clear()
  15. For i = 0 To UBound(x)
  16. LB.Items.Add(Format(x(i), "00.00"))
  17. Next
  18. End Sub
  19.  
  20. 'Процедура формирования нового массива
  21. Public Sub new_mass(ByVal X() As Single, ByRef Y() As Single, ByVal n1 As Integer, ByVal n2 As Integer)
  22. Dim k As Integer 'номер элемента в массиве Y
  23. ReDim Y(n2 - n1 - 2) 'задаем кол-во элементов в массиве Y
  24. k = 0
  25. For i = n1 + 1 To n2 - 1 'переносим массива эл-ты Х в массив Y
  26. Y(k) = X(i)
  27. k = k + 1
  28. Next
  29. End Sub
  30.  
  31. 'ф-ция нахождения номера минимального эл-та массива
  32. Public Function number_min(ByVal x() As Single) As Integer
  33. Dim imin As Integer = 0 'номер мин. эл-та массива (предполагаем что он стоит первым)
  34. For i = 1 To UBound(x)
  35. 'сравниваем мин. элемент массива с другими эл-тами, и если он больше, то сохраняем его номер
  36. If x(i) < x(imin) Then imin = i
  37. Next
  38. number_min = imin
  39. End Function
  40.  
  41. 'ф-ция нахождения номера максимального эл-та массива
  42. Public Function number_max(ByVal x() As Single) As Integer
  43. Dim imax As Integer = 0 'номер макс. эл-та массива (предполагаем что он стоит первым)
  44. For i = 1 To UBound(x)
  45. 'сравниваем макс. элемент массива с другими эл-тами, и если он мееньше, то сохраняем его номер
  46. If x(i) > x(imax) Then imax = i
  47. Next
  48. number_max = imax
  49. End Function
  50.  
  51. 'ф-ция нахождения произведения
  52. Public Function proizv(ByVal x() As Single, ByVal n1 As Integer, ByVal n2 As Integer) As Integer
  53. Dim pr As Integer = 1 'переменная для вычисления произведения
  54. For i = n1 + 1 To n2 - 1
  55. pr = pr * x(i)
  56. Next
  57. proizv = pr
  58. End Function
  59.  
  60. 'событийная процедура
  61. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  62. Dim X(), Y(), a, b As Single
  63. Dim n, n1, n2 As Integer
  64.  
  65. 'ввод исходных данных
  66. a = Val(TextBox1.Text)
  67. b = Val(TextBox2.Text)
  68. n = Val(TextBox3.Text)
  69. form_mass(X, a, b, n) 'формируем массив рандомом и после выводим его в листбокс
  70. PrintL(X, ListBox1)
  71.  
  72. n1 = number_max(X)
  73. n2 = number_min(X)
  74.  
  75. 'в условии мы проверям, какой эл-т стоит первым - min или max и находим произв. и нов. массив исходя из этого
  76. 'так же мы проверяем, если ли элементы между min или max значениями
  77. If n1 > n2 And (n1 - n2) > 2 Then
  78. TextBox4.Text = Str(proizv(X, n2, n1)) 'выводим произведение эл-тов массива
  79. new_mass(X, Y, n2, n1) 'формирование нового массива
  80. PrintL(Y, ListBox2) 'вывод нового массива
  81. ElseIf n1 < n2 And (n2 - n1) > 2 Then
  82. TextBox4.Text = Str(proizv(X, n1, n2)) 'выводим произведение эл-тов массива
  83. new_mass(X, Y, n1, n2) 'формирование нового массива
  84. PrintL(Y, ListBox2) 'вывод нового массива
  85. Else
  86. MsgBox("вычислить произведение и сформировать новый массив невозможно")
  87. End If
  88. End Sub
  89.  
  90. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  91. Me.Close()
  92. End Sub
  93. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement