Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Strict On
- Option Explicit On
- Imports System.Math
- Public Class Form1
- Dim x(), new_mass() As Integer
- 'Процедура ввода массива
- Sub vvod(ByRef x() As Integer, ByVal index As Integer)
- Select Case index
- Case 0
- 'ввод с клавиатуры
- For i = 0 To UBound(x)
- x(i) = CInt(Val(InputBox("элемент массива X(" + Str(i) + ")=", "Ввод значений элементов массива X()")))
- Next i
- Case 1
- 'ввод генератором случ. чисел
- For i = 0 To UBound(x)
- x(i) = CInt(Rnd(1) * 100 - 50)
- Next i
- Case 2
- 'ввод по формуле
- For i = 0 To UBound(x)
- x(i) = i * 5 - 15
- Next i
- End Select
- End Sub
- 'Процедура вывода массива
- Public Sub PrintL(ByRef x() As Integer, ByRef LB As ListBox)
- Dim y As String = " "
- For i = 0 To UBound(x)
- y = y + Str(x(i)) + Space(4)
- Next i
- LB.Items.Add(y)
- End Sub
- 'Процедура сортировки эл-тов массива по возрастанию
- Public Sub sort1(ByRef x() As Integer)
- Dim Box As Integer
- For i = 0 To UBound(x) - 1
- For j = i + 1 To UBound(x)
- If x(i) > x(j) Then
- Box = x(j)
- x(j) = x(i)
- x(i) = Box
- End If
- Next j
- Next i
- End Sub
- 'Процедура сортировки эл-тов массива по убыванию
- Public Sub sort2(ByRef x() As Integer)
- Dim m As Integer
- Dim xmax As Integer
- For i = 0 To UBound(x) - 1
- xmax = x(i) : m = i
- For j = i + 1 To UBound(x)
- If x(j) > xmax Then
- xmax = x(j)
- m = j
- End If
- Next j
- x(m) = x(i)
- x(i) = xmax
- Next i
- End Sub
- 'Процедура удаления отрицательных эл-тов массива
- Public Sub mass_udal(ByRef x() As Integer)
- Dim j, i, n As Integer
- n = UBound(x)
- i = 0
- Do While i <= n
- If x(i) < 0 Then
- For j = i To n - 1
- x(j) = x(j + 1)
- Next j
- n = n - 1
- Else i = i + 1
- End If
- Loop
- ReDim Preserve x(n)
- End Sub
- 'Процедура обработки события загрузки формы
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Label1.Text = "Точное" + Space(3) + "москоское" + Space(3) & " время"
- Label2.Text = CStr(DateTime.Now)
- End Sub
- 'Процедура обработки события выбора элем. из ComboBox1
- Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
- Dim index, n As Integer
- index = ComboBox1.SelectedIndex
- 'индекс выбр-го эл-та ComboBox1
- ListBox1.Items.Clear()
- ListBox2.Items.Clear()
- n = CInt(TextBox1.Text)
- 'кол=во эл-тов массива
- ReDim x(n)
- vvod(x, index)
- 'ввод массива в зависимости от индекса выбора
- PrintL(x, ListBox1)
- 'вывод исходного массива
- End Sub
- 'Процедура обработки события выбора элем. из ComboBox2
- Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
- Dim ind As Integer
- ind = ComboBox2.SelectedIndex
- ListBox2.Items.Clear()
- Select Case ind
- Case 0
- sort1(x)
- 'вызов проц. сортировки массива по возр.
- Case 1
- sort2(x)
- 'вызов проц. сортировки массива по убыв.
- Case 2
- mass_udal(x)
- 'вызов проц.удаления отриц. эл-тов
- End Select
- PrintL(x, ListBox2)
- 'вызов проц.вывода результ. массива
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- End
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- If proverka(x) = False Then
- MsgBox("В массиве нет чисел кратных 3")
- Else
- form_new_mass(x, new_mass)
- PrintL(new_mass, ListBox3)
- TextBox2.Text = Str(pr(new_mass))
- End If
- End Sub
- Public Function proverka(ByVal x() As Integer) As Boolean
- proverka = False
- For i = 0 To UBound(x)
- If x(i) Mod 3 = 0 Then
- proverka = True
- Exit Function
- End If
- Next
- End Function
- Public Sub form_new_mass(ByVal x() As Integer, ByRef nm() As Integer)
- Dim k As Integer = 0
- For i = 0 To UBound(x)
- If x(i) Mod 3 = 0 Then
- ReDim Preserve nm(k)
- nm(k) = x(i)
- k = k + 1
- End If
- Next
- End Sub
- Public Function pr(ByVal nm() As Integer) As Integer
- Dim p As Integer = 1
- For i = 0 To UBound(nm)
- If nm(i) Mod 3 = 0 Then p = p * nm(i)
- Next
- pr = p
- End Function
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement