Отсортировать массив по возрастанию или убыванию - VB
Формулировка задачи:
Дан код программы:
Нужно добавить ListBox2 и отсортировать массив по возрастанию или убыванию.
Я пробовал было добавлять это:
И в CommandButton1 операцию Call BubbleSort(MM, XX), но у меня ошибки.
Решение задачи: «Отсортировать массив по возрастанию или убыванию»
textual
Листинг программы
Private Sub MaassiveMake(ByVal m As Integer, ByRef X() As Single) Dim i As Integer Randomize For i = 0 To m - 1 X(i) = Int(Rnd * 100 + 1) 'X(I) = ((I + 1) ^ 4) - ((I - 1) * 3) Next End Sub Private Sub SumAr(ByVal m As Integer, ByRef Sum As Single, ByRef X() As Single) Dim i As Integer Sum = 0 For i = 0 To m - 1 Sum = Sum + X(i) Next End Sub Private Sub PrintArray(ByRef X() As Single, ByVal m As Integer, ByVal s As String, ByRef L As Object, Optional ByVal ClearListBox As Boolean = True) If ClearListBox Then L.Clear L.AddItem s For i = 0 To m - 1 L.AddItem ("X(" & Str(i + 1) & ") = " & Str(X(i))) Next End Sub Private Sub MinMaxAr(ByVal m As Integer, ByRef SumMin As Single, ByRef SumMax As Single, ByRef X() As Single) Dim i As Integer Sum = 0 For i = 0 To m - 1 If i = 0 Then SumMin = X(i): SumMax = X(i) Else If SumMax <= X(i) Then SumMax = X(i) If SumMin >= X(i) Then SumMin = X(i) End If Next End Sub Private Sub BubbleSort(ByRef m As Integer, ByRef X() As Single, ByVal n As Boolean) Dim i As Byte, j As Byte, tmp As Integer For i = 0 To m - 1 For j = 0 To m - 2 If n Then If X(j) > X(j + 1) Then tmp = X(j): X(j) = X(j + 1): X(j + 1) = tmp Else If X(j) < X(j + 1) Then tmp = X(j): X(j) = X(j + 1): X(j + 1) = tmp End If Next j Next i End Sub Private Sub CommandButton1_Click() Dim XX() As Single, C As Single, SMin As Single, SMax As Single, MM As Integer MM = Val(TextBox1.Text) ReDim XX(0 To MM) Call MaassiveMake(MM, XX) Call PrintArray(XX, MM, "Массив:", ListBox1) Call SumAr(MM, C, XX) Call MinMaxAr(MM, SMin, SMax, XX) Call BubbleSort(MM, XX, True) Call PrintArray(XX, MM, "По возрастанию:", ListBox2, True) Call BubbleSort(MM, XX, False) Call PrintArray(XX, MM, "По убыванию:", ListBox2, False) TextBox3.Text = "Sum = " & Str(C) TextBox2.Text = "Min = " & Str(SMin) & vbNewLine & "Max = " & Str(SMax) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д