Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1. Option Strict On
  2. Option Explicit On
  3. Imports System.Math
  4. Public Class Form1
  5.  
  6. Dim x(), new_mass() As Integer
  7.  
  8. 'Процедура ввода массива
  9. Sub vvod(ByRef x() As Integer, ByVal index As Integer)
  10. Select Case index
  11. Case 0
  12. 'ввод с клавиатуры
  13. For i = 0 To UBound(x)
  14. x(i) = CInt(Val(InputBox("элемент массива X(" + Str(i) + ")=", "Ввод значений элементов массива X()")))
  15. Next i
  16. Case 1
  17. 'ввод генератором случ. чисел
  18. For i = 0 To UBound(x)
  19. x(i) = CInt(Rnd(1) * 100 - 50)
  20. Next i
  21. Case 2
  22. 'ввод по формуле
  23. For i = 0 To UBound(x)
  24. x(i) = i * 5 - 15
  25. Next i
  26. End Select
  27. End Sub
  28.  
  29. 'Процедура вывода массива
  30. Public Sub PrintL(ByRef x() As Integer, ByRef LB As ListBox)
  31. Dim y As String = " "
  32. For i = 0 To UBound(x)
  33. y = y + Str(x(i)) + Space(4)
  34. Next i
  35. LB.Items.Add(y)
  36. End Sub
  37.  
  38. 'Процедура сортировки эл-тов массива по возрастанию
  39. Public Sub sort1(ByRef x() As Integer)
  40. Dim Box As Integer
  41. For i = 0 To UBound(x) - 1
  42. For j = i + 1 To UBound(x)
  43. If x(i) > x(j) Then
  44. Box = x(j)
  45. x(j) = x(i)
  46. x(i) = Box
  47. End If
  48. Next j
  49. Next i
  50. End Sub
  51.  
  52. 'Процедура сортировки эл-тов массива по убыванию
  53. Public Sub sort2(ByRef x() As Integer)
  54. Dim m As Integer
  55. Dim xmax As Integer
  56. For i = 0 To UBound(x) - 1
  57. xmax = x(i) : m = i
  58. For j = i + 1 To UBound(x)
  59. If x(j) > xmax Then
  60. xmax = x(j)
  61. m = j
  62. End If
  63. Next j
  64. x(m) = x(i)
  65. x(i) = xmax
  66. Next i
  67. End Sub
  68.  
  69. 'Процедура удаления отрицательных эл-тов массива
  70. Public Sub mass_udal(ByRef x() As Integer)
  71. Dim j, i, n As Integer
  72. n = UBound(x)
  73. i = 0
  74. Do While i <= n
  75. If x(i) < 0 Then
  76. For j = i To n - 1
  77. x(j) = x(j + 1)
  78. Next j
  79. n = n - 1
  80. Else i = i + 1
  81. End If
  82. Loop
  83. ReDim Preserve x(n)
  84. End Sub
  85.  
  86. 'Процедура обработки события загрузки формы
  87. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  88. Label1.Text = "Точное" + Space(3) + "москоское" + Space(3) & " время"
  89. Label2.Text = CStr(DateTime.Now)
  90. End Sub
  91.  
  92. 'Процедура обработки события выбора элем. из ComboBox1
  93. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
  94. Dim index, n As Integer
  95. index = ComboBox1.SelectedIndex
  96. 'индекс выбр-го эл-та ComboBox1
  97. ListBox1.Items.Clear()
  98. ListBox2.Items.Clear()
  99. n = CInt(TextBox1.Text)
  100. 'кол=во эл-тов массива
  101. ReDim x(n)
  102. vvod(x, index)
  103. 'ввод массива в зависимости от индекса выбора
  104. PrintL(x, ListBox1)
  105. 'вывод исходного массива
  106. End Sub
  107.  
  108. 'Процедура обработки события выбора элем. из ComboBox2
  109. Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
  110. Dim ind As Integer
  111. ind = ComboBox2.SelectedIndex
  112. ListBox2.Items.Clear()
  113. Select Case ind
  114. Case 0
  115. sort1(x)
  116. 'вызов проц. сортировки массива по возр.
  117. Case 1
  118. sort2(x)
  119. 'вызов проц. сортировки массива по убыв.
  120. Case 2
  121. mass_udal(x)
  122. 'вызов проц.удаления отриц. эл-тов
  123. End Select
  124. PrintL(x, ListBox2)
  125. 'вызов проц.вывода результ. массива
  126. End Sub
  127.  
  128. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  129. End
  130. End Sub
  131.  
  132. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  133. If proverka(x) = False Then
  134. MsgBox("В массиве нет чисел кратных 3")
  135. Else
  136. form_new_mass(x, new_mass)
  137. PrintL(new_mass, ListBox3)
  138. TextBox2.Text = Str(pr(new_mass))
  139. End If
  140. End Sub
  141.  
  142. Public Function proverka(ByVal x() As Integer) As Boolean
  143. proverka = False
  144. For i = 0 To UBound(x)
  145. If x(i) Mod 3 = 0 Then
  146. proverka = True
  147. Exit Function
  148. End If
  149. Next
  150. End Function
  151. Public Sub form_new_mass(ByVal x() As Integer, ByRef nm() As Integer)
  152. Dim k As Integer = 0
  153. For i = 0 To UBound(x)
  154. If x(i) Mod 3 = 0 Then
  155. ReDim Preserve nm(k)
  156. nm(k) = x(i)
  157. k = k + 1
  158. End If
  159. Next
  160. End Sub
  161.  
  162. Public Function pr(ByVal nm() As Integer) As Integer
  163. Dim p As Integer = 1
  164. For i = 0 To UBound(nm)
  165. If nm(i) Mod 3 = 0 Then p = p * nm(i)
  166. Next
  167. pr = p
  168. End Function
  169. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement