Отсортировать массив по возрастанию или убыванию - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы